diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 30d815f34c..8022eecaaa 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -122,17 +122,12 @@ jobs:
restore-keys: |
${{ runner.os }}-htmlproofer-
${{ runner.os }}-htmlproofer
- - name: Check All External Links (Informational, Soft-Fail)
+ - name: Check External Links (Informational, Soft-Fail)
uses: chabad360/htmlproofer@v1.1
with:
directory: ${{ github.workspace }}/_site
arguments: --assume-extension --external_only --internal-domains privacyguides.org,www.privacyguides.org --timeframe 30d --url-ignore '/https:\/\/developers\.cloudflare\.com\//,/https:\/\/github\.com\/privacyguides\/privacyguides\.org\/(edit|tree|blob)\/main/,/https:\/\/support\.(startmail|yubico)\.com\//'
continue-on-error: true
- - name: Check External Links (Only 4XX)
- uses: chabad360/htmlproofer@v1.1
- with:
- directory: ${{ github.workspace }}/_site
- arguments: --assume-extension --external_only --only_4xx --http-status-ignore 429 --internal-domains privacyguides.org,www.privacyguides.org --timeframe 30d --url-ignore '/https:\/\/developers\.cloudflare\.com\//,/https:\/\/github\.com\/privacyguides\/privacyguides\.org\/(edit|tree|blob)\/main/'
https:
name: "Require HTTPS Internal Images"
diff --git a/Gemfile b/Gemfile
index 73c34c22e9..5dbb4f7617 100644
--- a/Gemfile
+++ b/Gemfile
@@ -11,6 +11,7 @@ end
# Jekyll 3.9.0 now requires this explicitly installed, apparently
gem "kramdown-parser-gfm", "~> 1.1"
gem "webrick", "~> 1.7"
+gem 'eventmachine', '1.3.0.dev.1', git: 'https://github.com/eventmachine/eventmachine', branch: 'master'
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby]
diff --git a/Gemfile.lock b/Gemfile.lock
index 7556eb17f0..141d793a0c 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,3 +1,10 @@
+GIT
+ remote: https://github.com/eventmachine/eventmachine
+ revision: 8e1d6b11fd8400593af035a7a0d203d24c10c9b0
+ branch: master
+ specs:
+ eventmachine (1.3.0.dev.1)
+
GEM
remote: https://rubygems.org/
specs:
@@ -9,7 +16,6 @@ GEM
em-websocket (0.5.2)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
- eventmachine (1.2.7)
ffi (1.15.4)
forwardable-extended (2.6.0)
http_parser.rb (0.6.0)
@@ -70,6 +76,7 @@ PLATFORMS
ruby
DEPENDENCIES
+ eventmachine (= 1.3.0.dev.1)!
jekyll (~> 4.2)
jekyll-brotli (~> 2.3)
jekyll-feed (~> 0.6)
diff --git a/_data/nav/1_home.yml b/_data/nav/1_home.yml
deleted file mode 100644
index 9271f9b690..0000000000
--- a/_data/nav/1_home.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-type: link
-title: Home
-file: index.html
diff --git a/_data/nav/2_providers.yml b/_data/nav/1_providers.yml
similarity index 100%
rename from _data/nav/2_providers.yml
rename to _data/nav/1_providers.yml
diff --git a/_data/nav/3_software.yml b/_data/nav/2_software.yml
similarity index 97%
rename from _data/nav/3_software.yml
rename to _data/nav/2_software.yml
index 6f5b490051..a864aa5c04 100644
--- a/_data/nav/3_software.yml
+++ b/_data/nav/2_software.yml
@@ -6,7 +6,7 @@ items:
icon: fad fa-browser
file: _evergreen/browsers.html
- type: link
- title: Operating Systems
+ title: Operating Systems (Legacy)
icon: fad fa-compact-disc
file: legacy_pages/os.html
- type: divider
diff --git a/_data/nav/3._operating_systems.yml b/_data/nav/3._operating_systems.yml
new file mode 100644
index 0000000000..133e4fbdfa
--- /dev/null
+++ b/_data/nav/3._operating_systems.yml
@@ -0,0 +1,7 @@
+type: dropdown
+title: Operating Systems
+items:
+ - type: link
+ title: Android
+ icon: fab fa-android
+ file: _evergreen/android.html
diff --git a/_data/operating-systems/android-applications/1_orbot.yml b/_data/operating-systems/android-applications/1_orbot.yml
new file mode 100644
index 0000000000..1941da4955
--- /dev/null
+++ b/_data/operating-systems/android-applications/1_orbot.yml
@@ -0,0 +1,24 @@
+title: Orbot
+type: Recommendation
+logo: /assets/img/android/orbot.svg
+description: |
+ Orbot is a free proxy app that routes your connections through the Tor Network.
+
+ Orbot can proxy individual apps if they support SOCKS or HTTP proxying. It can also proxy all your network connections using the VpnService and can be used with the VPN killswitch (⚙️ Settings → Network & internet → VPN → ⚙️ → Block connections without VPN).
+
+ For resistance against traffic analysis attacks, consider enabling Isolate Destination Address ( ⁝ →Settings → Connectivity). This will use a completely different Tor Circuit (different middle relay and exit nodes) for every domain you connect to.
+
+
Notes
+ Orbot is often outdated on the Guardian Project's F-Droid repository and Google Play so consider downloading directly from the GitHub repository instead.
+
+ All versions are signed using the same signature so they should be compatible with each other.
+website: 'https://guardianproject.info/apps/org.torproject.android'
+downloads:
+ - icon: fab fa-android
+ url: 'https://guardianproject.info/fdroid'
+ - icon: fab fa-google-play
+ url: 'https://play.google.com/store/apps/details?id=org.torproject.android'
+ - icon: fab fa-github
+ url: 'https://github.com/guardianproject/orbot'
+ - icon: fab fa-gitlab
+ url: 'https://gitlab.com/guardianproject/orbot'
diff --git a/_data/operating-systems/android-applications/2_shelter.yml b/_data/operating-systems/android-applications/2_shelter.yml
new file mode 100644
index 0000000000..2f819b407d
--- /dev/null
+++ b/_data/operating-systems/android-applications/2_shelter.yml
@@ -0,0 +1,20 @@
+title: Shelter
+type: Recommendation
+logo: /assets/img/android/shelter.svg
+description: |
+ Shelter is an app that helps you leverage the Android work profile to isolate other apps.
+
+ Shelter supports blocking contact search cross profiles and sharing files across profiles via the default file manager (DocumentsUI).
+
+ Notes
+ CalyxOS includes a device controller so we recommend using their built in work profile instead.
+website: 'https://gitea.angry.im/PeterCxy/Shelter'
+downloads:
+ - icon: fab fa-android
+ url: 'https://f-droid.org/en/packages/net.typeblog.shelter'
+ - icon: fab fa-google-play
+ url: 'https://play.google.com/store/apps/details?id=net.typeblog.shelter'
+ - icon: fab fa-github
+ url: 'https://github.com/PeterCxy/Shelter'
+ - icon: fab fa-git
+ url: 'https://gitea.angry.im/PeterCxy/Shelter'
diff --git a/_data/operating-systems/android-applications/3_auditor.yml b/_data/operating-systems/android-applications/3_auditor.yml
new file mode 100644
index 0000000000..4bb9cf7f7d
--- /dev/null
+++ b/_data/operating-systems/android-applications/3_auditor.yml
@@ -0,0 +1,26 @@
+title: Auditor
+type: Recommendation
+logo: /assets/img/android/auditor.svg
+description: |
+ Auditor is an app which leverages hardware security features to provide device integrity monitoring for supported devices. It currently works with GrapheneOS and the stock operating system. It performs attestation and intrusion detection by:
+
+ - Using a Trust On First Use (TOFU) model between an auditor and auditee, the pair establish a private key in the hardware-backed keystore of the Auditor.
+ - The auditor can either be another instance of the Auditor app or the Remote Attestation Service.
+ - The auditor records the current state and configuration of the auditee.
+ - Should tampering with the operating system of the auditee after the pairing is complete, the auditor will be aware of the change in the device state and configurations.
+ - The user will be alerted to the change.
+
+
+ No personally identifiable information is submitted to the attestation service. We do still recommend that you sign up with an anonymous account and enable remote attestation for continuous monitoring.
+
+ If your threat model requires complete anonymity you could consider using Orbot or a VPN to hide your IP address from the attestation service.
+
+ To make sure that your hardware and operating system is genuine, perform local attestation immediately after the device has been installed and prior to any internet connection.
+
+website: 'https://attestation.app'
+privacy_policy: 'https://attestation.app/privacy-policy'
+downloads:
+ - icon: fab fa-google-play
+ url: 'https://play.google.com/store/apps/details?id=app.attestation.auditor'
+ - icon: fab fa-github
+ url: 'https://github.com/GrapheneOS/Auditor'
diff --git a/_data/operating-systems/android/1_grapheneos.yml b/_data/operating-systems/android/1_grapheneos.yml
new file mode 100644
index 0000000000..b96c679281
--- /dev/null
+++ b/_data/operating-systems/android/1_grapheneos.yml
@@ -0,0 +1,19 @@
+title: GrapheneOS
+type: Recommendation
+logo: /assets/img/android/grapheneos.svg
+description: |
+ GrapheneOS is the best choice when it comes to privacy and security.
+
+ GrapheneOS has a lot of security hardening and privacy improvements. It has a hardened memory allocator, network and sensor permissions, and various other security features. GrapheneOS also comes with full firmware updates and signed builds, so verified boot is fully supported.
+
+ Notably, GrapheneOS supports Sandboxed Play Services. Google Play Services can be run fully sandboxed like a regular user app and contained in a work profile or user profile of your choice. This means that you can run apps dependant on Play Services, such as those that require push notifications using Google's Firebase Cloud Messaging service. GrapheneOS allows you to take advantage of most Google Play Services whilst having full user control over their permissions and access.
+
+ Currently, only Pixel phones meet its hardware security requirement and are supported.
+
+ Notes
+ GrapheneOS's "extended support" devices do not have full security patches (firmware updates) due to the original equipment manufacturer (OEM) discontinuing support. These devices cannot be considered completely secure.
+website: 'https://grapheneos.org/'
+privacy_policy: 'https://grapheneos.org/faq#privacy-policy'
+downloads:
+ - icon: fab fa-github
+ url: 'https://github.com/GrapheneOS'
diff --git a/_data/operating-systems/android/2_calyxos.yml b/_data/operating-systems/android/2_calyxos.yml
new file mode 100644
index 0000000000..00fb8fcff7
--- /dev/null
+++ b/_data/operating-systems/android/2_calyxos.yml
@@ -0,0 +1,25 @@
+title: CalyxOS
+type: Recommendation
+logo: /assets/img/android/calyxos.svg
+description: |
+ CalyxOS is a decent alternative to GrapheneOS.
+
+ It has some privacy features on top of AOSP, such as the Datura firewall, Signal integration in the dialer app, and a built in panic button. CalyxOS also comes with firmware updates and signed builds, so verified boot is fully supported.
+
+ To accomodate users who need Google Play Services, CalyxOS optionally includes MicroG. With MicroG, CalyxOS also bundles in the Mozilla and DejaVu location services.
+
+ Currently, CalyxOS supports Google Pixel phones and the Xiaomi Mi A2. For legacy devices, CalyxOS offers "extended support" for much longer than GrapheneOS, making it a good choice once GrapheneOS has dropped support.
+
+ Notes
+ CalyxOS's "extended support" does not have full security patches due to the original equipment manufacturer (OEM) discontinuing support, therefore they cannot be considered completely secure.
+
+ With the Xiaomi Mi A2, CalyxOS does not distribute the the latest firmware. Newer versions of the firmware prevented the device from performing verified boot.
+
+ The Daruta firewall can leak in some circumstances (see #572 and #581).
+website: 'https://calyxos.org'
+privacy_policy: 'https://calyxinstitute.org/legal/privacy-policy'
+downloads:
+ - icon: fab fa-github
+ url: 'https://github.com/CalyxOS'
+ - icon: fab fa-gitlab
+ url: 'https://gitlab.com/calyxos'
diff --git a/_data/operating-systems/android/3_divestos.yml b/_data/operating-systems/android/3_divestos.yml
new file mode 100644
index 0000000000..d6c386591d
--- /dev/null
+++ b/_data/operating-systems/android/3_divestos.yml
@@ -0,0 +1,29 @@
+title: DivestOS
+type: Recommendation
+logo: /assets/img/android/divestos.svg
+description: |
+ DivestOS is a soft-fork of LineageOS.
+
+ DivestOS inherits many supported devices from LineageOS. It has signed builds, making it possible to have verified boot on some non-Pixel devices.
+
+ DivestOS has automated kernel vulnerability (CVE) patching, fewer proprietary blobs, a custom hosts file, along with bundled F-Droid as the app store. It also includes UnifedNlp for network location and some hardening with Mulch Webview. DivestOS also includes kernel patches from GrapheneOS and enabling security features in defconfig.
+
+ DivestOS also inherits LineageOS's iptables network access feature. You can deny network access to an individual application by pressing and holding on the app's icon. (App info → Data and Network → Uncheck "Network Access").
+
+ DivestOS 16.0 and 17.1 has GrapheneOS's hardened memory allocator. There are plans to port this to DivestOS 18.1.
+
+ Notes
+ DivestOS firmware update status varies across the devices it supports. For Pixel phones, we still recommend using GrapheneOS or CalyxOS. For other supported devices, DivestOS is a good alternative.
+
+ Like CalyxOS's firewall, the network access toggle can also leak in some situations.
+
+ Not all of the supported devices have verified boot and some perform it better than others.
+
+website: 'https://divestos.org'
+website_tor: 'http://divestoseb5nncsydt7zzf5hrfg44md4bxqjs5ifcv4t7gt7u6ohjyyd.onion'
+privacy_policy: 'https://divestos.org/index.php?page=privacy_policy'
+downloads:
+ - icon: fab fa-github
+ url: 'https://github.com/divested-mobile'
+ - icon: fab fa-gitlab
+ url: 'https://gitlab.com/divested-mobile'
diff --git a/_data/software/browsers-desktop/1_firefox.yml b/_data/software/browsers-desktop/1_firefox.yml
index 05a21c6a58..717e54283b 100644
--- a/_data/software/browsers-desktop/1_firefox.yml
+++ b/_data/software/browsers-desktop/1_firefox.yml
@@ -28,16 +28,16 @@ description: |
Arkenfox (advanced)
The Arkenfox project provides a set of carefully considered options for Firefox. These options are quite strict but a few are subjective and can sometimes cause a website to not work properly. You can easily change these settings to suit your needs. We strongly recommend reading through the basics section. Arkenfox also enables container support.
-website: 'https://firefox.com/'
-privacy_policy: 'https://www.mozilla.org/privacy/firefox/'
+website: 'https://firefox.com'
+privacy_policy: 'https://www.mozilla.org/privacy/firefox'
downloads:
- icon: fab fa-windows
- url: 'https://www.mozilla.org/firefox/windows/'
+ url: 'https://www.mozilla.org/firefox/windows'
- icon: fab fa-apple
- url: 'https://www.mozilla.org/firefox/mac/'
+ url: 'https://www.mozilla.org/firefox/mac'
- icon: fab fa-linux
- url: 'https://www.mozilla.org/firefox/linux/'
+ url: 'https://www.mozilla.org/firefox/linux'
- icon: fab fa-freebsd
url: 'https://www.freshports.org/www/firefox'
- icon: fab fa-git
- url: 'https://hg.mozilla.org/mozilla-central/'
+ url: 'https://hg.mozilla.org/mozilla-central'
diff --git a/_data/software/browsers-mobile/1_bromite.yml b/_data/software/browsers-mobile/1_bromite.yml
index 1366ad6e24..c1c27504c8 100644
--- a/_data/software/browsers-mobile/1_bromite.yml
+++ b/_data/software/browsers-mobile/1_bromite.yml
@@ -18,7 +18,7 @@ description: |
Select: Open external links in incognito.
-website: 'https://www.bromite.org/'
+website: 'https://www.bromite.org'
privacy_policy: 'https://www.bromite.org/privacy'
downloads:
- icon: fab fa-android
diff --git a/_data/software/browsers-mobile/3_firefox.yml b/_data/software/browsers-mobile/3_firefox.yml
index 6cb9052d26..9bc51bd85f 100644
--- a/_data/software/browsers-mobile/3_firefox.yml
+++ b/_data/software/browsers-mobile/3_firefox.yml
@@ -12,8 +12,8 @@ description: |
Sanitizing on close
Firefox iOS does not have have an option to clear cache on quit so you must do it manually. ( ≡ → ⚙️ Settings → Data Management).
-website: 'https://firefox.com/'
-privacy_policy: 'https://www.mozilla.org/privacy/firefox/'
+website: 'https://firefox.com'
+privacy_policy: 'https://www.mozilla.org/privacy/firefox'
downloads:
- icon: fab fa-app-store-ios
url: 'https://apps.apple.com/app/id989804926'
diff --git a/_data/software/browsers-mobile/4_firefox_focus.yml b/_data/software/browsers-mobile/4_firefox_focus.yml
index c7fd1abc8c..b316e66c1d 100644
--- a/_data/software/browsers-mobile/4_firefox_focus.yml
+++ b/_data/software/browsers-mobile/4_firefox_focus.yml
@@ -12,8 +12,8 @@ description: |
Notes
Focus only lets you open one tab at a time.
-website: 'https://firefox.com/'
-privacy_policy: 'https://www.mozilla.org/privacy/firefox/'
+website: 'https://firefox.com'
+privacy_policy: 'https://www.mozilla.org/privacy/firefox'
downloads:
- icon: fab fa-app-store-ios
url: 'https://apps.apple.com/app/id1055677337'
diff --git a/_includes/legacy/sections/android-addons.html b/_includes/legacy/sections/android-addons.html
deleted file mode 100644
index 2375f4d1e2..0000000000
--- a/_includes/legacy/sections/android-addons.html
+++ /dev/null
@@ -1,33 +0,0 @@
- Android Privacy Add-ons
-
-
-
-
-
-
![NetGuard](/assets/img/legacy_png/3rd-party/netguard.png)
-
-
-
Control your traffic with NetGuard
-
NetGuard provides simple and advanced methods to block certain apps from accessing the internet, without requiring root privileges. Applications and addresses can be individually allowed or denied access to your Wi-Fi and/or mobile connections, allowing you to control exactly which apps are able to phone home or not.
-
-
-
-
-
-
![Orbot](/assets/img/legacy_svg/3rd-party/orbot.svg)
-
-
-
Tor for Android with Orbot
-
Orbot is a free proxy app that empowers other apps to use the internet more securely. Orbot uses Tor to encrypt your Internet traffic and then hides it by bouncing through a series of computers around the world.
-
-
-
-
-
-See also
-
-
diff --git a/_includes/legacy/sections/android-operating-systems.html b/_includes/legacy/sections/android-operating-systems.html
deleted file mode 100644
index 5752f5fae3..0000000000
--- a/_includes/legacy/sections/android-operating-systems.html
+++ /dev/null
@@ -1,32 +0,0 @@
- Mobile Operating Systems
-
-{% include legacy/cardv2.html
- title="GrapheneOS"
- image="/assets/img/legacy_svg/3rd-party/grapheneos.svg"
- image-dark="/assets/img/legacy_svg/3rd-party/grapheneos-dark.svg"
- description='GrapheneOS is a free and open-source security and privacy-focused mobile operating system built on top of the Android Open Source Project. It expands upon android security by providing a hardened memory allocator, network and sensors permission, sandboxed Play Services support, and various other security features. Using GrapheneOS is recommended if you want the utmost security for your device. Currently, only Pixel phones are supported.'
- badges="info:AOSP"
- website="https://grapheneos.org"
- github="https://github.com/GrapheneOS"
-%}
-
-{% include legacy/cardv2.html
- title="CalyxOS"
- image="/assets/img/legacy_svg/3rd-party/calyxos.svg"
- description='CalyxOS is a custom ROM based on the Android Open Source Project, with support for Google Pixel devices and the Xiaomi Mi A2. It aims to be secure and private by default, and includes a number of good choices for default applications. Some of its features include optional MicroG support and a built-in firewall. It should be noted that CalyxOS lacks a lot of the security hardening that GrapheneOS has, such as a hardened memory allocator, hardened webview, more secure spawning system, and so on.'
- badges="info:AOSP"
- website="https://calyxos.org"
- gitlab="https://gitlab.com/calyxos"
-%}
-
-{% include legacy/cardv2.html
- title="DivestOS"
- image="/assets/img/legacy_svg/3rd-party/divestos.svg"
- description='DivestOS is a soft-fork of LineageOS with signed builds, automated kernel vulnerability (CVE) patching, fewer proprietary blobs, along with bundled F-Droid and UnifedNlp. Not all of its supported devices support verified boot, and DivestOS does not handle firmware updates well currently. For Pixel devices, we still recommend using GrapheneOS or CalyxOS. For other supported devices, DivestOS is a good option.'
- badges="info:AOSP"
- website="https://divestos.org"
- tor="http://divestoseb5nncsydt7zzf5hrfg44md4bxqjs5ifcv4t7gt7u6ohjyyd.onion"
- privacy-policy="https://divestos.org/index.php?page=privacy_policy"
- github="https://github.com/divested-mobile"
- gitlab="https://gitlab.com/divested-mobile"
-%}
diff --git a/_includes/legacy/sections/ios-addons.html b/_includes/legacy/sections/ios-addons.html
index bda3a544ec..413616c9e5 100644
--- a/_includes/legacy/sections/ios-addons.html
+++ b/_includes/legacy/sections/ios-addons.html
@@ -23,11 +23,3 @@ Block content in Safari with Our DNS client recommendations, which have information on enabling encrypted DNS on iOS.
-
-
diff --git a/_layouts/default.html b/_layouts/default.html
index e8cd65aaf3..518e88c55f 100644
--- a/_layouts/default.html
+++ b/_layouts/default.html
@@ -11,5 +11,6 @@
+ {% if page.mathjax %}{% endif %}