An experimental Chromium-based web browser for Android with extensions support, based on
- Vanadium by GrapheneOS
- Helium by imput (future patches pending GPLv2 compatibility)
You can install extensions from the following sources:
You can also install from local CRX (or ZIP) file in the options page of the built-in Helium Extension for Android.
Additionally, you can load an unpacked extension manually for testing purposes by navigating to chrome://extensions. Enable Developer mode, select Load unpacked, and choose the folder containing the extension in the Storage Access Framework (SAF) picker. It may take a moment for the extension to load.
To use an extension's popup, open extensions menu, select the menu button ⋮ next to the extension, and choose Pin to toolbar from the list. You can then open the popup using the extension's dedicated toolbar icon.
To run an extension in Incognito (OTR) mode, go to Manage extensions, find the extension you want to use in Incognito mode, select Details, and turn on Allow in Incognito.
Manifest V2 (MV2) extensions are supported. You can install uBlock Origin from Chrome Web Store. For advanced features including external download manager, enhanced dark mode, and additional privacy options, you can use the built-in Helium Extension for Android.
To view and access the debug URLs, use chrome://chrome-urls. For Experiments, use chrome://flags.
Consistent with both Helium and Vanadium, the option is available by selecting the menu button ⋮ in the top right corner, then Settings, Privacy and security, then under Privacy, WebRTC IP handling policy. If you experience issues with WebRTC due to the IPs being shielded by default (e.g. Discord Voice), you may try to change it to Default public interface only, or Default.
Warning
All builds are experimental, so unexpected issues may occur. Helium Browser for Android only attempts to improve security and privacy where possible. For better protection on Android, you should instead use GrapheneOS with Vanadium, which additionally integrates patches into Android System WebView and provides significant kernel and memory management hardening on the OS level.
---
config:
layout: dagre
---
flowchart TD
subgraph s1["Helium"]
n5["Generic Patches<small><br>patches/series</small>"]
n6["Name Substitution<small><br>utils/name_substitution.py</small>"]
n7["Version Patch<small><br>{*version,revision}.txt</small>"]
n8["Resource Patch<small><br>resources/*resources.txt</small>"]
end
subgraph s2["Vanadium"]
n9["Generic Patches<small><br>patches/*.patch</small>"]
end
subgraph s3["Helium Browser for Android"]
n11["GN Build Configuration<small><br>args.gn</small>"]
n12["Signed Release"]
end
n1["Chromium"] --> s1 & s2
n5 --> n6
n6 --> n7
n7 --> n8
s1 --> s3
s2 --> s3
n11 --> n12
n5@{ shape: subproc}
n6@{ shape: subproc}
n7@{ shape: subproc}
n8@{ shape: subproc}
n9@{ shape: subproc}
n11@{ shape: subproc}
n12@{ shape: subproc}
n1@{ shape: rounded}
classDef Aqua stroke-width:1px, stroke-dasharray:none, stroke:#46EDC8, fill:#DEFFF8, color:#378E7A
style n5 stroke:#FF6D00
style n8 stroke:#FF6D00
All Vanadium patches are applied by default. While the full build aims to be consistent with Helium, downstream implementation of Helium patches is currently paused to ensure strict compliance with upstream licensing requirements. The diagram reflects the architecture of initial ported releases and serves as the target framework if resolution is achieved.
This repository provides the build script to compile on the latest Ubuntu, and may also work with other Linux distributions.
See BUILDING.zh-CN.md for the Chinese local build, incremental build, proxy, signing, and output instructions.
To build these releases yourself via CI (e.g. GitHub Actions), fork this repository. Supply your base64 encoded keystore.jks and local.properties (containing your keyAlias, keyPassword and storePassword) to Repository secrets under Settings > Secrets and variables > Actions. To generate a release, go to Actions, select Build, and select Run workflow. Under Runner, you can either use a GitHub-hosted runner by entering ubuntu-latest, or self-hosted for your own hardware.
This project would not have been possible without the huge community contributions from Vanadium, Helium, as well as ungoogled-chromium and various other upstream projects. All credit goes to the original authors and contributors. This project started around the same time as Helium Browser for Linux but it is not officially affiliated with the upstream Helium project.
Here are the changes/updates I've made:
Extension Support: Enhanced the project to support CRX/ZIP archives, whereas it previously only supported loading unpacked extensions.
Extension UI/UX: Improved the interaction flow. Previously, extension options could only be accessed if the extension was pinned to the address bar. I have updated it so that clicking the Extension Icon and then selecting the specific extension will expand its options.
Dark Mode: Implemented tweaks/fixes for Dark Mode.
Developer Tools Integration: Docked the Developer Tools into the main window. It previously opened in a separate window, which made it impossible to inspect elements within the monitored window.
Special thanks to linux.do (https://linux.do/) for providing the platform and the related community-contributed sites.
