Top Related Projects
Google Chromium, sans integration with Google
Brave browser for Android, iOS, Linux, macOS, Windows.
Bromite is a Chromium fork with ad blocking and privacy enhancements; take back your browser!
Quick Overview
Ungoogled-Chromium is a modified version of Google's Chromium web browser that removes Google-specific features and integrations. It aims to enhance privacy and reduce data collection while maintaining the core functionality and performance of Chromium.
Pros
- Enhanced privacy and reduced data collection
- Removal of Google-specific integrations and features
- Maintains core Chromium functionality and performance
- Open-source and community-driven development
Cons
- May lack some convenient features present in standard Chrome/Chromium
- Potential compatibility issues with some websites or extensions
- Requires manual updates and maintenance
- Smaller user base compared to mainstream browsers
Getting Started
To get started with Ungoogled-Chromium:
- Visit the project's GitHub repository: https://github.com/ungoogled-software/ungoogled-chromium
- Go to the "Releases" section to find the latest version for your operating system
- Download and install the appropriate package for your system
- Launch Ungoogled-Chromium and configure it according to your preferences
Note: Specific installation steps may vary depending on your operating system. Refer to the repository's documentation for detailed instructions.
Competitor Comparisons
Google Chromium, sans integration with Google
Pros of ungoogled-chromium
- Removes Google-specific integrations and features for enhanced privacy
- Disables automatic updates for more control over the browser
- Includes additional customization options not available in standard Chromium
Cons of ungoogled-chromium
- May lack some convenience features present in standard Chromium
- Requires manual updates, which can be time-consuming
- Potential compatibility issues with some websites or extensions
Code comparison
Both repositories contain the same codebase for ungoogled-chromium. The main difference lies in the configuration files and build scripts. Here's an example of a patch applied in ungoogled-chromium:
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
index 1234567..8901234 100644
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -123,7 +123,7 @@ void AddCommonStrings(content::WebUIDataSource* html_source) {
html_source->AddString("syncDisconnectConfirmation",
l10n_util::GetStringUTF16(IDS_SYNC_DISCONNECT_CONFIRMATION));
html_source->AddString("syncDisconnectTitle",
- l10n_util::GetStringUTF16(IDS_SYNC_DISCONNECT_TITLE));
+ l10n_util::GetStringUTF16(IDS_SYNC_DISCONNECT_TITLE_UNGOOGLED));
This patch modifies the string used for the sync disconnect title, replacing it with an ungoogled-specific version.
Brave browser for Android, iOS, Linux, macOS, Windows.
Pros of Brave Browser
- Built-in ad and tracker blocking, enhancing privacy out of the box
- Integrated cryptocurrency wallet and rewards system
- More user-friendly and feature-rich for average users
Cons of Brave Browser
- Less focus on complete de-Googling compared to Ungoogled Chromium
- Includes some proprietary components and telemetry
- More complex codebase due to additional features
Code Comparison
Brave Browser (from src/brave/browser/brave_content_browser_client.cc
):
void BraveContentBrowserClient::RegisterNonNetworkNavigationLoaderFactories(
int frame_tree_node_id,
NonNetworkURLLoaderFactoryMap* factories) {
ContentBrowserClient::RegisterNonNetworkNavigationLoaderFactories(
frame_tree_node_id, factories);
factories->emplace(
brave_scheme::kBraveUIScheme,
std::make_unique<BraveContentBrowserClientReconnectingFactory>(
base::BindRepeating(&CreateBraveUIFactory)));
}
Ungoogled Chromium (from ungoogled-chromium/src/chrome/browser/chrome_content_browser_client.cc
):
void ChromeContentBrowserClient::RegisterNonNetworkNavigationLoaderFactories(
int frame_tree_node_id,
NonNetworkURLLoaderFactoryMap* factories) {
ContentBrowserClient::RegisterNonNetworkNavigationLoaderFactories(
frame_tree_node_id, factories);
factories->emplace(
chrome::kChromeUIScheme,
std::make_unique<ChromeContentBrowserClientReconnectingFactory>(
base::BindRepeating(&CreateChromeUIFactory)));
}
The code snippets show similar structure but highlight Brave's custom schemes and factories compared to Ungoogled Chromium's more standard Chrome implementation.
Bromite is a Chromium fork with ad blocking and privacy enhancements; take back your browser!
Pros of Bromite
- Built-in ad blocking and privacy enhancements
- Regular updates and active development
- Optimized for mobile devices (Android-focused)
Cons of Bromite
- Limited to Android platform
- Smaller community and fewer contributors compared to Ungoogled Chromium
- Less extensive de-Googling compared to Ungoogled Chromium
Code Comparison
Bromite (ad blocking implementation):
public class AdBlocker {
private static final String AD_HOSTS_FILE = "hosts.txt";
private static final Set<String> AD_HOSTS = new HashSet<>();
static {
loadAdHosts();
}
}
Ungoogled Chromium (removal of Google-specific code):
#if defined(GOOGLE_CHROME_BUILD)
// Google-specific code
#else
// Non-Google code
#endif
Both projects aim to enhance privacy and reduce Google's influence on the Chromium browser. Bromite focuses on mobile devices and includes built-in ad blocking, while Ungoogled Chromium takes a more comprehensive approach to removing Google-specific code and services across all platforms. Bromite offers a more user-friendly experience for Android users, while Ungoogled Chromium provides a more thorough de-Googling process for desktop users.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
ungoogled-chromium
A lightweight approach to removing Google web service dependency
Help is welcome! See the docs/contributing.md document for more information.
Objectives
In descending order of significance (i.e. most important objective first):
- ungoogled-chromium is Google Chromium, sans dependency on Google web services.
- 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.
- 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.
In scenarios where the objectives conflict, the objective of higher significance should take precedence.
Content Overview
- Objectives
- Motivation and Philosophy
- Feature Overview
- Downloads
- Source Code
- FAQ
- Building Instructions
- Design Documentation
- Contributing, Reporting, Contacting
- Credits
- Related Projects
- License
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 internal operations.
ungoogled-chromium addresses these issues in the following ways:
- Remove all remaining background requests to any web services while building and running the browser
- Remove all code specific to Google web services
- Remove all uses of pre-made binaries from the source code, and replace them with user-provided alternatives when possible.
- 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.
- Disable functionality specific to Google domains (e.g. Google Host Detector, Google URL Tracker, Google Cloud Messaging, Google Hotwording, etc.)
- This includes disabling Safe Browsing. Consult the FAQ for the rationale.
- Block internal requests to Google at runtime. This feature is a fail-safe measure for the above, in case Google changes or introduces new components that our patches do not disable. This feature is implemented by replacing many Google web domains in the source code with non-existent alternatives ending in
qjz9zk
(known as domain substitution; see docs/design.md for details), then modifying Chromium to block its own requests with such domains. In other words, no connections are attempted to theqjz9zk
domain. - Strip binaries from the source code (known as binary pruning; see docs/design.md for details)
Enhancing Features
These are the non-essential features introduced by ungoogled-chromium.
- Add many new command-line switches and
chrome://flags
entries to configure new features (which are disabled by default). See docs/flags.md for the exhaustive list. - Add Suggestions URL text field in the search engine editor (
chrome://settings/searchEngines
) for customizing search engine suggestions. - 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.
- Also prevents any URLs with the top-level domain
- (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
Automated or maintained builds
ungoogled-chromium is available in the following software repositories:
- Arch: Available in AUR & OBS, see instructions in ungoogled-chromium-archlinux
- Debian & Ubuntu: Available in OBS, find your distribution specific instructions in the Installing section
- Fedora: Available in COPR as
wojnilowicz/ungoogled-chromium
. Also available in RPM Fusion aschromium-browser-privacy
(outdated). - Gentoo: Available in
::pf4public
overlay asungoogled-chromium
andungoogled-chromium-bin
ebuilds - OpenMandriva includes ungoogled-chromium as its main browser. The
chromium
package includes all ungoogling patches. - macOS: Available in Homebrew as
eloston-chromium
. Just runbrew install --cask eloston-chromium
. Chromium will appear in your/Applications
directory.
If your GNU/Linux distribution is not listed, there are distro-independent builds available via the following package managers:
- Flatpak: Available in the Flathub repo as
io.github.ungoogled_software.ungoogled_chromium
- GNU Guix: Available as
ungoogled-chromium
- NixOS/nixpkgs: Available as
ungoogled-chromium
Third-party binaries
If your operating system is not listed above, you can also try to 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.
Source Code
This repository only contains the common code for all platforms; it does not contain all the configuration and scripts necessary to build ungoogled-chromium. Most users will want to use platform-specific repos, where all the remaining configuration and scripts are provided for specific platforms:
Find the repo for a specific platform here.
If you wish to include ungoogled-chromium code in your own build process, consider using the tags in this repo. These tags follow the format {chromium_version}-{revision}
where
chromium_version
is the version of Chromium used inx.x.x.x
format, andrevision
is a number indicating the version of ungoogled-chromium for the corresponding Chromium version.
Additionally, most platform-specific repos extend their tag scheme upon this one.
Building the source code: See docs/building.md
Mirrors
List of mirrors:
FAQ
See the frequently-asked questions (FAQ) on the Wiki
Building Instructions
Design Documentation
Contributing, Reporting, Contacting
- For reporting and contacting, see SUPPORT.md
- If you're willing to help, check out the Issue Tracker and especially issues, which need help
- For contributing (e.g. how to help, submitting changes, criteria for new features), see docs/contributing.md
- If you have some small contributions that don't fit our criteria, consider adding them to ungoogled-software/contrib or our Wiki instead.
Credits
- The Chromium Project
- Inox patchset
- Debian
- Bromite
- Iridium Browser
- The users for testing and debugging, contributing code, providing feedback, or simply using ungoogled-chromium in some capacity.
Related Projects
List of known projects that fork or use changes from ungoogled-chromium:
- Bromite (Borrows some patches. Features builds for Android)
- ppc64le fork (Fork with changes to build for ppc64le CPUs)
License
BSD-3-clause. See LICENSE
Top Related Projects
Google Chromium, sans integration with Google
Brave browser for Android, iOS, Linux, macOS, Windows.
Bromite is a Chromium fork with ad blocking and privacy enhancements; take back your browser!
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot