Brave Origin, Quetta and Universal Patches
September 20, 2026 · View on GitHub
Morphe patch bundle for Brave Browser, Quetta browser plus app-independent Android resource patches.
Quetta Browser support
| Build | Package name | Support status |
|---|---|---|
| Quetta Browser (Play Store edition) | net.quetta.browser | version-unpinned; refresh-rate patch statically validated on 2.0.5 |
| Quetta Browser (Direct APK edition) | net.quetta.browser.official | version-unpinned; extension patch tested on 2.0.2 (5307) |
Supports both versions of Quetta Browser through two Quetta-local patches:
- Block Quetta bundled extension installation — bundled extension install/reinstall block.
- Force highest refresh rate — Quetta-adapted sibling of the Titanium patch. Separate fingerprints: Quetta 2.0.5 keeps
WindowAndroid.setPreferredRefreshRate(F)Vbut obfuscates the nearest-mode worker and drops the Titanium log literal; this patch matches the structural shape (getRefreshRate+getModeId+Window.setAttributes) instead of editing the helium/Titanium implementation. Version-unpinned, experimental, fail-closed on ambiguity. Intended for arm64-v8a APKs; the framework does not enforce ABI.
Patch blocks bundled installation/reinstallation for these exact extensions:
nnedfbcpeenmccjbdcnlnhogapndfeoa— Q30 from Quetta Translatorgadlcodpkkelmagfhkldjlobfncbkbmd— Q30 from Quetta
Analyzed manifests show these extensions have broad page access and background behavior, and can communicate with remote services (or telemetry in short). Blocking bundled installation/reinstallation reduces bundled background code and remote-service exposure, giving users more privacy and control without claiming what those services collect. All related functions works probably fine without these extensions in the first place, so these are definitely bloated components.
This does not block all Quetta telemetry or every Quetta network connection (for that just use DNS with blocklist instead), and does not remove copies already installed in existing profiles. Remove existing copies through Quetta's extension-management UI SimpleExtManager Beta, since it's hidden from the Inbuilt Extension management UI and install it from here if download interrupted from the Web store, or use a clean profile as appropriate Clean install already removed that, just patch it as usual and enjoy. Static validation is anchored to supplied Quetta 2.0.2-530 Official (Direct APK from website) arm64-v8a APK; this is not broad runtime proof. Future versions may change fingerprints; patch should fail safely rather than modify unrelated methods.
Brave Origin support
| Build | Package name | Support status |
|---|---|---|
| Brave Browser | com.brave.browser | Tested on 1.92.140 |
| Brave Beta | com.brave.browser_beta | Experimental; version-unpinned |
| Brave Nightly | com.brave.browser_nightly | Experimental; version-unpinned |
Beta and Nightly share Brave Origin code paths, but require APK validation for each release before promotion from experimental support.
Web app installation limitation
Patched Brave APKs are re-signed. WebAPK installation through Install and create shortcut > Install may remain stuck on Installing, especially when the package name is also changed. This is separate from the Brave Origin bytecode patch: Brave Origin modifies subscription and feature-policy behavior, not the Chromium WebAPK installer.
Use Create shortcut as the supported workaround. It uses Android's pinned-shortcut flow and does not install a WebAPK.
When reporting this problem, include the app version, final package name, whether Create shortcut works, and filtered ADB output:
adb logcat -c
# Reproduce the failed Install action, then run:
adb logcat -d -v threadtime |
Select-String -Pattern 'webapk|shortcut|packageinstaller|finsky|playcore|install'
Also verify the installed package and patched APK certificate:
adb shell dumpsys package <package-name>
apksigner verify --print-certs <patched.apk>
Do not use Chromium's GServices WebAPK package/signing-check overrides as an end-user fix. Those overrides are intended for development builds and may require privileged device access.
Patches
v1.6.0 •
main• 7 patches total
📦 Quetta Browser • 2 patches
| 💊 Patch | 📜 Description | ⚙️ Options |
|---|---|---|
| Block Quetta bundled extension installation | Blocks bundled extension installation/reinstallation on arm64-v8a APKs (the framework does not enforce ABI restrictions). Does not remove copies already present in existing profiles. Takes effect immediately on clean installs. | |
| Force highest refresh rate | Quetta-adapted experimental version-unpinned patch: forces Chromium WindowAndroid to pick the highest-refresh Display mode by writing Float.MAX_VALUE into setPreferredRefreshRate(F) and the structural nearest-mode worker (getRefreshRate + getModeId + Window.setAttributes). Validated statically on Quetta 2.0.5 base APK; may increase battery usage; ambiguous targets fail closed. |
📦 Quetta Browser Official • 2 patches
| 💊 Patch | 📜 Description | ⚙️ Options |
|---|---|---|
| Block Quetta bundled extension installation | Blocks bundled extension installation/reinstallation on arm64-v8a APKs (the framework does not enforce ABI restrictions). Does not remove copies already present in existing profiles. Takes effect immediately on clean installs. | |
| Force highest refresh rate | Quetta-adapted experimental version-unpinned patch: forces Chromium WindowAndroid to pick the highest-refresh Display mode by writing Float.MAX_VALUE into setPreferredRefreshRate(F) and the structural nearest-mode worker (getRefreshRate + getModeId + Window.setAttributes). Validated statically on Quetta 2.0.5 base APK; may increase battery usage; ambiguous targets fail closed. |
📦 Brave Browser • 1 patch
| 💊 Patch | 📜 Description | ⚙️ Options |
|---|---|---|
| Brave Origin | Unlocks Brave Origin and enables feature toggle controls. |
📦 Brave Beta • 1 patch
| 💊 Patch | 📜 Description | ⚙️ Options |
|---|---|---|
| Brave Origin | Unlocks Brave Origin and enables feature toggle controls. |
📦 Brave Nightly • 1 patch
| 💊 Patch | 📜 Description | ⚙️ Options |
|---|---|---|
| Brave Origin | Unlocks Brave Origin and enables feature toggle controls. |
📦 Titanium Browser for Android • 2 patches
| 💊 Patch | 📜 Description | ⚙️ Options |
|---|---|---|
| Force highest refresh rate | Experimental version-unpinned patch: forces Chromium to pick the highest-refresh display mode by requesting Float.MAX_VALUE through WindowAndroid. Works on any panel (60/90/120/144/165Hz+) without knowing the max at patch time. May increase battery usage; ambiguous targets fail closed. | |
| Keep Titanium Extensions Child Processes Alive | Experimental version-unpinned structural/data-flow patch: starts one main-process foreground service with persistent low-priority notification and forces child STRONG binding plus IMPORTANT/STRONG priority updates. Tolerates routine signature, register, and helper-name changes; ambiguous targets fail closed. May increase RAM, battery, and process pressure; mitigates LMK kills only. To hide the notification, use Android Settings > Apps > Titanium > Notifications (the keep-alive service stays active either way). | • Notification title • Notification text |
🌐 Universal • 3 patches
| 💊 Patch | 📜 Description | ⚙️ Options |
|---|---|---|
| Change app icon | Changes the Android launcher icon using a custom PNG image. Use a square image with transparent adaptive-icon padding. | • Custom app icon |
| Change app name | Changes the app name shown by Android launchers. Set the desired name in the patch options. | • App name |
| Disable analytics | Disables analytics and tracking from multiple SDKs, including AppMetrica, MyTracker, Firebase, Sentry, Google Analytics, Amplitude, Mixpanel, Adjust, AppsFlyer, Facebook, MoEngage, and comScore, through manifest opt-outs and exact runtime entry points when present. Custom or server-side telemetry is not covered. |
Keep Titanium Extensions Child Processes Alive
Experimental version-unpinned two-layer mitigation for issue #57: child processes receive Chromium STRONG binding (0x4) and IMPORTANT/STRONG priority (0x3), while one main-process foreground service keeps extension background runtime visible through a persistent low-priority notification. Structural and local data-flow resolution tolerates routine signature, register, helper-name, and process-launch changes, then fails closed when relevant bytecode is genuinely ambiguous. Disabled by default and version-unpinned (no pinned Titanium version). Affects all relevant Titanium child processes, not only extensions. This can raise RAM, battery, and process pressure and only mitigates LMK kills; it does not guarantee survival, bypass force-stop or OEM task killers, detect or reload crashed extensions, or run a watchdog/polling loop/wake lock. A persistent low-importance foreground-service notification may appear. Future incompatible APKs may fail during patching. No reliable extension-only discriminator exists in inspected Titanium code, so child binding applies to all child processes.
Install
- Install Morphe Manager on Android.
- Add
https://github.com/dh6k/morphe-patchesas patch source. - Select an app and enable the desired patch. Universal patches are available for any app.
- Patch the APK or APKM and install output.
Build
./gradlew :patches:buildAndroid
License
Licensed under GPLv3. See NOTICE for additional GPLv3 Section 7 conditions.
Change app name is adapted from
durgesh0505/chiggi_morphe_patches
at commit 6b8a9a36cbd36faa4d5b8ce6e811fb428eb365f9.