Utility script for building Bromite releases
- A 64-bit Intel machine running Linux with at least 8GB of RAM. More than 16GB is highly recommended.
- At least 100GB of free disk space.
- Git and Python for checking out and building Chromium
Ubuntu users' systems will be bootstrapped via Chromium's
build/install-build-deps-android.sh
if the --ubuntu-install-build-deps
flag is set. It requires root permissions
and may install unwanted software.
All other distro users should follow Chromium's Notes For Other Distros
Checking out the repo:
git clone https://github.com/nikolowry/bromite-builder.git; \
cd bromite-builder
Usage instructions are always available by running ./bromite-builder -h
or
./bromite-builder --help
Usage: ./bromite-builder [command...] [options...]
Where optional [command] is one of:
build, clean, fetch-sync, prepare, set-revision
If no [command] is set, the default command sequence will be executed:
- set-revision
- fetch-sync
- prepare
- build
Options:
-a, --arch=<arch>
Where <arch> is: arm, arm64, x86, x64.
Defaults to arm
-b, --bromite-git-url=<url>
Where <url> is a Bromite Git repository.
Defaults to https://github.com/bromite/bromite.git
-g, --gn-args=<args>
Where <args> is a string of GN build arguments
-n, --name=<package-name>
Where <package-name> is a valid Android package name
-o, --output-dir=<dir>
Where <dir> is a path to save the APK.
Defaults to ./out
-p, --patches-dir=<dir>
Where <dir> is a path to a directory containing custom patches
-t, --target=<target>
Where Ninja <target> is: chrome_public_apk, system_webview_apk.
Defaults to chrome_public_apk
-r, --revision=<revision>
Where <revision> is a Bromite release tag.
Defaults to latest release
-u, --upstream=<commit-hash>
Where <commit-hash> is a long-format git commit.
Defaults to master's HEAD.
When set, any Chromium tag can be assigned to <revision>
--no-bromite-package-name
Use "org.chromium.chrome" for package name.
Overridden if <package-name> is set
--no-bromite-patches
Only apply patches from Bromite's chromium_patches_list.txt
--no-skip-patches
Exit on failed patch attempts
--dark-navbar
Prefer a dark navigation bar over a white one
--ubuntu-install-build-deps
Run Chromium's build/install-build-deps-android.sh during fetch-sync
-h, --help
Print help menu
Builds produced with bromite-builder
differ from official Bromite releases with
the following:
- Retains Chromium branding and namespace with option
--no-bromite-package-name
- Build flag to revert the white Navigation Bar in the Material Design Refresh (MD2)
to black with option
--dark-navbar
- GN args to default to disabled symbols for faster build times:
blink_symbol_level=0 symbol_level=0 enable_resource_allowlist_generation=false treat_warnings_as_errors=false
.
If Bromite's Automated-domain-substitution.patch
fails to apply,
Ungoogled Chromium's
domain substitution utility will be used as a fallback instead. To disable this
fallback, add the --no-skip-patches
flag to your bromite-builder
command.
- Bromite Repo: https://github.com/bromite/bromite
- Ungoogled Chromium Repo: https://github.com/Eloston/ungoogled-chromium
- Chromium Repo: https://chromium.googlesource.com/chromium/src.git/
- Chromium Android Build Docs: https://chromium.googlesource.com/chromium/src/+/master/docs/android_build_instructions.md