Arg's blog

Android

Il s'agit davantage d'une check-list (orienté sécurité) que d'un guide complet : à adapter en fonction de votre “modèle de menace” spécifique. Les lecteur·ices sont encouragé·es à consulter également le guide GrapheneOS for Anarchists, le guide d'utilisation et la faq officielles de GrapheneOS.

Quel appareil choisir ?

Les dernier leaks de la doc Cellebrite (Février 2025) révèlent que les téléphones Pixel (à partir de la version 6) résistent toujours très bien à l'extraction des données, et sont les seuls téléphones android à avoir ce niveau de résistance. Le Google Pixel 6a est le moins chèr, le Pixel 8a a sans doute le meilleur rapport qualité prix (en considérant le temps de support restant). Si vous pensez être activement ciblé, choisissez un Pixel 8 ou un modèle ultérieur (ou mieux : pas de téléphone du tout).

Dans tous les cas, utilisez un appareil qui est encore activement pris en charge.

Vous pouvez aussi vouloir un téléphone qui n'est pas lié à votre identité : acheté en espèces ou par l'intermédiaire d'un service communautaire qui achète des téléphones pour un grand nombre de personnes et les distribue sans conserver les traces des transactions.

Où faire l'installation ?

Pour que votre téléphone ne soit pas lié à votre identité personnelle, n'allumez pas le téléphone chez vous tant que vous n'avez pas terminé ce guide, puis gardez votre téléphone en Mode Avion lorsque vous êtes près de chez vous (et même, idéalement, en permanence). Choisissez un lieu public avec un wifi public, apportez un ordinateur portable ou un autre téléphone Android de confiance avec accès à un navigateur basé sur Chromium pour exécuter l'installateur web, et KeePass{XC,DX} pour générer vos mots de passe.

Installation

Suivez les instructions du Web installer. Vérifier le hash du système d'exploitation sur le premier écran de démarrage : – Pixel 9a : 0508de44ee00bfb49ece32c418af1896391abde0f05b64f41bc9a2dfb589445b – Pixel 9 Pro Fold : af4d2c6e62be0fec54f0271b9776ff061dd8392d9f51cf6ab1551d346679e24c – Pixel 9 Pro XL : 55d3c2323db91bb91f20d38d015e85112d038f6b6b5738fe352c1a80dba57023 – Pixel 9 Pro : f729cab861da1b83fdfab402fc9480758f2ae78ee0b61c1f2137dd1ab7076e86 – Pixel 9 : 9e6a8f3e0d761a780179f93acd5721ba1ab7c8c537c7761073c0a754b0e932de – Pixel 8a : 096b8bd6d44527a24ac1564b308839f67e78202185cbff9cfdcb10e63250bc5e – Pixel 8 Pro : 896db2d09d84e1d6bb747002b8a114950b946e5825772a9d48ba7eb01d118c1c – Pixel 8 : cd7479653aa88208f9f03034810ef9b7b0af8a9d41e2000e458ac403a2acb233 – Poids en pixels : ee0c9dfef6f55a878538b0dbf7e78e3bc3f1a13c8c44839b095fe26dd5fe2842 – Tablette Pixel : 94df136e6c6aa08dc26580af46f36419b5f9baf46039db076f5295b91aaff230 – Pixel 7a : 508d75dea10c5cbc3e7632260fc0b59f6055a8a49dd84e693b6d8899edbb01e4 – Pixel 7 Pro : bc1c0dd95664604382bb888412026422742eb3371ea0b2d19036217d49182f – Pixel 7 : 3efe5392be3ac38afb894d13de639e521675e62571a8a9b3ef9fc8c44fd17fa1 – Pixel 6a : 08c860350a9600692d10c8512f7b8e80707757468e8fbfeea2a870c0a83d6031 – Pixel 6 Pro : 439b76524d94c40652ce1bf0d8243773c634d2f99ba3160d8d02aa5e29ff925c – Pixel 6 : f0a890375d1405e62ebfd87e8d3f475f948ef031bbf9ddd516d5f600a23677e8

Configuration l'assistant de démarrage

Langue

Si vous envisagez d'utiliser un VPN (tor) et que vous êtes à l'aise avec l'anglais, l'utilisation de la langue par défaut (English (United States)) vous donnera un peu plus d'anonymat (plus grand nombre d'utilisateurs).

Se connecter au Wi-Fi

Pas encore. Nous allons d’abord générer l'empreinte initiale du firmware/OS à l'aide de l'application Auditor avant d'établir toute connexion réseau : vous aurez besoin d'un autre téléphone Android (idéalement celui d'un·e camarade que vous voyez de temps en temps) pour cela.

Date et heure

Il vous suffit de sélectionner votre fuseau horaire ici.

Services de localisation

