2.1 KiB
MrbWebLibre for Google Pixel 10
This fork keeps WebLibre's upstream behavior and adds a focused build profile for the Google Pixel 10 family.
What is optimized
- ARM64 only: Pixel 10 uses a 64-bit Tensor G5 platform. The
pixel10flavor excludes unused 32-bit native libraries, reducing the APK size and eliminating accidental 32-bit packaging. - Impeller enabled: the Flutter renderer remains enabled for smooth GPU rendering on the 60–120 Hz Pixel display.
- High refresh rate by default: WebLibre's existing
RefreshRateMode.highdefault is retained. It can still be changed under General settings when battery life matters more than maximum smoothness. - 16 KB page-size gate: every native ARM64 library in the final APK is checked for 16 KB-compatible ELF LOAD-segment alignment. This catches an incompatible Gecko, Flutter, Tor, or proxy binary before the APK is shipped.
- Separate app identity:
cc.mrblake.mrbweblibreinstalls alongside the upstreameu.weblibre.geckoapp and cannot overwrite an upstream-signed APK.
The fork deliberately does not spoof the device model or change Gecko web preferences only for Pixels. Those changes would increase fingerprinting and make upstream security updates harder to merge.
Build
Use the Flutter and Android versions pinned by the upstream CI workflow, build the generated assets and native runtime, then run:
melos run build-browser-pixel10 --no-select
The command produces:
apps/weblibre/build/app/outputs/flutter-apk/app-pixel10-release.apk
Release builds require the same signing environment variables as upstream:
KEY_PATH, KEY_ALIAS, and KEY_PASSWORD.
Verify an existing APK
scripts/verify-pixel10-apk.sh path/to/app-pixel10-release.apk
The verifier requires unzip and GNU readelf (usually supplied by the
binutils package).
Keeping the fork current
The upstream remote should point at https://github.com/FaFre/WebLibre.git.
Rebase the pixel10 branch on upstream main, run the full test suite, build
the APK, and do a real-device smoke test before publishing an update.