Adiantum, Android 9 ve sonraki sürümleri çalıştıran cihazlar için tasarlanmış bir şifreleme yöntemidir CPU'larında eksiklik var AES talimatlarını uygulayın. ARM tabanlı bir sistem yüklüyorsanız ARMv8 Kriptografi Uzantılarına sahip bir cihaz veya AES-NI yüklü x86 tabanlı bir cihaz, Adiantum'u kullanmamalısınız. AES, bunlarda daha hızlıdır platformlar.
Adiantum, bu AES CPU talimatları bulunmayan cihazlarda şifreleme sağlar. ek performans yüküyle kullanmaya devam edebilirsiniz. Karşılaştırma rakamları için Adiantum makalesini inceleyin. Karşılaştırma kaynağı için çalıştırmak için şuraya bakın: Adiantum kaynağı bulabilirsiniz.
Android 9 veya sonraki sürümleri çalıştıran bir cihazda Adiantum'u etkinleştirmek için: çekirdek değişiklikleri ve kullanıcı alanı değişiklikleri hakkında bilgi edinin.
Çekirdek değişiklikleri
Adiantum, Android'in 4.9 ve sonraki yaygın çekirdekleri tarafından desteklenir.
Cihazınızın çekirdeğinde Adiantum desteği yoksa
aşağıda listelenen değişiklikler. Satın alma konusunda sorun yaşıyorsanız tam disk şifrelemesi (FDE) kullanan cihazlar
fscrypt:
yamasına sahipler.
Çekirdek sürümü | Şifreleme ve fscrypt yamaları | dm-crypt yama |
---|---|---|
4,19 | 4.19 çekirdek | dm-crypt yama
|
4,14 | 4.14 çekirdek | dm-crypt yama
|
4.9 | 4.9 çekirdek | dm-crypt yama
|
Çekirdeğinizde Adiantum'u etkinleştirin
Android 11 ve sonraki sürümler
Cihazınızda Android 11 veya sonraki bir sürüm yüklüyse cihazınızın çekirdek yapılandırmasında aşağıdaki ayarları etkinleştirin:
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.
Cihazınızda 32 bit ARM çekirdeği çalışıyorsa aşağıdakileri yapmak için NEON talimatlarını da etkinleştirin: performansı artırmak için:
CONFIG_KERNEL_MODE_NEON=y CONFIG_CRYPTO_AES_ARM=y CONFIG_CRYPTO_CHACHA20_NEON=y CONFIG_CRYPTO_NHPOLY1305_NEON=y
Android 9 ve 10
Cihazınızda Android 9 veya 10, daha sonra ise biraz farklı çekirdek yapılandırması gerekli ayarları yapın. Aşağıdaki ayarları etkinleştirin:
CONFIG_CRYPTO_ADIANTUM=y CONFIG_DM_CRYPT=y.
Cihazınızda dosya tabanlı şifreleme kullanılıyorsa şunları da etkinleştirin:
CONFIG_F2FS_FS_ENCRYPTION=y
Son olarak, cihazınızda 32 bit ARM çekirdeği çalışıyorsa aşağıdaki işlemler için NEON talimatlarını etkinleştirin: performansı artırmak için:
CONFIG_KERNEL_MODE_NEON=y CONFIG_CRYPTO_AES_ARM=y CONFIG_CRYPTO_CHACHA20_NEON=y CONFIG_CRYPTO_NHPOLY1305_NEON=y
Kullanıcı alanı değişiklikleri
Android 10 veya sonraki sürümleri çalıştıran cihazlar için Adiantum kullanıcı alanı değişiklikleri zaten mevcuttur.
Android 9 çalıştıran cihazlar için aşağıdaki değişiklikler:
- cryptfs: Adiantum desteği ekleme
- cryptfs: dm-crypt sektör boyutunun ayarlanmasına izin ver
- cryptfs: dm-crypt cihazın boyutunu kripto sektörü sınırına yuvarla
- cryptfs: dm-crypt cihaz oluşturma işleminin günlük kaydını iyileştirme
- libfscrypt: Adiantum desteği ekleme
- fs_mgr_fstab: Adiantum desteği ekleyin
Cihazınızda Adiantum'u etkinleştirin
Öncelikle, cihazınızda PRODUCT_SHIPPING_API_LEVEL
değerinin ayarlandığından emin olun
eşleştirmesi için kullanabilirsiniz. Örneğin,
Android 11 ile kullanıma sunulan cihazda
PRODUCT_SHIPPING_API_LEVEL := 30
Bu önemlidir çünkü
şifreleme ayarlarının farklı lansman sürümlerinde farklı varsayılan değerleri vardır.
Dosya tabanlı şifreleme kullanılan cihazlar
Adiantum dosya tabanlı şifrelemeyi cihazınızın dahili depolama biriminde etkinleştirmek için
son sütuna (fs_mgr_flags
sütununda) userdata
bölüm için
fstab
dosyası:
fileencryption=adiantum
Cihazınızda Android 11 veya sonraki bir sürüm yüklüyse
meta veri şifrelemesi de zorunludur. Meta veriler için Adiantum kullanmak istiyorsanız
fs_mgr_flags,
userdata
aşağıdaki seçenekleri de içermelidir:
metadata_encryption=adiantum,keydirectory=/metadata/vold/metadata_encryption
Ardından, kabul edilebilir depolama alanında Adiantum şifrelemesini etkinleştirin. Bunu yapmak için,
PRODUCT_PROPERTY_OVERRIDES
içindeki şu sistem özellikleri:
Android 11 ve sonraki sürümler için:
ro.crypto.volume.options=adiantum ro.crypto.volume.metadata.encryption=adiantum
Android 9 ve 10 için:
ro.crypto.volume.contents_mode=adiantum ro.crypto.volume.filenames_mode=adiantum ro.crypto.fde_algorithm=adiantum ro.crypto.fde_sector_size=4096. ziyaret edin.
Son olarak, isteğe bağlı olarak blk-crypto-fallback.num_keyslots=1
öğesini
kernel komut satırını kullanın. Bu özellik, Adiantum'un kullanıma sunulduğunda bellek kullanımını
meta veri şifrelemesi kullanılır. Bunu yapmadan önce
fstab
içinde inlinecrypt
ekleme seçeneği belirtilmemiş.
Belirtilmişse bunu kaldırın. Adiantum şifrelemesi için gerekli değildir.
ile birlikte kullanıldığında performans sorunlarına neden olur.
blk-crypto-fallback.num_keyslots=1
Uygulamanızın çalıştığını doğrulamak için hata raporu alın veya aşağıdaki komutu çalıştırın:
adb root
adb shell dmesg
Adiantum doğru şekilde etkinleştirildiyse çekirdek günlüğünde aşağıdakini görürsünüz:
fscrypt: Adiantum using implementation "adiantum(xchacha12-neon,aes-arm,nhpoly1305-neon)".
Meta veri şifrelemeyi etkinleştirdiyseniz aşağıdaki komutu çalıştırarak da Adiantum meta veri şifrelemesi doğru şekilde etkinleştirildi:
adb root
adb shell dmctl table userdata
Çıkışın üçüncü alanı şöyle olmalıdır:
xchacha12,aes-adiantum-plain64
Tam disk şifrelemesi kullanılan cihazlar
Adiantum'u etkinleştirmek ve performansını iyileştirmek için bu özellikleri
PRODUCT_PROPERTY_OVERRIDES
:
ro.crypto.fde_algorithm=adiantum ro.crypto.fde_sector_size=4096
fde_sector_size
değerinin 4096 olarak ayarlanması performansı artırır ancak
gereklidir. Bu ayarı kullanmak için kullanıcı verisi bölümü
olması gerekir.
fstab
içinde, kullanıcı verisi kümesi için:
forceencrypt=footer
Uygulamanızın çalıştığını doğrulamak için hata raporu alın veya aşağıdaki komutu çalıştırın:
adb root
adb shell dmesg
Adiantum doğru şekilde etkinleştirildiyse çekirdek günlüğünde aşağıdakini görürsünüz:
device-mapper: crypt: adiantum(xchacha12,aes) using implementation "adiantum(xchacha12-neon,aes-arm,nhpoly1305-neon)".