Décochez la case Allow apps that have asked your permission to use your location information. Cette option peut être activée ultérieurement à l'aide d'une bascule rapide.

Définissez un code

En théorie, si vous faites confiance à la protection de la puce de sécurité Titan M2 contre les attaques par force brute, un code PIN aléatoire de 8 chiffres est suffisant. Pour plus de sécurité (par exemple, si vous voulez être sûr que le contenu de votre téléphone ne pourra jamais être décrypté au cours de votre vie), appuyez sur Options de verrouillage de l'écran pour choisir un Mot de passe de 18 caractères aléatoires ou de 7 mots aléatoires (ou plus), c'est-à-dire suffisamment de bits d'entropie pour durer toute une vie. Conseil : Il peut être difficile de se souvenir de sept mots aléatoires au début. Commencez donc par quatre mots et modifiez régulièrement votre phrase de passe pour ajouter un nouveau mot aléatoire jusqu'à ce que vous atteigniez sept ou huit mots.

Configurez votre empreinte

On fera ça Plus tard (pour activer en même temps le deuxième facteur d'authentification via PIN).

Restore apps & data

Skip. Cette opération peut être effectuée ultérieurement si nécessaire.

Configuration de l'application Auditor

Cette app permet d'effectuer régulièrement une vérification matérielle pour s'assurer que le micrologiciel et le système d'exploitation du téléphone n'ont pas été altérés. Suivez la section correspondante du guide GrapheneOS pour les anarchistes – sauf que vous n'avez pas besoin d'une connexion Internet pour enregistrer la vérification à distance.

Seul le profil du propriétaire a besoin d'être configuré via Auditor.

Revue et sécurisation de la configuration de GrapheneOS

Seuls les paramètres qui doivent être modifiés par rapport aux valeurs par défaut (en date d'avril 2025) sont mentionnés ici. La revue des paramètre est à faire pour chaque profil utilisateur. Certains paramètres ne sont modifiable que via le profil Propriétaire car ils s'appliquent à tout le système.

Commençons par activer le Mode avion. À ce propos n'hésitez pas à modifier de menu d'accès rapide pour rendre les toggles Mode avion, Accès au micro, Accès caméra et Localisation directement accessible via les deux première lignes visibles en un seul swipe.

Réseau et internet

Internet > Préférences réseau

Décochez Autoriser les réseaux WEP. Les borne wifi en WEP ne devraient plus exister de nos jours, mais si c'est le cas, il vaut mieux être conscient que quelque chose ne va pas.

Cartes SIM

uniquement si vous disposez d'une carte SIM :

Désactivez l'option Autoriser la 2G en bas de l'écran. Cela devrait rendre plus difficiles les attaques de downgrade des IMSI-catchers. Pour aller plus loin, réglez Type de réseau préféré sur 5G or 4G uniquement.

Une fois cela fait, vous pouvez ré-activer le Mode avion.

Notes sur les cartes SIM : – Les appels Wi-Fi n'utilisent pas le VPN de votre session utilisateur, ce qui révèle votre adresse IP à votre opérateur. – À moins qu'une carte SIM ne soit désactivée, les applications peuvent voir le code de pays de votre carte SIM, et ce même si le Mode avion est activé, et l'utiliser pour participer à l'identification de l'utilisateur·ice.

Économiseur de données

L'activation de l'option Utiliser l'Économiseur de données peut s'avérer utile pour économiser quelques MBytes sur un plan de données bon marché, ou simplement pour réduire l'utilisation de la batterie. Cependant, si vous utilisez l'emplacement VPN, cela n'empêchera pas la connexion des applications qui passent par le VPN. Utilisez plutôt la fonction pare-feu de l'application VPN (disponible par exemple dans Invizible Pro ou RethinkDNS) dans ce cas.

DNS privé

si vous prévoyez d'utiliser l'emplacement VPN (pour un fournisseur VPN ou TOR), n'utilisez pas la fonction DNS privé car elle aurait la priorité sur le DNS intégré à votre application VPN, que vous devriez probablement utiliser pour éviter de vous démarquer parmi les utilisateurs de ce VPN ou de Tor.

Si vous n'avez pas l'intention d'utiliser un VPN, vous devez choisir un résolveur DNS respectueux de la vie privée comme quad9 ou dns0.eu.

Appareils connectés > Préférences de connexion

NFC

Activer temporairement Utiliser le NFC, puis activer Exiger le déverrouillage de l'appareil pour le NFC, puis désactiver Utiliser le NFC.

Impression > Service d'impression par défaut

À moins que vous ne prévoyiez de l'utiliser, désactivez Utiliser le service d'impression pour réduire la surface d'attaque.

Notifications > Notification sur l'écran de verrouillage

Si vous ne voulez pas que quelqu'un qui a mis la main sur votre téléphone (verrouillé) sache quelle application vous utilisez pour communiquer (par exemple Signal) : réglez ce paramètre sur N'afficher aucune notification.

Batterie

Pas une configuration lié à la sécurité, mais vous pouvez activer la fonction Optimisation de la recharge pour limiter la charge de la batterie à 80 % afin d'augmenter la durée de vie de la batterie. Vous pouvez également activer la fonction Économiseur batterie.

Système

Sauvegarde

L'application de sauvegarde (Seedvault peut sauvegarder les données de certaines applications (celles qui implémentent l'API requise), les APK et des dossiers de l'utilisateur·ice (par exemple, Documents). Il s'agit d'une application par utilisateur·ice, qui doit donc être exécutée pour chaque profil pour lequel vous avez besoin d'une sauvegarde. L'option la plus sûre consiste à effectuer une sauvegarde sur une clé USB (vous pouvez utiliser la même clé USB pour plusieurs utilisateurs/appareils) qui peut être cachée dans un endroit sûr (et en faire une copie de temps en temps, stockée dans un autre endroit).

Mises à jour du système

Pour plus de sécurité, mais au risque de manquer certaines notifications, activez l'option Automatic reboot, sauf si vous prévoyez d'utiliser un profil secondaire et de vous fier à ses réveils : ceux-ci ne sonneront pas après un redémarrage tant que votre profil secondaire n'aura pas été déverrouillé. Les réveils du profil du propriétaire fonctionnent grâce à la fonction Direct-Boot, mais même dans ce cas, il vaut mieux ne pas compter sur la fonction “Snooze”, car elle risque de ne pas fonctionner.

Pour économiser sur un petit plan de données, vous pouvez régler Permitted networks sur Unmetered.

Utilisateurs

Les profils Utilisateurs et Espace privé (profil Propriétaire uniquement pour l'instant) peuvent être utilisés pour séparer les applications en profils isolés (presque comme s'il s'agissait de téléphones différents) en fonction de leurs (non) respect de la vie privée et/ou pour isoler vos activités professionnelles/personnelles/militantes. En particulier pour atténuer un problème majeur d'android, à savoir que de nombreuses applications peuvent voir quelles applications sont actives dans le même profil.

Si vous souhaitez uniquement isoler le Play Store et certaines applications installées à partir de celui-ci (par exemple les applications bancaires), vous pouvez utiliser la fonctionnalité Espace privé de GrapheneOS dans Sécurité et confidentialité. Gardez à l'esprit que les applications dans l'Espace privé ne peuvent pas recevoir de notifications lorsque l'espace privé est verrouillé, et que leurs données ne peuvent pas être sauvegardées à l'aide de l'application Seedvault.

Pour ces raisons, il est souvent préférable d'utiliser un profil utilisateur à part entière, eg. un profil secondaire Défaut, comme le recommande le guide AnarSec. L'un des principaux avantages est que vous pouvez fermer la session secondaire, qui revient alors à l'état Before First Unlock (Avant le premier déverrouillage), tout en vous permettant d'utiliser votre téléphone via le profil Propriétaire. Ce dernier étant principalement utiliser pour l'installation et la mise à jour des application (une mise à jour d'app est effective pour tout les profils utilisateurs en même temps).

Le guide AnarSec recommande un mot de passe différent pour le profil secondaire, mais l'utilisation du même mot de passe fort que pour le profil propriétaire n'est pas un grand risque pour la sécurité, surtout si vous utilisez le déverrouillage par empreinte digitale + 2FA-PIN après le premier déverrouillage du profil.

Sécurité et confidentialité

Déverrouillage de l'appareil

Configuration du Verrouillage de l'écran

Activez la fonction Scramble PIN input layout pour qu'une caméra cachée ou un observateur ait plus de mal à deviner votre code PIN.

Empreinte digitale

L'utilisation du déverrouillage par empreinte digitale protège contre les attaques de type “shoulder surfing” visant votre code PIN. Mais un adversaire pourrait vous forcer à déverrouiller votre téléphone avec votre doigt (vous pouvez toujours essayer d'utiliser un doigt non enregistré), c'est pourquoi le guide AnarSec le déconseille. Mais il est maintenant possible de créer un Second factor PIN, qui atténue le problème ; 6 chiffres devraient suffire.

