Open-source project
BiliRoamingX/BiliRoamingX avatar
BiliRoamingX/BiliRoamingX

BiliRoamingX: a ReVanced patch bundle for the Bilibili Android client

BiliRoamingX integrations and patches powered by ReVanced.

3,824 stars298 forksKotlinGPL-3.0

At a glance

What is it?
BiliRoamingX is a Kotlin patch set that rebuilds the Bilibili Android app with region-unlocking, UI removal and playback controls. It ships as patches applied to an APK you already have, not as a standalone app, and its last push was on 2026-04-29.
Who is it for?
Adopt BiliRoamingX if you already patch Android apps with revanced-cli and want Bilibili settings folded into the app's own settings screen; skip it if you expect a standalone APK from this repository or cannot supply a compatible Bilibili build.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 155 days ago.
What is it written in?
Mainly Kotlin, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 27, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What BiliRoamingX changes in the Bilibili client

BiliRoamingX is an enhancement module for the official Bilibili Android client, built on ReVanced. It is not a separate Bilibili viewer. The README describes it as a client enhancement module whose settings are folded into the app's own settings screen, so there is no second configuration UI to learn. The feature list is broad and mostly about control: lifting region restrictions on anime episodes, removing page components you do not want, setting default quality for live streams and videos, changing playback speed, adjusting subtitle styling with translation, saving and importing, resizing the app display, copying comments and video metadata, pinch-to-zoom video fill, handing video off to an external downloader, restoring the channel feature, automatic B币券 claiming, cleaning share links, filtering recommendations, trending and the dynamic feed, and matching the splash screen background to dark mode. The audience is narrow and technical: people who already patch Android apps and want Bilibili to behave differently without switching clients. If you are looking for an app to install from a store, this is the wrong shape of project.

How the ReVanced patch pipeline produces a modified Bilibili APK

The repository is a patch source, not a binary. The top-level layout separates integrations/ and patches/, with build-logic/, gradle/ and settings.gradle.kts alongside them. The build produces two artifacts that the README names explicitly: integrations.apk and patches.jar. The patches.jar carries the ReVanced patch definitions, and integrations.apk carries the runtime code those patches depend on. The README's packaging command passes both to revanced-cli, with --merge integrations.apk and --patch-bundle patches.jar, and sets --signing-levels 1,2,3 before the target bilibili.apk. That means the modified app is assembled on your machine from a Bilibili APK you supply. The README also points to a customized revanced-cli.jar hosted under zjns/revanced-cli rather than the upstream ReVanced CLI, which is a detail worth noticing: the toolchain is pinned to a fork, and the README does not explain what that fork changes. The README claims the implementation approach has almost no effect on app performance, startup speed or smoothness. That is a claim from the project, not a measurement, and the repository does not publish benchmark numbers to support it.

Building BiliRoamingX from source with Gradle

The README documents a source build using a submodule-aware clone, because the repository has a .gitmodules file and integrations code that is pulled in separately. Skipping --recurse-submodules leaves you with an incomplete tree. The README gives this sequence:

bash
git clone --recurse-submodules https://github.com/BiliRoamingX/BiliRoamingX.git
cd BiliRoamingX
./gradlew dist

On Windows the README says to use gradlew.bat instead of ./gradlew. The build output lands in the build directory. The README does not document the JDK version, the Gradle wrapper version, or any signing configuration for the dist task, so expect to resolve toolchain requirements from the Gradle files rather than the README.

Installing BiliRoamingX by patching an APK you already have

The README offers two routes. The first is to download a prebuilt from the BiliRoamingX-PreBuilds repository's latest release. The second is to patch yourself, and that is the route the README documents in detail. Download the customized revanced-cli.jar, then download integrations.apk and patches.jar from this repository's releases, then run the patch command against your own bilibili.apk:

bash
java -jar revanced-cli.jar patch --merge integrations.apk --patch-bundle patches.jar --signing-levels 1,2,3 bilibili.apk

After it finishes, revanced-cli writes a patched and signed APK that you install on the device. The README states the module supports the 粉版, Play 版 and HD 版 variants of the Bilibili client. It does not state which Bilibili app versions are compatible, so an APK newer or older than what the patches expect is the most likely source of a failed or partially applied patch. There is no documented rollback step: the README does not describe how to revert, so keep your original APK and your account state in mind before installing over an existing app.

Where BiliRoamingX stops being the right tool

The obvious boundary is that this is a patcher, not an app. If you cannot obtain a Bilibili APK, or you are uncomfortable sideloading a rebuilt client, nothing here helps you. The second boundary is maintenance. The last push to this repository was on 2026-04-29. That is roughly five months before today, and the README does not describe a release cadence, a supported-version matrix, or a compatibility policy. Bilibili ships client updates on its own schedule, and a patch bundle tied to specific app versions will lag whenever the upstream app changes internals. The README's performance claim is also unverifiable from the repository: there are no benchmarks, no profiling output, and no methodology. Treat it as a design intention rather than a measured result. Finally, the README documents no rollback path and no conflict resolution if the patches fail partway, which means an unsuccessful patch attempt costs you the time to rebuild from a clean APK.

BiliRoamingX compared with the original BiliRoaming

The name invites the comparison, and the README makes the distinction for you: BiliRoamingX is described as implemented on top of ReVanced, whereas the older BiliRoaming approach was a standalone Xposed-style module. The practical difference is where the code lives. An Xposed module runs as a separate installed component and hooks the target app at runtime through the Xposed framework, which requires a rooted device or a compatible runtime. A ReVanced patch bundle is applied ahead of time: revanced-cli rewrites the target APK and signs it, so the modified behavior is baked into the installed app. That removes the runtime hooking dependency but adds a build step, a signing step, and the need to re-patch whenever the upstream app updates. It also means the settings live inside the Bilibili app rather than in a separate module manager, which is exactly what the README advertises. Neither approach is strictly better; the choice is between a runtime framework on a rooted device and a pre-patched APK you maintain yourself.

Licence and the cost of keeping a patched client current

The repository is licensed GPL-3.0, and the README links the LICENSE file at the repository root. For anyone redistributing a patched build or a fork of the patch code, that licence carries obligations around source availability and derivative works. This is not legal advice; read the licence text and, if you plan to redistribute, get proper guidance. The upgrade cost is the more practical concern. Because the patches target the Bilibili app, every meaningful Bilibili update is a potential re-patch: download the new APK, rerun the revanced-cli command with the same integrations.apk and patches.jar, and reinstall. The README does not describe a version-pinning scheme or a compatibility table, so you cannot tell from the documentation whether a given patches.jar works against a given Bilibili release. The repository's last push was on 2026-04-29, and the available release information does not indicate how often patches.jar is refreshed.

Editorial conclusion

Adopt BiliRoamingX if you already patch Android apps with revanced-cli and want Bilibili settings folded into the app's own settings screen; skip it if you expect a standalone APK from this repository or cannot supply a compatible Bilibili build. Before patching, confirm the merge order (--merge integrations.apk before --patch-bundle patches.jar), that your Bilibili variant is one of the three the README names, and that the resulting APK installs over your current one or forces a data wipe.

Frequently asked questions

Which Bilibili client versions does BiliRoamingX support?

The README states the module supports the 粉版, Play 版 and HD 版 variants. It does not list supported Bilibili app version numbers, so compatibility with a specific release is not documented.

Can I revert BiliRoamingX after patching?

The README does not document a rollback or uninstall procedure for a patched APK. Keeping the original bilibili.apk is the only recovery path the documentation implies.

What does BiliRoamingX let me change in the Bilibili app?

The README lists lifting anime region restrictions, removing page components, setting default quality for live streams and videos, playback speed, subtitle styling with translation, saving and importing, app display size, copying comments and video info, pinch-to-zoom fill, external downloader handoff, restoring channels, automatic B币券 claiming, share link cleaning, feed filtering, and dark-mode splash background.

Official sources

  1. BiliRoamingX/BiliRoamingX on GitHub
  2. Issues
  3. License: GPL-3.0
  4. Project website
  5. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/biliroamingx-biliroamingx.svg)](https://hysenlabs.com/projects/biliroamingx-biliroamingx)