Android build for ungoogled-chromium. https://uc.droidware.info
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wchen342 d2ed0af5da
DoH and WebGL fix; add GPC
2 years ago
.gitea Fix conditions for creating apks 2 years ago
.github Update to 88.0.4324.152; split webview builds 2 years ago
misc fix desugar/R8 2 years ago
patches DoH and WebGL fix; add GPC 2 years ago
prebuilt_jar Update to 88.0.4324.104-1; fix androidx overlay; fix gradle 2 years ago
safe_browsing_proto_files Update to 78.0.3904.97-1 3 years ago
.gclient Update to 81.0.4044.113-1 3 years ago
.gitignore Add .gitignore 3 years ago
CHANGELOG.md DoH and WebGL fix; add GPC 2 years ago
LICENSE.md update README; update license notice 2 years ago
README.md DoH and WebGL fix; add GPC 2 years ago
SUPPORT.md Update md files 3 years ago
android_flags.debug.gn ccache and debug settings 2 years ago
android_flags.gn Update to 88.0.4324.104-1; fix androidx overlay; fix gradle 2 years ago
android_flags.release.gn Pre-split master and extensions branches. Update to 83.0.4103.97-1. 3 years ago
build.sh DoH and WebGL fix; add GPC 2 years ago
bundle_generate_apk.sh Fix conditions for creating apks 2 years ago
domain_sub_2.list fix webview build 2 years ago
keystore_dummy.gn Fix paths 2 years ago
pruning_2.list Update to 87.0.4280.88 2 years ago

README.md

ungoogled-chromium-android

Please see CHANGELOG for latest updates.

A lightweight approach to removing Google web service dependency

Note: this is an Android build.

Help is welcome!

For more information on ungoogled-chromium, please visit the original repo: Eloston/ungoogled-chromium.

Content Overview

Objectives

In descending order of significance (i.e. most important objective first):

  1. ungoogled-chromium is Google Chromium, sans dependency on Google web services.
  2. ungoogled-chromium retains the default Chromium experience as closely as possible. Unlike other Chromium forks that have their own visions of a web browser, ungoogled-chromium is essentially a drop-in replacement for Chromium.
  3. ungoogled-chromium features tweaks to enhance privacy, control, and transparency. However, almost all of these features must be manually activated or enabled. For more details, see Feature Overview.

Differences from ungoogled-chromium

These are the differences between a Linux build of ungoogled-chromium and ungoogled-chromium-android.

  • Disable Android specific functionalities:
    • lite mode
    • contextual search
    • prefetch
    • remove home page links
    • remove unnecessary account permissions
  • Android specific enhancements:
    • Add Startpage.com and Qwant.com as search engine options
    • Add new folder button in bookmark manager
    • Add back flags to enable deprecated TLS warnings
    • Add back flags to enable process sharing
    • Add flag to enable update notifications (disabled by default and will only send a single GET request to my server periodically)
    • Add flags to always send save-data flag in header
    • Add flags to force tablet UI and desktop mode
  • Borrowed from Bromite:
    • Exit menu item
    • flag to disable device orientation API
    • option to clear open tabs between sessions
    • prevent WebRTC address leaking
    • enable DNS-over-Https by default
    • Add bookmark import/export options
    • Disable DRM media preprovisioning which leaks connections
  • All Google play and Google service related blobs are removed. This includes Firebase, GCM (Google Cloud Messaging), GMS (Google Mobile Services) and bridge to Google Play.
  • Releases are built for arm, arm64 and x86. There is no x86_64 build.

Limitations

The enhancements included in ungoogled-chromium are not to be considered useful for journalists, people living in countries with freedom limitations, and those who are facing government-level adversaries. Please look at tools specifically developed for these purposes, for example Tor Browser in such cases.

Platforms and Versions

Pre-built apks are named as {BUILD_TARGET}_{CPU_ARCH}.apk, where:

  • {BUILD_TARGET} is one of ChromeModernPublic, Trichrome, SystemWebview.
    • ChromeModernPublic is for API >= 21 (Android 5.0) and only contains the browser.
    • Trichrome is for API >= 29 (Android 10) and only contains the browser. Note: Trichrome has two apks, you need to install both for ungoogled-chromium to work.
    • SystemWebview is for >= API 21 (Android 5.0) and only contains the webview.
  • {CPU_ARCH} is one of x86, arm (armeabi-v7a), arm64 (arm64-v8a).
  • Please also read this important note about Webview on Android N-P.
  • The Bromite Wiki can also be helpful.