Duress password

Il s'agit d'un code PIN qui déclenche l'effacement des clés de décryptage de tous les profils et le redémarrage du téléphone. Ce code peut être est saisi à n'importe quel un endroit où un code PIN ou mot de passe de session est demandé (quelque soit l'utilisateur en cours).

La question d'utiliser un mot de passe ou PIN duress est délicate et dépend des implications pratiques et juridiques. Le fait de ne pas donner son code PIN peut avoir moins de conséquences juridiques que le fait d'être accusé de destruction de preuves. Un compromis consisterait à utiliser un code PIN et un mot de passe que l'adversaire pourrait essayer, sans que vous ayez à le donner (mais je ne suis pas juriste, donc je ne sais pas vraiment), par exemple en utilisant votre date de naissance ou 1312/acab.

Si vous créez un mot de passe/NIP de contrainte, veillez à ce que vos sauvegardes soient à jour.

Exploit Protection

Auto reboot (Redémarrage automatique)

Il s'agit d'une fonctionnalité majeure de sécurité de GrapheneOS qui redémarre l'appareil (le ramène à l'état Before First Unlock) si il n'est pas déverrouillé pendant un certain laps de temps (18 heures par défaut). Des délais plus courts améliorent la sécurité : n'hésitez pas à raccourcir temporairement ce délai lorsque vous en avez besoin (eg. avant une manif, si vous devez prendre votre téléphone). 12 heures est probablement une bonne valeur pour la plupart des cas d'usage.

