Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
README.md 9.31 KiB
Newer Older
csagan5's avatar
csagan5 committed
# Bromite - Take back your browser

<img src="https://www.bromite.org/release.svg" alt="current Bromite release" title="current Bromite release" /> <img src="https://www.bromite.org/license.svg" alt="GNU GPL v3" title="GNU VPL v3" />
csagan5's avatar
csagan5 committed

csagan5's avatar
csagan5 committed
<img title="Bromite - take back your browser!" src="https://www.bromite.org/android-icon-192x192.png" width="96" alt="Bromite" />
csagan5's avatar
csagan5 committed

csagan5's avatar
csagan5 committed
Bromite is a [Chromium](https://www.chromium.org/Home) fork with support for ad blocking and enhanced privacy.
csagan5's avatar
csagan5 committed

Bromite is only available for Android Lollipop (v5.0, API level 21) and above.
<img src="https://www.bromite.org/bromite_bromite_gh_downloads.svg" alt="downloads on Github" title="downloads on Github" />
csagan5's avatar
csagan5 committed

csagan5's avatar
csagan5 committed
For the Frequently Asked Questions see [F.A.Q.](./FAQ.md).

csagan5's avatar
csagan5 committed
For documentation see the [wiki](https://github.com/bromite/bromite/wiki).

csagan5's avatar
csagan5 committed
# Goals

Bromite aims at providing a no-clutter browsing experience without privacy-invasive features and with the addition of a fast ad-blocking engine.
Minimal UI changes are applied to help curbing the idea of "browser as an advertisement platform".

csagan5's avatar
csagan5 committed
# Donate

Please donate to support development of Bromite and the costs for the build system.

[&rarr; Support development with a donation](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JP3XTQPVRNET2): [![paypal](https://www.bromite.org/assets/img/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JP3XTQPVRNET2)
csagan5's avatar
csagan5 committed

csagan5's avatar
csagan5 committed
<a href="bitcoin:bc1qmpyuqsvs3tz3uaysplmwjr33gg4rzu6cqweaq834ehc25vduxppqkrszel">BTC donations address</a>: `bc1qmpyuqsvs3tz3uaysplmwjr33gg4rzu6cqweaq834ehc25vduxppqkrszel`
csagan5's avatar
csagan5 committed

ETH donations address: `0xf47ff39223d828f99fec5ab53bd068c5c0522042`

csagan5's avatar
csagan5 committed
# Features

* customizable adblock filters via user-provided URL (see https://www.bromite.org/custom-filters)
csagan5's avatar
csagan5 committed
* remove click-tracking and AMP from search results
csagan5's avatar
csagan5 committed
* DNS-over-HTTPS support with any valid IETF DoH endpoint
csagan5's avatar
csagan5 committed
* always-incognito mode
csagan5's avatar
csagan5 committed
* disable all field trials permanently
* disable smart search by default, allow web search from incognito mode
csagan5's avatar
csagan5 committed
* always-visible cookies, javascript and ads site settings
csagan5's avatar
csagan5 committed
* remove Play integration binary blobs
* use [CFI](https://en.wikipedia.org/wiki/Control-flow_integrity) on all architectures except x86
csagan5's avatar
csagan5 committed
* disable media router and remoting by default
* disable dynamic module loading
csagan5's avatar
csagan5 committed
* show warnings for TLSv1.0/TLSv1.1 pages
csagan5's avatar
csagan5 committed
* enable site-per-process isolation for all devices with memory > 1GB
csagan5's avatar
csagan5 committed
* completely remove safe browsing and other privacy-unfriendly features
csagan5's avatar
csagan5 committed
* [proxy configuration page](https://github.com/bromite/bromite/wiki/ProxyConfiguration) with PAC and custom proxy lists support
csagan5's avatar
csagan5 committed
* settings to disable custom intents and clear session on exit
* flags to toggle anti-fingerprinting mitigations for canvas, audio, client rects, webGL and sensor APIs (see full list below for all the new flags)
* use frozen User-Agent to conceal real model and browser version
csagan5's avatar
csagan5 committed
* privacy enhancement patches from [Iridium](https://iridiumbrowser.de/), [Inox patchset](https://github.com/gcarq/inox-patchset), [Brave](https://brave.com/) and [ungoogled-chromium](https://github.com/Eloston/ungoogled-chromium) projects
csagan5's avatar
csagan5 committed
* security enhancement patches from [GrapheneOS](https://github.com/GrapheneOS) project
csagan5's avatar
csagan5 committed
* disable scroll-to-text-fragment
csagan5's avatar
csagan5 committed
* reduced referer granularity
* block gateway attacks via websockets

## Features not related to privacy
* import/export bookmarks
* flag to allow screenshots of incognito tabs
* allow playing videos in background tabs and disable pause on switching tabs
csagan5's avatar
csagan5 committed
* all codecs included (proprietary, open H.264 etc.)
* [AV1 codec support](https://github.com/bromite/bromite/wiki/AV1-support)
csagan5's avatar
csagan5 committed
* [dav1d](https://code.videolan.org/videolan/dav1d) decoder enabled by default
csagan5's avatar
csagan5 committed
* built with official speed optimizations
Carl's avatar
Carl committed
* increase number of autocomplete matches from 5 to 10
csagan5's avatar
csagan5 committed
* allow changing default download storage location
* do not ignore save prompt for users without SD cards
* disable articles and increase number of icons on new tab page
csagan5's avatar
csagan5 committed
* adding an URL as bookmark will clear its blocked status for the NTP tiles
csagan5's avatar
csagan5 committed
* history support in incognito mode
* view source of pages
* timezone customization
* sticky desktop mode setting
* disable video autoplay by default
csagan5's avatar
csagan5 committed
* mobile/desktop user agent customization
csagan5's avatar
csagan5 committed

You can inspect all functionality/privacy changes by reading the [patches](https://github.com/bromite/bromite/tree/master/build/patches) and/or the [CHANGELOG](./CHANGELOG.md).
csagan5's avatar
csagan5 committed

csagan5's avatar
csagan5 committed
### Flags

Flags which have been retired from upstream Chromium but are still available in Bromite.

* `#enable-horizontal-tab-switcher`
* `#pull-to-refresh`
* `#enable-search-ready-omnibox`
csagan5's avatar
csagan5 committed
* `#darken-websites-checkbox-in-themes-setting`
csagan5's avatar
csagan5 committed
* `#simplified-ntp`
csagan5's avatar
csagan5 committed

csagan5's avatar
csagan5 committed
New flags:

* `#enable-incognito-snapshots-in-android-recents`
* `#max-connections-per-host`
* `#resume-background-video`
* `#ipv6-probing`
* `#disable-webgl`
* `#enable-device-motion` and `#enable-device-orientation`
csagan5's avatar
csagan5 committed
* `#show-legacy-tls-warnings`
csagan5's avatar
csagan5 committed

csagan5's avatar
csagan5 committed
Bromite's privacy features, including anti-fingerprinting mitigations (which are not comprehensive), **are not to be considered useful for journalists and people living in countries with freedom limitations**, please look at [Tor Browser](https://www.torproject.org/download/) in such cases.
csagan5's avatar
csagan5 committed
# Releases

All built versions are available as [releases](https://github.com/bromite/bromite/releases); the [official website](https://www.bromite.org/) points to those releases and - when browsing via Android - it will automatically highlight the one apt for your device (or none otherwise).
csagan5's avatar
csagan5 committed

Each tag corresponds to a Chromium Stable release tag.
csagan5's avatar
csagan5 committed

Bromite is currently built for ARM, ARM64 and x86 and for the Android SDK versions 19 and 21; [Bromite SystemWebView](https://www.bromite.org/system_web_view) is provided as well (SDK21+).
csagan5's avatar
csagan5 committed
For every Bromite build you can always find a matching [vanilla Chromium](https://www.bromite.org/chromium) build which is used for example to verify which issues are specific to Bromite or not.
csagan5's avatar
csagan5 committed
All official releases are also available through the [official third-party F-Droid repository](https://www.bromite.org/fdroid).
## Integrity and authenticity

You can verify the integrity of a downloaded APK file from this project with any `sha256sum`-compatible tool by downloading the corresponding `brm_X.Y.Z.sha256.txt` or `chr_X.Y.Z.sha256.txt` file, where X.Y.Z is the release version number. Example:
```
$ sha256sum --check brm_68.0.3440.54.sha256.txt
arm64_SystemWebView.apk: OK
arm64_ChromePublic.apk: OK
arm64_ChromeModernPublic.apk: OK
```

You can verify authenticity, e.g. that the author ([csagan5](https://github.com/csagan5)) released the file, by using gpg2:
```
$ gpg2 --quiet --verify brm_68.0.3440.54.sha256.txt.asc
gpg: assuming signed data in 'brm_68.0.3440.54.sha256.txt'
gpg: Signature made Sun 08 Jul 2018 04:22:52 PM CEST using RSA key ID D85DC0C5
gpg: Good signature from "csagan5 <32685696+csagan5@users.noreply.github.com>"
```

You can download csagan5's public GnuPG key from here: [csagan5.asc](./csagan5.asc).

csagan5's avatar
csagan5 committed
# How to build

csagan5's avatar
csagan5 committed
The [Bromite main repository](https://github.com/bromite/bromite) contains tags for each corresponding Chromium release (see https://chromium.googlesource.com/chromium/src.git).
csagan5's avatar
csagan5 committed

Please refer to [official Chromium build documentation](https://www.chromium.org/developers/how-tos/get-the-code) to get started on how to build Chromium; if you can build Chromium for Android, you can build Bromite.

csagan5's avatar
csagan5 committed
The Chromium version tag used as base for the patches is available here: [RELEASE](./build/RELEASE); this is always corresponding to the git tag for every release.
csagan5's avatar
csagan5 committed
The GN args used to build Bromite are available here: [GN_ARGS](./build/GN_ARGS).
csagan5's avatar
csagan5 committed
The patches are to be applied second the order specified in the `bromite_patches_list.txt` file (you can use `git am`).

## How to build the filters

See upstream documentation: https://github.com/chromium/chromium/blob/master/components/subresource_filter/FILTER_LIST_GENERATION.md

Bromite uses an unindexed filter file, which is periodically published at https://github.com/bromite/filters
csagan5's avatar
csagan5 committed

csagan5's avatar
csagan5 committed
# Credits

csagan5's avatar
csagan5 committed
* [Chromium project](https://www.chromium.org/Home) and developers
* [Iridium project](https://github.com/iridium-browser) for some patches
csagan5's avatar
csagan5 committed
* [ungoogled-chromium](https://github.com/Eloston/ungoogled-chromium) for some patches
csagan5's avatar
csagan5 committed
* [ungoogled-chromium-android](https://github.com/ungoogled-software/ungoogled-chromium-android) for some patches
csagan5's avatar
csagan5 committed
* [GrapheneOS](https://github.com/GrapheneOS) for some security patches
* [Inox patchset](https://github.com/gcarq/inox-patchset) for some patches (via ungoogled-chromium)
Carl's avatar
Carl committed
* [Brave Browser](https://github.com/brave/brave-core) for some patches
* [Vadim Pleshkov](http://vadimpleshkov.me/) for Bromite's logo
csagan5's avatar
csagan5 committed

csagan5's avatar
csagan5 committed
# Filters credits
csagan5's avatar
csagan5 committed
* [EasyList](https://easylist.to/#easylist)
* [EasyPrivacy](https://easylist.to/#easyprivacy)
* [uBlock Origin](https://github.com/uBlockOrigin)
csagan5's avatar
csagan5 committed
* [Peter Lowe's Ad and tracking server list](https://pgl.yoyo.org/adservers/)
csagan5's avatar
csagan5 committed
The URLs of the lists used are available at: https://github.com/bromite/filters/blob/master/lists.txt

csagan5's avatar
csagan5 committed
# License

csagan5's avatar
csagan5 committed
The patches published as part of the Bromite project are released under [GNU GPL v3](./LICENSE).
csagan5's avatar
csagan5 committed

[version-image]: https://img.shields.io/github/release/bromite/bromite.svg?style=flat-square
[version-url]: https://github.com/bromite/bromite/releases/latest
csagan5's avatar
csagan5 committed
[license-image]: https://img.shields.io/github/license/bromite/bromite.svg
[license-url]: https://github.com/bromite/bromite/blob/master/LICENSE