Modifications to Google Chromium for removing Google integration and enhancing privacy, control, and transparency (mirror)

Eloston 9fa9c7ad3d Update revision to 74.0.3729.108-1 1 day ago
.github dd083cd22c Simplify issue templates 1 month ago
devutils 39dceb86e0 devutils/update_platform_patches.py: Fix extra newline in series 2 weeks ago
docs 4bdf4e1857 docs/flags.md: Document new --scroll-tabs flag 3 days ago
patches 0465aa1b4c Enabled ability to use Paste and Go with wheel on New Tab Button. 1 day ago
utils 55c9945bad Fix bugs with comments in series files 2 weeks ago
.cirrus.yml 581797d337 Cirrus CI: Fix typo 4 days ago
.cirrus_Dockerfile 2a07ca204f Cirrus CI: Update Dockerfile to python:3.7-slim 2 weeks ago
.cirrus_requirements.txt 296c1d054a Add .cirrus_requirements.txt 2 weeks ago
.gitignore f0ab2b90d1 Revert ignore download_cache 5 months ago
.style.yapf 4d527713d1 Format code using yapf 9 months ago
LICENSE 262b83c66e Update copyright years to 2019 1 month ago
README.md d039263d70 README: Simplify downloads section 3 weeks ago
SUPPORT.md 30969fddff docs: Update building.md and other minor tweaks 1 month ago
chromium_version.txt 67079193c1 Update Chromium to 74.0.3729.108 2 days ago
domain_regex.list 97b5e48dcf Reorganize files 3 months ago
domain_substitution.list c54c7b3ad5 Update Chromium to 74.0.3729.91 6 days ago
downloads.ini 1003bd6504 Update comments referencing buildkit to something else 1 month ago
flags.gn 158383994e Remove more platform-specific GN flags 1 month ago
pruning.list e267680f11 Update Chromium to 74.0.3729.75 6 days ago
revision.txt 9fa9c7ad3d Update revision to 74.0.3729.108-1 1 day ago

README.md

ungoogled-chromium

A lightweight approach to removing Google web service dependency

ungoogled-chromium is Google Chromium, sans dependency on Google web services. It also features some tweaks to enhance privacy, control, and transparency (almost all of which require manual activation or enabling).

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.

Help is always welcome! See the docs/contributing.md document for more information.

Content Overview

Motivation and Philosophy

Without signing in to a Google Account, Chromium does pretty well in terms of security and privacy. However, Chromium still has some dependency on Google web services and binaries. In addition, Google designed Chromium to be easy and intuitive for users, which means they compromise on transparency and control of inner operations.

ungoogled-chromium addresses these issues in the following ways:

  1. Remove all remaining background requests to any web services while building and running the browser
  2. Remove all code specific to Google web services
  3. Remove all uses of pre-made binaries from the source code, and replace them with user-provided alternatives when possible.
  4. Disable features that inhibit control and transparency, and add or modify features that promote them (these changes will almost always require manual activation or enabling).

These features are implemented as configuration flags, patches, and custom scripts. For more details, consult the Design Documentation.

Feature Overview

This section overviews the features of ungoogled-chromium. For more detailed information, it is best to consult the source code.

Contents of this section:

Key Features

These are the core features introduced by ungoogled-chromium.

  • Replace many web domains in the source code with non-existent alternatives ending in qjz9zk (known as domain substitution; see docs/design.md for details)
  • Strip binaries from the source code (known as binary pruning; see docs/design.md for details)
  • Disable functionality specific to Google domains (e.g. Google Host Detector, Google URL Tracker, Google Cloud Messaging, Google Hotwording, etc.)
  • Add many new command-line switches and chrome://flags entries to configure disabled-by-default features. See docs/flags.md for the exhaustive list.

Enhancing Features

These are the non-essential features introduced by ungoogled-chromium.

  • Use HTTPS by default when a URL scheme is not provided (e.g. Omnibox, bookmarks, command-line)
  • Add Suggestions URL text field in the search engine editor (chrome://settings/searchEngines) for customizing search engine suggestions.
  • Add menu item under "More tools" to clear the HTTP authentication cache on-demand
  • Add more URL schemes allowed to save page schemes.
  • Add Omnibox search provider "No Search" to allow disabling of searching
  • Add a custom cross-platform build configuration and packaging wrapper for Chromium. It currently supports many Linux distributions, macOS, and Windows. (See docs/design.md for details on the system.)
  • Force all pop-ups into tabs
  • Disable automatic formatting of URLs in Omnibox (e.g. stripping http://, hiding certain parameters)
  • Disable intranet redirect detector (extraneous DNS requests)
    • This breaks captive portal detection, but captive portals still work.
  • (Iridium Browser feature change) Prevent URLs with the trk: scheme from connecting to the Internet
    • Also prevents any URLs with the top-level domain qjz9zk (as used in domain substitution) from attempting a connection.
  • (Iridium and Inox feature change) Prevent pinging of IPv6 address when detecting the availability of IPv6. See the --set-ipv6-probe-false flag above to adjust the behavior instead.
  • (Windows-specific) Do not set the Zone Identifier on downloaded files

Borrowed Features

In addition to the features introduced by ungoogled-chromium, ungoogled-chromium selectively borrows many features from the following projects (in approximate order of significance):

Supported Platforms and Distributions

See docs/platforms.md for a list of supported platforms.

Other platforms are discussed and tracked in this repository's Issue Tracker. Learn more about using the Issue Tracker under the section Contributing, Reporting, Contacting.

Downloads

Download binaries from here

NOTE: These binaries are provided by anyone who are willing to build and submit them. Because these binaries are not necessarily reproducible, authenticity cannot be guaranteed; In other words, there is always a non-zero probability that these binaries may have been tampered with. In the unlikely event that this has happened to you, please report it in a new issue.

These binaries are known as contributor binaries.

Also, ungoogled-chromium is available in several software repositories:

  • Arch Linux: Available in AUR as ungoogled-chromium
    • NOTE: ungoogled-chromium-bin is not officially part of ungoogled-chromium. Please submit all issues to the maintainer of the PKGBUILD.
  • Gentoo Linux: ::chaoslab overlay maintains an unofficial ungoogled-chromium ebuild.
  • GNU Guix: Available as ungoogled-chromium.
  • macOS cask: Available as eloston-chromium

Source Code

This repository contains the common code for all platforms. To build ungoogled-chromium for a specific platform, consult the repository for that plaform.

Tags (listed here) denote versions ready to be used. Tags follow the format {chromium_version}-{revision} where

  • chromium_version is the version of Chromium used in x.x.x.x format, and
  • revision is a number indicating the version of ungoogled-chromium for the corresponding Chromium version.

Building the source code: See docs/building.md

FAQ

See the frequently-asked questions (FAQ) on the Wiki

Building Instructions

See docs/building.md

Design Documentation

See docs/design.md

Contributing, Reporting, Contacting

  • For reporting and contacting, see SUPPORT.md
  • For contributing (e.g. how to help, submitting changes, criteria for new features), see docs/contributing.md

Credits

License

BSD-3-clause. See LICENSE