Turn off Wi-Fi automatically (Désactiver automatiquement le Wi-Fi)

Le configurer à quelque chose comme 5 minutes, pour réduire l'utilisation de la batterie (et très légèrement la surface d'attaque : très peu probable d'être un vecteur d'attaque cependant.

Turn off Bluetooth automatically (Désactiver automatiquement le Bluetooth)

Idem que ci-dessus.

Native code debugging

Activez l'option Block for third-party apps by default pour améliorer le sandboxing.

WebView JIT

Activez l'option Disable for third-party apps by default pour réduire la surface d'attaque.

Dynamic code loading via memory

Activez l'option Restrict for third-party apps by default pour les mêmes raisons que ci-dessus.

Dynamic code loading via storage

Même chose que ci-dessus (comme indiqué, vous devrez peut-être l'activer manuellement pour certaines applications qui dépendent du service Play).

Sécurité et confidentialité renforcée

Désactiver la permission Allow Sensors permission to apps by default. Vous pourrez la donner manuellement pour les applications qui en ont réellement besoin (par exemple, pour la rotation automatique).

Comment installer des applications ?

La recommandation habituelle pour l'installation d'une application tierce est d'essayer dans l'ordre :

  1. Lorsqu'une application web est disponible et que vous n'avez pas besoin des fonctionnalités de l'application native (par exemple, les notifications) : utilisez la webapp. Dans Vanadium, appuyez sur Ajouter à l'écran d'accueil.
  2. Accrescent, un app store sécurisé et open-source qui peut être installé à partir de l'App Store intégré à GrapheneOS.
  3. Google Play Store (également installé à partir du App Store intégré)
  4. L'APK publié sur la forge du projet en utilisant Obtainium et App verifier (ce dernier étant installé à partir de d'Accrescent et est utilisé pour vérifier l'APK d'Obtainium).
  5. The project own f-droid repo (eg. repos of The Guardian Project, SimpleX, Briar, FUTO).
  6. IzzyOnDroid f-droid repo.
  7. Repo officiel de F-Droid.

Cet ordre a été choisi en fonction des pratiques de sécurité impliquées et pour minimiser à la fois le délai de mise à jour et le nombre de tiers à qui faire confiance.

Le repo F-droid en particulier devrait être évité pour des raisons de sécurité en raison, entre autres, de leur processus de mise à jour (lent) et de leur environnement de construction (souvent obsolète).

Pour les applications uniquement disponibles dans un dépôt f-droid (tiers ou officiel), utilisez Obtainium ou F-droid Basic.

