Adiantum est une méthode de chiffrement conçue pour les appareils équipés d'Android 9 ou version ultérieure dont les CPU manquent AES. Si vous expédiez un modèle ARM avec des extensions de chiffrement ARMv8 ou un appareil basé sur x86 avec AES-NI, vous ne devez pas utiliser Adiantum. AES est plus rapide sur ces plates-formes.
Pour les appareils qui ne disposent pas de ces instructions de processeur AES, Adiantum assure le chiffrement votre appareil avec un impact très faible sur les performances. Pour l'analyse comparative, consultez l'article sur Adiantum. Pour la source d'analyse comparative sur votre matériel, consultez la Source Adiantum sur GitHub.
Pour activer Adiantum sur un appareil équipé d'Android 9 ou version ultérieure, vous devez : apporter des modifications au noyau et à l’espace utilisateur.
Modifications du noyau
Adiantum est compatible avec les noyaux Android courants, à partir de la version 4.9.
Si le noyau de votre appareil n'est pas encore compatible avec Adiantum, sélectionnez
les modifications ci-dessous. Si vous rencontrez des difficultés pour faire votre choix, les appareils qui utilisent le chiffrement complet du disque (FDE) peuvent exclure
le correctif fscrypt:
.
Version de noyau | Correctifs de chiffrement et fscrypt | Correctif dm-crypt |
---|---|---|
4,19 | Noyau 4.19 | Correctif dm-crypt
|
4,14 | Noyau 4.14 | Correctif dm-crypt
|
4.9 | Noyau 4.9 | Correctif dm-crypt
|
Activer Adiantum dans votre kernel
Android 11 ou version ultérieure
Si votre appareil est lancé avec Android 11 ou une version ultérieure, activez les paramètres suivants dans la configuration du noyau de votre appareil:
CONFIG_CRYPTO_ADIANTUM=y CONFIG_FS_ENCRYPTION=y CONFIG_BLK_INLINE_ENCRYPTION=y CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y CONFIG_FS_ENCRYPTION_INLINE_CRYPT=y CONFIG_DM_DEFAULT_KEY=y
Si votre appareil exécute un noyau ARM 32 bits, activez également les instructions NEON pour améliorer les performances:
CONFIG_KERNEL_MODE_NEON=y CONFIG_CRYPTO_AES_ARM=y CONFIG_CRYPTO_CHACHA20_NEON=y CONFIG_CRYPTO_NHPOLY1305_NEON=y
Android 9 et 10
Si votre appareil est équipé d'Android 9 ou 10, puis une configuration de noyau légèrement différente sont nécessaires. Activez les paramètres suivants:
CONFIG_CRYPTO_ADIANTUM=y CONFIG_DM_CRYPT=y
Si votre appareil utilise le chiffrement basé sur les fichiers, activez également:
CONFIG_F2FS_FS_ENCRYPTION=y
Enfin, si votre appareil exécute un noyau ARM 32 bits, activez les instructions NEON pour améliorer les performances:
CONFIG_KERNEL_MODE_NEON=y CONFIG_CRYPTO_AES_ARM=y CONFIG_CRYPTO_CHACHA20_NEON=y CONFIG_CRYPTO_NHPOLY1305_NEON=y
Modifications de l'espace utilisateur
Pour les appareils équipés d'Android 10 ou version ultérieure, les modifications de l'espace utilisateur Adiantum sont déjà présentes.
Pour les appareils équipés d'Android 9, sélectionnez l'icône modifications suivantes:
- cryptfs: ajouter la compatibilité avec Adiantum
- cryptfs: autoriser la définition de la taille du secteur dm-crypt
- cryptfs: arrondir la taille de l'appareil dm-crypt à la limite du secteur cryptographique
- cryptfs: améliorer la journalisation de la création d'appareils dm-crypt
- libfscrypt: ajouter la compatibilité avec Adiantum
- fs_mgr_fstab: ajouter la compatibilité avec Adiantum
Activer Adiantum sur votre appareil
Tout d'abord, assurez-vous que PRODUCT_SHIPPING_API_LEVEL
est défini sur votre appareil.
pour correspondre à la version d'Android
avec laquelle il est lancé au lancement. Par exemple, un
les appareils équipés d'Android 11 doivent avoir
PRODUCT_SHIPPING_API_LEVEL := 30
C’est important parce que certains
les paramètres de chiffrement ont des valeurs
par défaut différentes selon les versions de lancement.
Appareils avec chiffrement basé sur les fichiers
Pour activer le chiffrement Adiantum basé sur les fichiers dans la mémoire de stockage interne de votre appareil, ajoutez
l'option suivante à la dernière colonne (fs_mgr_flags ;
colonne) de la ligne correspondant à la partition userdata
dans le
Fichier fstab
:
fileencryption=adiantum
Si votre appareil est lancé avec Android 11 ou une version ultérieure,
puis activez
et le chiffrement des métadonnées. Utiliser Adiantum pour les métadonnées
le chiffrement sur la mémoire de stockage interne, les fs_mgr_flags pour
userdata
doit également contenir les options suivantes:
metadata_encryption=adiantum,keydirectory=/metadata/vold/metadata_encryption
Activez ensuite le chiffrement Adiantum sur le stockage adoptable. Pour ce faire, définissez le paramètre
les propriétés système suivantes dans PRODUCT_PROPERTY_OVERRIDES
:
Pour Android 11 ou version ultérieure:
ro.crypto.volume.options=adiantum ro.crypto.volume.metadata.encryption=adiantum
Pour Android 9 et 10:
ro.crypto.volume.contents_mode=adiantum ro.crypto.volume.filenames_mode=adiantum ro.crypto.fde_algorithm=adiantum ro.crypto.fde_sector_size=4096
Enfin, vous pouvez ajouter blk-crypto-fallback.num_keyslots=1
au
de la ligne de commande du noyau. Cela réduira légèrement l'utilisation de la mémoire lorsqu'Adiantum
le chiffrement des métadonnées est utilisé. Avant cela, vérifiez que la
L'option d'installation inlinecrypt
n'est pas spécifiée dans fstab
.
S'il est spécifié, supprimez-le, puisqu'il n'est pas
nécessaire pour le chiffrement Adiantum.
et cause des problèmes de performances
lorsqu'il est utilisé en association avec
blk-crypto-fallback.num_keyslots=1
Pour vérifier que votre implémentation a fonctionné, générez un rapport de bug ou exécutez la commande suivante:
adb root
adb shell dmesg
Si Adiantum est activé correctement, vous devriez voir ceci dans le journal du noyau:
fscrypt: Adiantum using implementation "adiantum(xchacha12-neon,aes-arm,nhpoly1305-neon)"
Si vous avez activé le chiffrement des métadonnées, exécutez également la commande suivante pour vérifier que Le chiffrement des métadonnées Adiantum est correctement activé:
adb root
adb shell dmctl table userdata
Le troisième champ
de la sortie doit être
xchacha12,aes-adiantum-plain64
Appareils avec chiffrement complet du disque
Pour activer Adiantum et améliorer ses performances, définissez ces propriétés dans
PRODUCT_PROPERTY_OVERRIDES
:
ro.crypto.fde_algorithm=adiantum ro.crypto.fde_sector_size=4096
Définir fde_sector_size
sur 4096 améliore les performances, mais ne l'est pas
nécessaires au fonctionnement d'Adiantum. Pour que vous puissiez utiliser ce paramètre, la partition "userdata" doit
commencent à un décalage
aligné à 4 096 octets sur le disque.
Dans fstab
, pour l'ensemble de données utilisateur:
forceencrypt=footer
Pour vérifier que votre implémentation a fonctionné, générez un rapport de bug ou exécutez la commande suivante:
adb root
adb shell dmesg
Si Adiantum est activé correctement, vous devriez voir ceci dans le journal du noyau:
device-mapper: crypt: adiantum(xchacha12,aes) using implementation "adiantum(xchacha12-neon,aes-arm,nhpoly1305-neon)"