ungoogled-chromium is a modified version of Google Chromium that eliminates all dependencies on Google web services, including background requests to Google domains, telemetry, and proprietary binaries. It is designed as a drop-in replacement for Chromium, preserving the same user interface and functionality while enhancing privacy, control, and transparency. This project is ideal for users who want the performance and compatibility of Chromium without the data collection mechanisms inherent in Google’s official builds. Developers, privacy-conscious individuals, and system administrators seeking full control over their browsing environment will find ungoogled-chromium a practical solution that balances functionality with ethical computing principles.
What You Get
- Disable Google web service dependencies - Removes all Google-specific components including Safe Browsing, Google Host Detector, Google Cloud Messaging, and Hotwording. Internal requests to Google domains are blocked via domain substitution (replacing domains with
qjz9zk equivalents) to prevent any accidental connections.
- Binary pruning - Strips pre-compiled Google binaries from the source code and replaces them with user-provided alternatives, ensuring full build transparency and reducing attack surface.
- Runtime domain blocking - Blocks all attempts to connect to Google domains or substituted
qjz9zk domains at the network level, even if new Google components are introduced in future Chromium updates.
- Enhanced user control via flags - Adds command-line switches and
chrome://flags options to disable URL auto-formatting, intranet redirect detection, and force pop-ups into tabs — all disabled by default for user choice.
- Custom cross-platform build system - Provides unified configuration and packaging scripts for Linux (Debian, Ubuntu, Fedora, Gentoo, OpenMandriva), macOS, Windows, FreeBSD, and openSUSE — enabling reproducible builds across environments.
- Search engine customization - Adds a Suggestions URL field in
chrome://settings/searchEngines to fully control search engine suggestions and disable them entirely with the ‘No Search’ provider.
- Platform-specific privacy tweaks - On Windows, prevents Zone Identifier from being added to downloaded files; on all platforms, blocks
trk: scheme URLs and qjz9zk domains to prevent tracking attempts.
Common Use Cases
- Building a privacy-compliant browser for enterprise deployment - Organizations requiring compliance with GDPR or similar regulations use ungoogled-chromium to eliminate Google telemetry and data collection while maintaining compatibility with internal web apps.
- Creating a secure, auditable browser for journalists or activists - Users in high-risk environments deploy ungoogled-chromium to prevent any covert communication with Google servers, reducing tracking and surveillance risks.
- Problem: Chromium still calls home to Google even without signing in → Solution: ungoogled-chromium removes all background requests and replaces binaries with source-compiled alternatives - Ensures no data leaves the device unless explicitly requested by the user.
- Team: DevOps teams managing browser fleets across mixed OS environments - Uses Flatpak, Homebrew, or distro packages to standardize a privacy-hardened Chromium build across macOS, Linux, and Windows systems with consistent configuration.
Under The Hood
The ungoogled-chromium project is a privacy-focused customization of the Chromium browser that systematically removes Google-specific features and tracking mechanisms. It achieves this through a combination of patch management, domain substitution, and automation tools that enable users to build a Chromium-based browser without Google integration.
Architecture
The project adopts a monolithic yet modular architecture centered around patch application and configuration management.
- The codebase is organized around a core set of patches applied to Chromium’s source, with dedicated tools for validation and management.
- Development utilities and validation scripts form a separate module that ensures consistency across patch sets and configurations.
- Third-party libraries such as unidiff are integrated to handle patch parsing, indicating a pragmatic approach to leveraging existing tools.
- Component interactions occur primarily through configuration files and utility scripts that coordinate the build and customization process.
Tech Stack
The system is built predominantly in Python, with a strong emphasis on automation and system-level operations.
- The primary language is Python, supported by shell scripting and Nix for environment management and builds.
- Core functionality relies on standard Python libraries like pathlib, subprocess, and argparse for file and process handling.
- Third-party tools such as unidiff are used for patch-related operations, enhancing maintainability and reducing reinvention.
- Testing is conducted using pytest alongside custom linting and formatting scripts to ensure code quality.
Code Quality
The project maintains a moderate code quality standard with an emphasis on automation and validation.
- A comprehensive suite of utility tests ensures reliability across patching workflows and configuration handling.
- Error handling is consistently implemented using try/except blocks to manage exceptions from file operations and patch validation.
- Python code follows consistent style guidelines, with linting and formatting practices supporting readability and uniformity.
- Some complexity exists in patch management logic, suggesting potential areas for refactoring or simplification.
What Makes It Unique
The project distinguishes itself through its focused approach to privacy and extensibility in browser customization.
- It features a sophisticated patch management system that integrates seamlessly with Chromium’s build process to remove Google services.
- A robust domain substitution framework redirects tracking domains to neutral endpoints, preserving usability while eliminating data collection.
- The project supports modular extension strategies by integrating patches from various sources such as Bromite and Iridium.
- Extensive developer tooling simplifies build automation, enabling contributors to maintain consistent builds without deep Chromium knowledge.