mirror of
https://github.com/jqssun/android-helium-browser.git
synced 2026-06-23 09:16:54 +00:00
Compare commits
No commits in common. "main" and "v149.0.7827.114" have entirely different histories.
main
...
v149.0.782
13 changed files with 9 additions and 50 deletions
10
.github/workflows/build.yml
vendored
10
.github/workflows/build.yml
vendored
|
|
@ -13,8 +13,6 @@ on:
|
|||
|
||||
permissions:
|
||||
contents: write
|
||||
id-token: write
|
||||
attestations: write
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
|
@ -69,11 +67,3 @@ jobs:
|
|||
${{ env.VERSION }}-${{ env.unix_time }}-arm64-v8a.aab
|
||||
${{ env.VERSION }}-${{ env.unix_time }}-arm64-v8a.apk
|
||||
${{ env.VERSION }}-${{ env.unix_time }}-armeabi-v7a.apk
|
||||
|
||||
- name: Attest
|
||||
uses: actions/attest-build-provenance@v4
|
||||
with:
|
||||
subject-path: |
|
||||
${{ env.VERSION }}-${{ env.unix_time }}-arm64-v8a.aab
|
||||
${{ env.VERSION }}-${{ env.unix_time }}-arm64-v8a.apk
|
||||
${{ env.VERSION }}-${{ env.unix_time }}-armeabi-v7a.apk
|
||||
|
|
|
|||
16
README.md
16
README.md
|
|
@ -5,7 +5,7 @@
|
|||
[](https://github.com/jqssun/android-helium-browser/actions/workflows/build.yml)
|
||||
[](https://github.com/jqssun/android-helium-browser/releases)
|
||||
|
||||
A fully open-source experimental Chromium-based web browser for Android with extensions support, based on
|
||||
An experimental Chromium-based web browser for Android with extensions support, based on
|
||||
- [Vanadium](https://github.com/GrapheneOS/Vanadium) by [GrapheneOS](https://github.com/GrapheneOS)
|
||||
- [Helium](https://github.com/imputnet/helium) by [imput](https://github.com/imputnet) (future patches pending GPLv2 compatibility)
|
||||
|
||||
|
|
@ -15,10 +15,8 @@ A fully open-source experimental Chromium-based web browser for Android with ext
|
|||
|
||||
### Installing Extensions
|
||||
|
||||
Navigate to [Chrome Web Store](https://chromewebstore.google.com/), enable **Desktop site** by selecting the menu button <kbd>⋮</kbd> in the top right corner and ensure the option is checked. Select **Okay** and proceed as normal if prompted with:
|
||||
Navigate to [Chrome Web Store](https://chromewebstore.google.com/), then enable **Desktop site** by selecting the menu button <kbd>⋮</kbd> in the top right corner and ensure the option is checked. Select **Okay** and proceed as normal if prompted with:
|
||||
> The Chrome Web Store is only available on desktop.
|
||||
|
||||
Manifest V2 (MV2) extensions are supported. You can install [uBlock Origin from Chrome Web Store](https://chromewebstore.google.com/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm).
|
||||
|
||||
Once you select **Add to Chrome**, [the extension will be installed in the background](https://support.google.com/chrome_webstore/answer/2664769) until the button changes to **Remove from Chrome**.
|
||||
|
||||
|
|
@ -28,6 +26,8 @@ To use [an extension's popup](https://developer.chrome.com/docs/extensions/devel
|
|||
|
||||
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](https://chromewebstore.google.com/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm).
|
||||
|
||||
### Debug URLs
|
||||
|
||||
To view and access the debug URLs, use [`chrome://chrome-urls`](chrome://chrome-urls). For **Experiments**, use [`chrome://flags`](chrome://flags).
|
||||
|
|
@ -84,15 +84,9 @@ All [Vanadium](https://github.com/GrapheneOS/Vanadium) patches are applied by de
|
|||
|
||||
## Building
|
||||
|
||||
All releases are built using [Actions](https://github.com/features/actions). Current releases can also be attested using [GitHub CLI](https://github.com/cli/cli).
|
||||
|
||||
```shell
|
||||
gh attestation verify *.apk -R jqssun/android-helium-browser
|
||||
```
|
||||
|
||||
This repository provides the build script to compile on the latest Ubuntu, and may also work with other Linux distributions.
|
||||
|
||||
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**](https://github.com/jqssun/android-helium-browser/blob/main/.github/workflows/build.yml#L49-L50) 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.
|
||||
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**](https://github.com/jqssun/android-helium-browser/blob/main/.github/workflows/build.yml#L47-L48) 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.
|
||||
|
||||
## Credits
|
||||
|
||||
|
|
|
|||
2
build.sh
2
build.sh
|
|
@ -39,11 +39,11 @@ git config --add remote.origin.fetch '+refs/tags/*:refs/tags/*'
|
|||
# https://grapheneos.org/build#browser-and-webview
|
||||
rm -rf $SCRIPT_DIR/vanadium/patches/*trichrome-{apk-build-targets,browser-apk-targets}.patch
|
||||
rm -rf $SCRIPT_DIR/vanadium/patches/*{detailed,supported}-language*.patch
|
||||
rm -rf $SCRIPT_DIR/vanadium/patches/*component-updates.patch
|
||||
# rm -rf $SCRIPT_DIR/vanadium/patches/*crashpad*.patch
|
||||
replace "$SCRIPT_DIR/vanadium/patches" "VANADIUM" "HELIUM"
|
||||
replace "$SCRIPT_DIR/vanadium/patches" "Vanadium" "Helium"
|
||||
replace "$SCRIPT_DIR/vanadium/patches" "vanadium" "helium"
|
||||
replace "$SCRIPT_DIR/vanadium/patches" ".helium.app" ".vanadium.app" # components
|
||||
git am --whitespace=nowarn --keep-non-patch $SCRIPT_DIR/vanadium/patches/*.patch
|
||||
|
||||
gclient sync -D --no-history --nohooks
|
||||
|
|
|
|||
|
|
@ -1,9 +1 @@
|
|||
A fully open-source experimental Chromium-based web browser for Android with extensions support.
|
||||
|
||||
- Installing Extensions: Navigate to Chrome Web Store, enable "Desktop site", and then proceed as normal. Manifest V2 (MV2) extensions are supported. You can install uBlock Origin from Chrome Web Store.
|
||||
|
||||
- Using Extensions: 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".
|
||||
|
||||
- Debug URLs: To view and access them, use "chrome://chrome-urls".
|
||||
|
||||
- WebRTC IP Policy: Available under "Privacy and security" in Settings. If you experience issues with WebRTC due to IPs being shielded by default, you may try to change it to Default public interface only, or Default.
|
||||
An experimental Chromium-based web browser for Android with extensions support, based on Helium and Vanadium.
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 48 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 133 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 128 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 109 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 414 KiB |
|
|
@ -1 +1 @@
|
|||
Private and secure open-source Android browser with support for extensions
|
||||
A Chromium-based web browser for Android with extensions support.
|
||||
17
patch.sh
17
patch.sh
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
mkdir -p chrome/android/java/res_helium_base
|
||||
for icon in $(find chrome/android/java/res_helium_base -type f -name '*.png'); do convert $icon -fill navy -tint 36 $icon; done
|
||||
# sed -i 's|Google LLC|jqssun, Google LLC|' chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
|
||||
sed -i '/feature_overrides.EnableFeature(::features::kSkipVulkanBlocklist);/d' chrome/browser/chrome_browser_field_trials.cc
|
||||
sed -i '/feature_overrides.EnableFeature(::features::kDefaultANGLEVulkan);/d' chrome/browser/chrome_browser_field_trials.cc
|
||||
|
|
@ -14,8 +13,6 @@ sed -i 's/BASE_FEATURE(kSubmenusInAppMenu, base::FEATURE_DISABLED_BY_DEFAULT);/B
|
|||
sed -i '/BASE_FEATURE(kTaskManagerClank,/,/);/ s/base::FEATURE_DISABLED_BY_DEFAULT/base::FEATURE_ENABLED_BY_DEFAULT/' chrome/browser/task_manager/common/task_manager_features.cc
|
||||
sed -i 's/BASE_FEATURE(kAndroidDevToolsFrontend, base::FEATURE_DISABLED_BY_DEFAULT);/BASE_FEATURE(kAndroidDevToolsFrontend, base::FEATURE_ENABLED_BY_DEFAULT);/' content/public/common/content_features.cc
|
||||
sed -i 's|if (!DeviceFormFactor.isNonMultiDisplayContextOnTablet(mContext)) {|if (false) {|' chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
|
||||
sed -i 's|boolean shouldShowDeveloperMenu() {|boolean shouldShowDeveloperMenu() { if (true) return DevToolsWindowAndroid.isDevToolsAllowedFor(getProfile(), mItemDelegate.getWebContents());|' chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||
sed -i 's|TabUtils.isUsingDesktopUserAgent(mItemDelegate.getWebContents())|(true \|\| TabUtils.isUsingDesktopUserAgent(mItemDelegate.getWebContents()))|' chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||
|
||||
# search
|
||||
sed -i 's|BASE_FEATURE(kOmniboxSiteSearch, DISABLED);|BASE_FEATURE(kOmniboxSiteSearch, ENABLED);|' components/omnibox/common/omnibox_features.cc
|
||||
|
|
@ -56,13 +53,6 @@ sed -i '/"ExtensionsToolbarCoordinatorImpl.requestLayoutWithViewUtils()");$/a\if
|
|||
sed -i 's|if (!context->IsOffTheRecord()) {|if (true) {|' extensions/browser/process_manager.cc
|
||||
sed -i 's|public static boolean shouldOpenIncognitoAsWindow() {|public static boolean shouldOpenIncognitoAsWindow() { if (true) return true;|' chrome/browser/incognito/android/java/src/org/chromium/chrome/browser/incognito/IncognitoUtils.java
|
||||
|
||||
# ext: priority
|
||||
sed -i 's|host_contents_->SetColorProviderSource(NoOpColorProviderSource::Get());|&\nhost_contents_->SetPrimaryPageImportance(content::ChildProcessImportance::IMPORTANT, content::ChildProcessImportance::NORMAL);|' extensions/browser/extension_host.cc
|
||||
|
||||
# ext: perms prompt
|
||||
sed -i '/content::WebContents\* web_contents = show_params->GetParentWebContents();/,/DCHECK(view_android);/{/GetParentWebContents/!d}' chrome/browser/ui/android/extensions/extension_install_dialog_view_android.cc
|
||||
sed -i 's|view_android->GetWindowAndroid();|show_params->GetParentWindow();|' chrome/browser/ui/android/extensions/extension_install_dialog_view_android.cc
|
||||
|
||||
# tmp
|
||||
sed -i 's|if (!IncognitoUtils.shouldOpenIncognitoAsWindow() \|\| isIncognitoShowing()) {|if (true) {|' chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
|
||||
sed -i 's/BASE_FEATURE(kAndroidSearchInSettings,"SearchInSettings", base::FEATURE_DISABLED_BY_DEFAULT);/BASE_FEATURE(kAndroidSearchInSettings,"SearchInSettings", base::FEATURE_ENABLED_BY_DEFAULT);/' chrome/browser/flags/android/chrome_feature_list.cc
|
||||
|
|
@ -71,13 +61,6 @@ sed -i '/#include "build\/build_config.h"/i #include "build/android_buildflags.h
|
|||
sed -i 's/#if (!BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_VR)) && !BUILDFLAG(IS_IOS)/#if (!BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_VR) || BUILDFLAG(IS_DESKTOP_ANDROID)) \&\& !BUILDFLAG(IS_IOS)/' $file
|
||||
done
|
||||
|
||||
# crbug.com/40831291: bottom address bar
|
||||
sed -i 's@(idealFitsBelow && spaceBelowAnchor >= spaceAboveAnchor) || !idealFitsAbove;@(idealFitsBelow == idealFitsAbove) ? (spaceBelowAnchor >= spaceAboveAnchor) : idealFitsBelow;@' ui/android/java/src/org/chromium/ui/widget/PopupSpecCalculator.java
|
||||
|
||||
# crbug.com/404069963: ntp override
|
||||
sed -i '/feature_overrides.EnableFeature(chrome::android::kChromeNativeUrlOverriding);/d' chrome/browser/chrome_browser_field_trials.cc
|
||||
sed -i 's|newCachedFlag(CHROME_NATIVE_URL_OVERRIDING, BuildConfig.IS_DESKTOP_ANDROID)|newCachedFlag(CHROME_NATIVE_URL_OVERRIDING, false)|' chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
|
||||
# crbug.com/431004500: incognito uaf
|
||||
sed -i '/for (int i = 0; i < tab_list->GetTabCount(); ++i) {/i if (!tab_list) { continue; }' chrome/browser/extensions/api/tabs/tabs_api.cc
|
||||
|
||||
|
|
|
|||
2
vanadium
2
vanadium
|
|
@ -1 +1 @@
|
|||
Subproject commit 6f3faec0acc5d003cf1c2374d555062cfe3b757f
|
||||
Subproject commit b96975c81d0d0ec77926ae8e4bd35e03520b5ba4
|
||||
Loading…
Add table
Add a link
Reference in a new issue