Building Instructions

This build is built from Sylvain Beucler's libre Android rebuilds instead of SDK/NDK binaries from Google.

  • Clone this repository
  • Make sure you have enough disk space and memory to build chromium
  • enter repo directory and run ./build.sh.

Build time dependencies (package names as in Fedora 33. Other distributions may have different package names):

required packages
    bison
    bzip2
    clang
    curl
    dbus-devel
    expat-devel
    fakeroot-libs.i686
    flex
    git
    glib2
    glib2-devel
    glibc.i686
    glibc-devel.i686
    gnupg2
    gperf
    java-1.8.0-openjdk-devel
    java-1.8.0-openjdk-headless
    java-11-openjdk
    java-11-openjdk-devel
    java-11-openjdk-headless
    krb5-devel
    libatomic-static
    libdrm-devel
    libgcc.i686
    libstdc++-static
    libtool-ltdl.i686
    libtool-ltdl-devel.i686
    libuuid-devel
    libxkbcommon-devel
    lld
    llvm
    make
    maven
    ninja-build
    nodejs
    npm
    nss-devel
    passwd
    patch
    perl
    protobuf
    python2.7
    python3
    rsync
    tar
    unzip
    yasm
    wget

In addition, scripts need to be run under python2. virtualenv or conda can be used to set up such an environment.

For a more customized building process, see building instructions from the original repo.

Reporting and Contributing

  • For reporting issues and contacting, see SUPPORT
  • This project is still in its early stage, so contributions are welcomed.

Extensions

Note: the extension-support version is experimental. It is not officially a part of ungoogled-chromium. Only use it if you want to help testing, or you know what you are doing! I will not be responsible for any loss or damage caused.

The extension-support version is NOT a successor of Kiwi browser.

Some common extensions are known to work. Please report what extensions are working or not in discussions.

There are three methods to install extensions:

  • Method 1 (the easiest way):
    1. Go to chrome://flags/ and change #extension-mime-request-handling to Always prompt for install and relaunch your browser.
    2. Go to chrome webstore page
    3. Switch to desktop site
    4. Search for the extension you want to install and click Add to Chromium
    5. The browser should prompt for installation after finishing downloading
    6. Check chrome://extensions/ and you should see the extension there.
  • Method 2 (Direct Download):
    1. Go to chrome://flags/ and change #extension-mime-request-handling to Always prompt for install and relaunch your browser.
    2. Get direct link to crx file following the instructions here.
      1. Optionally, you can use a third-party website to download the crx file. However, do so at your own risk, as I will take absolutely no responsibility for problems caused by using a third party website or service.
    3. Paste the link into omnibox and go to that link.
    4. The browser should prompt for installation after finishing downloading
    5. Check chrome://extensions/ and you should see the extension there.
  • Method 3 (Developer Mode Folder Loading. This method only supports Android 5.1 to 10):
    1. Download extension following the instructions here.
      1. Optionally, you can use a third-party website to download the crx file. However, do so at your own risk, as I will take absolutely no responsibility for problems caused by using a third party website or service.
    2. Extract the crx file into a folder withunzip/7z and copy the folder to your device.
      1. For an alternative way to extract the crx` file on device, see this comment.
    3. Notice for Android 10: as a workaround for a permission issue, you need to enable "Allow from unknown source" for "Ungoogled Chromium Extensions".
    4. Make sure you also give storage access.
    5. Open chrome://extensions/ and enable Developer mode.
    6. Click Load unpacked and select the folder you copied. Notice that Android has two file selections, one for selecting files and one for selecting folders. Make sure you use the right one.
    7. Refresh and you shall see the extension in the list.

F-Droid Repository

I have set up a F-Droid repository. You can use F-Droid client and add the following repository, depending on your device:

Credits

  • Bromite (Another build for Android. Has some own features.)

Sponsors

  • Thanks to Gandi.net for kindly providing us with building servers.

License

See LICENSE.

ungoogled-chromium-android is part of ungoogled-chromium. Everything published here, including (but not limited to) patches, scripts and other files are licensed under GPLv3+.