En ce qui concerne le Play Store, vous devriez pouvoir vous y inscrire, sans donner de numéro de téléphone (si vous ne passez pas par un VPN), avec une [adresse YopMail] dédiée (https://yopmail.com) par exemple.

Une fois Obtainium installé, supprimez la capacité d'installation Allow from this source de l'app Fichiers ou de Vanadium qui a été accordée pour installer l'APK.

Si une application n'est pas installée via un store sécurisé (Accrescent ou Play Store), pensez à valider sa signature avec AppVerifier. Si la signature n'est pas dans la base interne de AppVerifier, demander à un·e camarade ayant déjà installé l'app de vous fournir la signature (issue de son AppVerifier) via un canal sécurisé.

Applications recommandées

VPN / Tor

Un bon VPN (ie. Mullvad / IVPN) est probablement suffisant pour la plupart des activités. Vous pouvez utiliser le navigateur Tor pour Android en cas de besoin, mais le navigateur Tor sur ordinateur / Tails fournira probablement un meilleur anonymat (plus grand nombre d'utilisateurs).

Néanmoins, si vous ne voulez pas payer pour un VPN, l'utilisation d'un VPN basé sur TOR, Orbot ou Invizible Pro, est viable, d'autant plus qu'il est souvent plus rapide que le VPN gratuit RiseUp. Si vous avez choisi d'utiliser le profil propriétaire uniquement pour installer/mettre à jour des applications, utilisez un VPN (si votre routeur domestique n'en dispose pas) plutôt que TOR, qui peut souvent se déconnecter lorsqu'il n'est pas utilisé pendant une longue période (et donc vous risquez de manquer des mises à jour). RiseUp VPN convient parfaitement à cet usage.

Signature Invizible Pro Beta (la version beta n'a pas de popup “demander un don”) (pour AppVerifier) :

pan.alexander.tordnscrypt
1E:A0:9E:90:62:28:59:84:FF:E8:96:56:05:ED:AB:8B:01:ED:19:DF:A0:19:C3:14:84:A3:38:2A:CC:C1:9A:CE

Invizible dispose d'une option personnalisée “DNS Crypt” que vous pouvez utiliser pour éviter le chargement des publicités, mais c'est au prix de se démarquer un peu parmi la plupart des utilisateurs de TOR qui s'appuient sur le nœud de sortie pour la résolution de noms.

Si vous souhaitez superposer Invizible à, par exemple, Mulllvad VPN, vous pouvez vous connecter à Mullvad via Shadowsocks en mode proxy : – https://mullvad.net/en/help/shadowsocks-androidhttps://invizible.net/en/tor-over-vpn/ Cependant TOR sur VPN n'est généralement pas un gain de sécurité (voir les liens à la fin pour la documentation InviZible ci-dessus), sauf si vous souhaitez utilisez Shadowsocks pour contourner facilement la plupart des pare-feu wifi publics et/ou si vous ne voulez pas être identifié par le réseau/ISP comme un utilisateur de TOR et/ou si vous voulez que certaines applications soient acheminées par votre VPN uniquement et non par TOR.

Voici la signature de Shadowsock-android pour AppVerifier :

com.github.shadowsocks
92:41:6E:A4:16:64:22:61:3D:3D:1D:58:5A:C1:C7:0F:03:83:40:70:77:13:46:36:B4:CF:B2:F0:BD:8E:01:F0

(utilisez -tv- pour le filtre APK inversé dans Obtainium).

Email

Soit FairEmail, soit Thunderbird-Android (plus simple, moins configurable, moins de fonctionnalités anti-tracking, mais peut importer tous vos comptes depuis Thunderbird facilement), avec OpenKeychain pour le support GPG.

Messagerie instantanée

Les suspects habituels : Signal (ou mieux : Molly, installé via Accrescent), SimpleX, Cwch et Briar.

Atténuation du risque de vol de téléphone déverrouillé

Vous pouvez activer la fonction Google Play Verrouillage en cas de détection de vol dans Google Settings > Protection contre le vol mais les conditions qui activent le verrouillage sont assez particulières. Vous pouvez donc également installer Private Lock. L'application est assez ancienne, mais elle fonctionne. La sensibilité réglée sur 30 semble utilisable.

Gestionnaire de mots de passe

KeepassDX est une bonne solution. Peut être synchronisé avec votre PC avec syncthing si nécessaire.

Diverses autres applications

  • Clavier : HeliBoard
  • Navigation web : IronFox (pour les sites web qui ne nécessitent pas de connexion, ou du moins qui n'encourent pas de risque financier ou de réputation en cas de piratage, car le sandboxing d'IronFox (Firefox) est nettement moins sécurisé que celui de Vanadium. Mais il bloque mieux les traqueurs et les publicités.
  • Sites web sensibles : Tor browser
  • Agenda : Etar, ICSx5 (calendrier ical public), DAVx5 (caldav privé)
  • Lecture de documents/epub : LxReader, OpenLib
  • Application météo : Breezy Weather
  • GPS : OrganicMap (trekking), OSMAnd+ (power users), Magic Earth (pour les horaires de bus).

#GrapheneOS #Cellebrite #OpSec #Android

This is more of a check-list that a comprehensive guide. Every items might not apply to your specific “threat model”. Readers are encouraged to also check-out the GrapheneOS for Anarchists guide and GrapheneOS official usage guide and faq.

Which device to chose?

Pixel phone (from version 6 onward) are known to resist very well to Celebrite data extraction, as of February 2025. A Google Pixel 6a would be the cheapest option. Don't use any earlier device. If you think you might be actively targeted, chose a Pixel 8 or later model (or better: no phone at all).

In any case, use a device that is still actively supported.

Also you might want a phone that is not linked to your identity: bought with cash or through a community service that buy phones for many people and distribute them without keeping transaction traces.

Where to do the install?

To keep your phone unlinked from your personal identity, do not switch on the phone in your home until you have finished the guide: you might want to keep your phone on Aireplane mode at least whenever you are near your home (ideally always). So chose a public place in a city center with a public wifi, bring a trusted laptop or android phone with access to a Chromium-based browser to run the web installer, and KeePass{XC,DX} to generate your passwords.

Install

Follow Web installer instructions. Check OS hash on first boot screen: – Pixel 9a: 0508de44ee00bfb49ece32c418af1896391abde0f05b64f41bc9a2dfb589445b – Pixel 9 Pro Fold: af4d2c6e62be0fec54f0271b9776ff061dd8392d9f51cf6ab1551d346679e24c – Pixel 9 Pro XL: 55d3c2323db91bb91f20d38d015e85112d038f6b6b5738fe352c1a80dba57023 – Pixel 9 Pro: f729cab861da1b83fdfab402fc9480758f2ae78ee0b61c1f2137dd1ab7076e86 – Pixel 9: 9e6a8f3e0d761a780179f93acd5721ba1ab7c8c537c7761073c0a754b0e932de – Pixel 8a: 096b8bd6d44527a24ac1564b308839f67e78202185cbff9cfdcb10e63250bc5e – Pixel 8 Pro: 896db2d09d84e1d6bb747002b8a114950b946e5825772a9d48ba7eb01d118c1c – Pixel 8: cd7479653aa88208f9f03034810ef9b7b0af8a9d41e2000e458ac403a2acb233 – Pixel Fold: ee0c9dfef6f55a878538b0dbf7e78e3bc3f1a13c8c44839b095fe26dd5fe2842 – Pixel Tablet: 94df136e6c6aa08dc26580af46f36419b5f9baf46039db076f5295b91aaff230 – Pixel 7a: 508d75dea10c5cbc3e7632260fc0b59f6055a8a49dd84e693b6d8899edbb01e4 – Pixel 7 Pro: bc1c0dd95664604382bb888412026422742eb333071ea0b2d19036217d49182f – Pixel 7: 3efe5392be3ac38afb894d13de639e521675e62571a8a9b3ef9fc8c44fd17fa1 – Pixel 6a: 08c860350a9600692d10c8512f7b8e80707757468e8fbfeea2a870c0a83d6031 – Pixel 6 Pro: 439b76524d94c40652ce1bf0d8243773c634d2f99ba3160d8d02aa5e29ff925c – Pixel 6: f0a890375d1405e62ebfd87e8d3f475f948ef031bbf9ddd516d5f600a23677e8

Initial wizard configuration

Language

If you are planning to use a (tor) VPN and are somewhat comfortable with English then using default language (English (United States)) will give you a bit more anonymity (larger user pool).

Connect to Wi-Fi

Don't yet. We want to register initial fingerprint of the firmware/OS using the Auditor app before making any network connection: you will need an another android phone (ideally on of a comrade you see from time to time) for this.

So tap Set up without Wi-fi.

Date and time

Just select your time zone here.

Location services

Uncheck Allow apps that have asked your permission to use your location information. This can be enabled later via a quick toggle.

Set a PIN

Theoretically, if you trust the Titan M2 protection against brute force attacks, a random 8 digits PIN is good enough. For additional safety (eg. if you need to be sure the content of your phone cannot ever be decrypted in your life time), tap Screen lock options to chose a Password of 18 random characters or 7 random words (or more), ie. enough entropy bits to last a life-time. Tip: Remembering 7 random words can be tough at first, so maybe try to start with four and modify your passphrase regularly to add a new random word until you reach 7 or 8 words.

Fingerprint unlock

Skip for now (to enable only with 2FA PIN).

Restore apps & data

Skip. This can be done later if needed.

Auditor app setup

The auditor app allows to perform hardware-based verification that the phone firmware and OS have not been tampered with. Follow related section of the GrapheneOS for Anarchists guide – except you don't actually need internet connectivity to register remote verification.

Only owner profile needs to setup Auditoring.

Settings hardening

Let's start by toggling on Aireplane mode.

Only settings which are to be modified from default values (as of April 2025) are mentioned here.

Network & internet

Internet > Network preferences

Uncheck Allow WEP networks. WEP wifi AP should not exist nowadays so if one does, better be aware that something is wrong.

SIMs

if you have a SIM card:

Toggle off Allow 2G at the bottom of the screen. This should make downgrade attacks of IMSI-catchers more difficult. To go one step further, set Preferred network type to 5G or 4G only.

Once done, you can activate Airplane mode.

Notes on SIM cards:Wi-FI calling do not use the VPN slot of your user session, so it will reveals your current IP address to your carrier. – Unless a SIM card is Turned off, apps can see the country code of your SIM card, even if Airplane mode is on, and use it to fingerprint you.

Data Saver

Toggling on Use Data Saver can be useful to save some MBytes on a cheap data plan, or just to reduce battery usage. Though if you use the VPN slot this won't stop connection from apps that go through the VPN. Use the VPN app firewall feature instead (available in eg. Invizible Pro or RethinkDNS).

Private DNS

if you plan to use the VPN slot (for a VPN provider or TOR) do not use the Private DNS feature because it would take precedence over your VPN app built-in DNS, which you should probably use to avoid sticking-out among the VPN user pool.

If you don't plan to use a VPN then you chose a privacy-respecting DNS resolver like quad9 or dns0.eu.

Connected devices > Connection preference

NFC

Temporarily enable Use NFC, then toggle on Require device unlock for NFC, then revert back off Use NFC.

Printing > Default Print Service

Unless you plan to use it, toggle off Use print service for attack surface reduction.

Notifications > Notification on lock screen

If you don't want someone that got their hands on your (locked) phone to know which app you use for communication (eg. Signal): set this setting to Don't show any notification.

Battery

Not privacy related, but you might want to switch on Charging optimization to limit battery charging to 80% for longer battery life. Maybe also enable the Battery Saver feature.

System

Backup

The Backup app (Seedvault can backup some app data (the ones that implement the required API), APKs and user folders (eg. Documents). It is per user, so the app need to be run for every user profiles for which you need a backup. Safer option is to backup on a USB key (you can use the same USB key for multiple user/devices) that can be hidden in a safe place (and make copy of it from time-to-time, stored in another location).

System updates

For added security at the price of maybe missing some notifications, enable Automatic reboot, unless you plan to use a secondary profile and rely on its alarm-clocks: those won't ring after a reboot until your secondary profile is unlocked. Alarm-clocks of owner profile get to work thanks to the Direct-Boot feature, but even then, better to don't rely on snoozing as it might not work.

To save on a small data plan, you might want to set Permitted networks to Unmetered.

Users

Users, and the Private Space (Owner profile only for now) can be used to segregate apps into isolated profiles (almost as if on different phones) depending on their privacy issues and/or to isolate your professional/personal/militant activities. In particular to mitigate a major android issue that many apps can see which apps are active in the same profile.

If you only want to isolate the Play Store and some apps installed from it (eg. Banking apps), you can use the Private space feature of GrapheneOS under Security & privacy. Keep in mind that apps in Private space cannot receive notifications when the private space is locked, nor their data be backup-ed using the Seedvault app.

For those reasons full fledged user profiles might be preferable, in particular, a Default secondary profile, as recommended by the AnarSec guide. One major advantage is that you can close the secondary session, it then return to Before First Unlock state but you can still use your phone through the Owner profile.

The AnarSec guide recommend a different password for the secondary profile but using the same strong password as for the owner profile is not a big security risk, especially if you use Fingerprint + 2FA-PIN unlocking after first unlock of the profile.

Security & privacy

Device unlock

Screen lock config

Enable Scramble PIN input layout to make it more difficult for a hidden camera/observer to guess your PIN.

Fingerprint Unlock

Using fingerprint unlock protect against shoulder surfing attacks on your PIN. But an adversary could force you to unlock your phone with your finger (you can still try to use an unregistered finger), which is why the AnarSec guide recommend against it. But nowadays we can setup a Second factor PIN, which mitigate the issue; 6 digits should probably be enough.

Duress password

This is a PIN that would trigger the erasing of decryption keys and reboot your phone if entered anywhere a PIN is asked. This one is tricky and depends of legal implications. There might be less legal repercussion for not giving your PIN than being accused of destruction of evidence. One compromise would be to use a PIN and password that could be tried by the adversary, without you having to give it (but I'm no lawyer so I don't really know), eg. using your date of birth or 1312/acab.

If you do setup a duress password/PIN, be sure to keep your backups up-to-date.

Exploit protection

Auto reboot

This is a major security feature of GrapheneOS: it reboot (returns the device to Before First Unlock state) if the device is not unlocked for a certain amount of time (18 hours by default). Shorter time improve security: don't hesitate to temparilly shorten the time when you need it. 12 hours is probably a good default value for most people.

Turn off Wi-Fi automatically

Maybe set it to something like 5 minutes, to reduce battery usage (and very slightly the attack surface: very unlikely to be an attack vector though.

Turn off Bluetooth automatically

Same as above.

Native code debugging

Toggle on Block for third-party apps by default to improve sandboxing.

WebView JIT

Toggle on Disable for third-party apps by default to reduce attack surface.

DCL via memory

Toggle on Restrict for third-party apps by default for the same reasons as above.

DCL via storage

Same as above (as stated, you might have to enable it manually for some apps that depends on Play service).

More security & privacy

Toggle off Allow Sensors permission to apps by default. Add it back to the apps that actually need them (eg. for auto-rotate).

How to install apps?

The usual recommendation to install a third-party app is to try in order:

  1. When a (progressive) web app is available and you don't need the features (eg. notifications) of the native app: use their website/PWA. In Vanadium, tap Add to Home screen.
  2. Accrescent, a secure and open-source app store that can be installed from GrapheneOS built-in App Store.
  3. Google Play Store (also installed from the built-in App Store)
  4. APK published on project's forge using Obtainium + App verifier (the later being installed from the built-in App Store and used to check the Obtainium APK).
  5. Self-updating apps, like Wiregard or Signal.
  6. The project own f-droid repo (eg. repos of The Guardian Project, SimpleX, Briar, FUTO).
  7. IzzyOnDroid f-droid repo.
  8. Official F-Droid repo.

This order has been chosen based on security practices involved and to both minimize update delay and number of third-parties to trust.

F-droid repo in particular should be avoid for security critical due, among other issues, to their (slow) update process and (often out-dated) build environment.

For apps only available in a f-droid repos (third-party or official), either use Obtainium or F-droid Basic.

Regarding Play Store you should be able to register with it, without giving any phone number, with a dedicated YopMail address for example. Use the 4 step setup to disable personalized tracking.

Once Obtainium is installed, remove the Allow from this source install capability from Files or Vanadium that was granted to install the APK.

VPN / Tor

A good VPN (ie. Mullvad / IVPN) is probably enough for most activities. You can use Tor Browser for Android when needed but Tor browser on desktop / Tails would probably provide better anonymity (larger user pool).

Nonetheless if you don't want to pay for a VPN, using a TOR-based VPN, Orbot or Invizible Pro, is viable, especially since its often faster than the free RiseUp VPN. If you chose to use the owner profile only to install/update apps, then use a VPN (if your home router does not) rather than TOR, which may often disconnect when not in used for long period of times (and thus you may miss updates). RiseUp VPN is fine for this purpose.

Invizible Pro Beta (beta has no “ask for donation” popup) signature (for AppVerifier):

pan.alexander.tordnscrypt
1E:A0:9E:90:62:28:59:84:FF:E8:96:56:05:ED:AB:8B:01:ED:19:DF:A0:19:C3:14:84:A3:38:2A:CC:C1:9A:CE

Invizible has a custom “DNS Crypt” option which you can use to avoid loading ads, but it's at the cost of standing out a bit among most TOR users that rely on the exit node for name resolution.

If you want to stack Invizible on top of, eg., Mulllvad VPN, you can connect to Mullvad through Shadowsocks in proxy mode: – https://mullvad.net/en/help/shadowsocks-androidhttps://invizible.net/en/tor-over-vpn/ Though TOR over VPN is usually not a net gain (see links at end for the InviZible documentation above), except if you use Shadowsocks to easily bypass most public wifi firewall and/or you don't want to be identified by network/ISP as a TOR user and/or you want to some apps to be routed through your VPN only and not tor.

Here is Shadowsock-android signature for AppVerifier:

com.github.shadowsocks
92:41:6E:A4:16:64:22:61:3D:3D:1D:58:5A:C1:C7:0F:03:83:40:70:77:13:46:36:B4:CF:B2:F0:BD:8E:01:F0

(use -tv- for the inverted APK regex filter in Obtainium).

Email

Either FairEmail or Thunderbird-Android (simpler, less configurable, less anti-tracking features, but can import all your account from desktop easily), with OpenKeychain for GPG support.

Instant Messaging

The usual suspects: Signal (or better: Molly, installed from Accrescent), SimpleX, Cwch and Briar.

Mitigation against forceful take-over of unlocked phone

You can activate Google Play Theft Detection Lock in Google Settings > Theft protection but it is rather peculiar to the conditions that activate the locking. So you can also install Private Lock. The app is quite old, but working. Sensitivity set to 30 appears to be usable.

Password manager

KeepassDX is good. Can be synced with your PC with syncthing if needed.

Various other apps

  • Keyboard: HeliBoard
  • Casual browsing: IronFox (for website that don't requires login, are at least that don't incur a financial or reputational risk if you get hacked, as IronFox (Firefox) sandbox is significantly weaker than Vanadium. But it has better tracker/ads blocking.
  • Sensitive websites: tor browser
  • Agenda: Etar, ICSx5 (public ical calendar), DAVx5 (private caldav)
  • Reading: LxReader, OpenLib
  • Weather app: Breezy Weather
  • GPS: OrganicMap (trekking), OSMAnd+ (power users), Magic Earth (for the bus schedules).

#GrapheneOS #Android #Hardening #Cellebrite