Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Habilitando Adiantum

Adiantum es un método de cifrado diseñado para dispositivos con Android 9 y superior cuyas CPU carecen de instrucciones AES . Si usted va a enviar un dispositivo basado en ARM con ARMv8 Criptografía extensiones o un dispositivo basado en x86 con AES-NI, no se debe utilizar Adiantum. AES es más rápido en esas plataformas.

Para los dispositivos que carecen de estas instrucciones de CPU AES, Adiantum proporciona cifrado en su dispositivo con muy poca sobrecarga de rendimiento. Para conocer los números de evaluación comparativa, consulte el documento de Adiantum . Para que la fuente de evaluación comparativa se ejecute en su hardware, consulte la fuente de Adiantum en GitHub .

Para habilitar Adiantum en un dispositivo con Android 9 o superior, debe realizar cambios en el kernel y en el espacio de usuario.

Cambios de kernel

Adiantum es compatible con los kernels comunes de Android, versión 4.9 y superior.

Si el kernel de su dispositivo aún no es compatible con Adiantum, seleccione los cambios que se enumeran a continuación. Si tiene problemas para elegir, los dispositivos que usan cifrado de disco completo (FDE) pueden excluir el parche fscrypt:

Versión del núcleo Parches de cifrado y fscrypt parche dm-crypt
4.19 4.19 kernel parche dm-crypt
4.14 4.14 kernel parche dm-crypt
4.9 4.9 kernel parche dm-crypt

Habilite Adiantum en su kernel

Android 11 y superior

Si su dispositivo se inicia con Android 11 o superior, habilite las siguientes configuraciones en la configuración del kernel de su dispositivo:

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 su dispositivo ejecuta un kernel ARM de 32 bits, habilite también las instrucciones NEON para mejorar el rendimiento:

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

Android 9 y 10

Si su dispositivo se inicia con Android 9 o 10, entonces se necesitan ajustes de configuración del kernel ligeramente diferentes. Habilite las siguientes configuraciones:

CONFIG_CRYPTO_ADIANTUM=y
CONFIG_DM_CRYPT=y

Si su dispositivo utiliza cifrado basado en archivos, habilite también:

CONFIG_F2FS_FS_ENCRYPTION=y

Finalmente, si su dispositivo ejecuta un kernel ARM de 32 bits, habilite las instrucciones NEON para mejorar el rendimiento:

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

Cambios en el espacio de usuario

Para dispositivos con Android 10 o superior, los cambios en el espacio de usuario de Adiantum ya están presentes.

Para dispositivos que ejecutan Android 9, seleccione los siguientes cambios:

Habilite Adiantum en su dispositivo

Primero, asegúrese de que su dispositivo tenga PRODUCT_SHIPPING_API_LEVEL configurado correctamente para que coincida con la versión de Android con la que se está iniciando. Por ejemplo, un dispositivo que se inicia con Android 11 debe tener PRODUCT_SHIPPING_API_LEVEL := 30 . Esto es importante porque algunas de las configuraciones de cifrado tienen diferentes valores predeterminados en diferentes versiones de lanzamiento.

Dispositivos con cifrado basado en archivos

Para habilitar el cifrado basado en archivos de Adiantum en el almacenamiento interno de su dispositivo, agregue la siguiente opción a la última columna (la columna fs_mgr_flags ) de la fila para la partición de datos de userdata en el archivo fstab del dispositivo:

fileencryption=adiantum

Si su dispositivo se inicia con Android 11 o superior, también se requiere habilitar el cifrado de metadatos . Para usar Adiantum para el cifrado de metadatos en el almacenamiento interno, fs_mgr_flags para userdata también debe contener las siguientes opciones:

metadata_encryption=adiantum,keydirectory=/metadata/vold/metadata_encryption

Finalmente, habilite el cifrado Adiantum en el almacenamiento adoptable . Para hacer esto, configure las siguientes propiedades del sistema en PRODUCT_PROPERTY_OVERRIDES :

Para Android 11 y superior:

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

Para Android 9 y 10:

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

Para verificar que su implementación funcionó, realice un informe de error o ejecute:

adb root
adb shell dmesg

Si Adiantum está habilitado correctamente, debería ver esto en el registro del kernel:

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

Dispositivos con cifrado de disco completo

Para habilitar Adiantum y mejorar su rendimiento, configure estas propiedades en PRODUCT_PROPERTY_OVERRIDES :

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

Establecer fde_sector_size en 4096 mejora el rendimiento, pero no es necesario para que Adiantum funcione. Para usar esta configuración, la partición de datos de usuario debe comenzar con un desplazamiento alineado en disco de 4096 bytes.

En el fstab , para el conjunto de datos de usuario:

forceencrypt=footer

Para verificar que su implementación funcionó, realice un informe de error o ejecute:

adb root
adb shell dmesg

Si Adiantum está habilitado correctamente, debería ver esto en el registro del kernel:

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