Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Abilitazione di Adiantum

Adiantum è un metodo di crittografia progettato per i dispositivi con Android 9 e versioni successive le cui CPU non dispongono di istruzioni AES . Se spedite un dispositivo ARM-based con ARMv8 crittografia estensioni o un dispositivo basato su x86 con AES-NI, non si dovrebbe usare Adiantum. AES è più veloce su queste piattaforme.

Per i dispositivi privi di queste istruzioni CPU AES, Adiantum fornisce la crittografia sul dispositivo con un sovraccarico di prestazioni minimo. Per i numeri di benchmarking, vedere il documento Adiantum . Per la fonte di benchmarking da eseguire sul tuo hardware, vedi la fonte Adiantum su GitHub .

Per abilitare Adiantum su un dispositivo con Android 9 o versioni successive, è necessario apportare modifiche al kernel e modifiche allo spazio utente.

Modifiche al kernel

Adiantum è supportato dai kernel comuni di Android, versione 4.9 e successive.

Se il kernel del tuo dispositivo non ha già il supporto Adiantum, seleziona le modifiche elencate di seguito. In caso di problemi di selezione, i dispositivi che utilizzano la crittografia a disco completo (FDE) possono escludere fscrypt: patch.

Versione del kernel Patch Crypto e fscrypt patch dm-crypt
4.19 4.19 kernel patch dm-crypt
4.14 4.14 kernel patch dm-crypt
4.9 4.9 kernel patch dm-crypt

Abilita Adiantum nel tuo kernel

Dopo aver integrato le modifiche al kernel, modifica la configurazione del kernel aggiungendo le righe:

CONFIG_CRYPTO_ADIANTUM=y
CONFIG_DM_CRYPT=y

Se il tuo dispositivo utilizza la crittografia basata su file (FBE) e una versione del kernel 5.1 o successiva, aggiungi anche:

CONFIG_FS_ENCRYPTION=y

Se il dispositivo utilizza la crittografia basata su file (FBE) e una versione del kernel 5.0 o inferiore, aggiungi anche:

CONFIG_F2FS_FS_ENCRYPTION=y

Per garantire buone prestazioni su un kernel ARM a 32 bit, abilitare le istruzioni NEON per il kernel:

CONFIG_CRYPTO_AES_ARM=y
CONFIG_CRYPTO_CHACHA20_NEON=y
CONFIG_CRYPTO_NHPOLY1305_NEON=y
CONFIG_KERNEL_MODE_NEON=y

Modifiche allo spazio utente

Per i dispositivi con Android 10 o versioni successive, le modifiche allo spazio utente di Adiantum sono già presenti.

Per i dispositivi che eseguono Android 9, seleziona le seguenti modifiche:

Abilita Adiantum nel tuo dispositivo

Dispositivi con crittografia basata su file

Per abilitare la crittografia basata su file Adiantum nella memoria interna del dispositivo, impostare l'appropriata fileencryption opzione per il userdata partizione nel dispositivo fstab :

fileencryption=adiantum

Successivamente, se il tuo dispositivo supporta l' archiviazione adottabile , attiva anche la crittografia Adiantum sull'archiviazione adottabile. A tale scopo, imposta le seguenti proprietà in PRODUCT_PROPERTY_OVERRIDES :

Per Android 11 e versioni successive:

ro.crypto.volume.options=adiantum
ro.crypto.volume.metadata.encryption=adiantum

Per Android 9 e 10:

ro.crypto.volume.contents_mode=adiantum
ro.crypto.volume.filenames_mode=adiantum
ro.crypto.fde_algorithm=adiantum
ro.crypto.fde_sector_size=4096

Per verificare che la tua implementazione abbia funzionato, fai una segnalazione di bug o esegui:

adb root
adb shell dmesg

Se Adiantum è abilitato correttamente, dovresti vederlo nel registro del kernel:

fscrypt: Adiantum using implementation "adiantum(xchacha12-neon,aes-arm,nhpoly1305-neon)"

A partire da Android 11, è anche possibile utilizzare Adiantum per la crittografia dei metadati sulla memoria interna. Vedere la documentazione sulla crittografia dei metadati per i dettagli.

Dispositivi con crittografia dell'intero disco

Per abilitare Adiantum e migliorarne le prestazioni, imposta queste proprietà in PRODUCT_PROPERTY_OVERRIDES :

ro.crypto.fde_algorithm=adiantum
ro.crypto.fde_sector_size=4096

L'impostazione di fde_sector_size su 4096 migliora le prestazioni, ma non è necessario per il funzionamento di Adiantum. Per utilizzare questa impostazione, la partizione userdata deve iniziare con un offset allineato a 4096 byte su disco.

In fstab , per userdata set:

forceencrypt

Per verificare che la tua implementazione abbia funzionato, fai una segnalazione di bug o esegui:

adb root
adb shell dmesg

Se Adiantum è abilitato correttamente, dovresti vederlo nel registro del kernel:

device-mapper: crypt: adiantum(xchacha12,aes) using implementation "adiantum(xchacha12-neon,aes-arm,nhpoly1305-neon)"