A de-Googled build of Chromium Desktop Android that keeps browser extensions and video
playback working.
Built from Chromium 153.0.7999.0 (commit 945b5115) with thirty-seven patches and five build
flags.
This is the last release in the 1.x line. Version 2.0 is next, with a lot of exciting things
in the works.
New in v1.4
Add your own search engine
- Create a search engine by hand with a name, a shortcut and a search URL, then set it as your
default - Found under Settings, Search engine, Manage search engines and site search
- Chromium already contained this screen, finished, but left it switched off on Android
- The add button sits under Site search; use Make default on the entry to promote it to your
default search engine
Google AI removed from search
- The built-in
@geminiand@aimodeshortcuts are gone. They searched gemini.google.com and
google.com with the AI Mode parameter, and appeared under site search - The AI Mode button in the address bar is off by default
- Existing profiles drop the two shortcuts on upgrade rather than keeping cached copies
Dark mode no longer flashes white
- Loading a page on a dark theme used to flash white first. Three separate parts of the browser
painted white before a page appeared, and all three now follow your theme - Measured with screen recordings: peak brightness fell from 214 of 255, held for about
0.6 seconds, to 44 with no frames bright enough to register - A new setting, Apply dark theme to sites, when possible, under Settings, Theme, lets the
browser darken light pages itself. Off by default
Easier to reach with one hand
- The search box sits in the middle of the new tab page rather than near the top
- The tab switcher buttons moved to the bottom, so they are no longer stranded at the top while
the address bar sits at the bottom - A new incognito button in the bottom bar, as a toggle. Tap to go incognito, tap again to come
back. It turns red while active. It fills the slot left empty when the Ask Gemini button was
removed
Smaller touches
- A cleaner new tab page. The shortcuts row and the suggestion cards start hidden. Both were
already optional; only the starting state changed - Share is the default toolbar shortcut. It used to be based on your usage, which quietly
swapped the button as browsing habits changed - The search engine icon is round in the address bar. It rendered as a white square there while
looking correct on the new tab page - Clearer wording in settings. A note reading Only available for small windows sounded like it
excluded phones, when it means the opposite
Screenshots
Left: the new tab page, with the search box within thumb reach and the incognito toggle in the
bottom bar. Middle and right: the download manager setting and the chooser it produces, both
carried over from v1.3.
Verifying this release
SHA-256 e70364b58f215c3a390fe92622d844112462ea21a604da15e77ec40f3e082105
To confirm the binary matches the source rather than trusting it:
- Check out Chromium at base commit
945b5115 - Apply the series with
git am patches/*.patch - Use the
args.gndocumented in the README - Run
gn gen out/<name> && autoninja -C out/<name> -j 12 chrome_public_apk - Compare
sha256sum out/<name>/apks/ChromePublic.apkagainst the hash above
Two things this does not yet prove, stated plainly:
- Reproducibility has been confirmed within one container image. A rebuild on different hardware,
or in a container built at a different time, has not been tested. The Dockerfile installs
packages withapt-getand so drifts over time, though Chromium ships a hermetic toolchain
throughDEPS, which should make the host package set irrelevant. - If your rebuild produces a different hash, please open an issue. That is the missing
measurement, and a report would be genuinely useful.
What you get
- Real browser extensions. Password managers, ad blockers, dark mode, the same extensions you
would use on a desktop. Upstream exposes this only at tablet widths; here it works on a phone. - DuckDuckGo by default, and you can now add any search engine you like and make it the
default. - No sign-in surfaces. No settings row, no Google services page, no first-run screen, no new
tab page promo cards, no avatar button. - No Gemini. The bottom bar button is gone, it cannot be added back from Settings, and the
built-in@geminiand@aimodesearch shortcuts are removed. - Links open in the browser, not handed off to whichever app claims the domain.
- Video that behaves. Ordinary and paid streaming both play. Fullscreen respects your
rotation lock, fills the screen properly, and keeps its controls on the video. - Dark mode that stays dark, with no white flash between pages.
- Security kept deliberately. Protections against fake certificates and downgraded
connections remain.
Install
Requires an arm64 Android device, Android 10 (SDK 29) or newer.
adb install -r ChromiumExtend-v1.4-153.0.7999.0-arm64.apk
Or copy the APK to the device and open it, allowing installation from unknown sources.
Signed with a local debug key, so it will not upgrade over a Play Store Chrome or Chromium
install. It installs as its own app, org.chromium.chrome, and upgrades cleanly over v1.0
through v1.3.
Upgrading from an earlier version keeps your current search engine. Chromium stores the
chosen engine per profile and prefers it over the shipped default, so only a fresh install gets
DuckDuckGo. Change it under Settings, Search engine.
Some new defaults apply to new profiles only. The toolbar shortcut and the new tab page
layout are read once per profile, so an existing install keeps what it already had. Everything
under New in v1.4 can still be set by hand.
Known limitations
- External downloads lose your sign-in. With the external download manager setting on, a file
requiring you to be signed in will fail in the other app. The interception point carries no
cookie, and passing credentials needs a different layer. - Passkeys do not work.
FIDO2_PRIVILEGED_APIis restricted to Google-signed browsers, so
any self-built Chromium is refused. Inherent to self-building, not caused by these patches. - Web Push is gone, as a consequence of removing the Google Cloud Messaging channel.
- Manifest V2 extensions are not supported. Upstream removed both the manifest support and
the renderer bindings the extensions rely on. Re-enabling only the manifest check causes
renderer crashes, so it was tried and reverted. Use uBlock Origin Lite rather than uBlock
Origin. - Extension popups can be cropped, since extensions size their popup to content and may
request more width than a phone has. - The omnibox is squeezed when several extensions are pinned.
- A custom search engine has no logo on the new tab page. Engines added by hand carry no logo
image, so the new tab page shows none. Cosmetic only. - Widevine is detected, but protected playback has not been exercised end to end.
License
BSD-3-Clause. The patches modify Chromium source and are subject to Chromium's license.
Chromium is a trademark of Google LLC. This project is unaffiliated.


