Tam disk şifreleme, bir Android cihazdaki tüm kullanıcı verilerinin şifrelenmiş bir anahtar kullanılarak kodlanması işlemidir. Bir cihaz şifrelendiğinde, kullanıcı tarafından oluşturulan tüm veriler diske kaydedilmeden önce otomatik olarak şifrelenir ve tüm okumalar, verileri çağırma işlemine geri göndermeden önce otomatik olarak verilerin şifresini çözer.
Tam disk şifrelemesi Android'e 4.4'te sunuldu, ancak Android 5.0 şu yeni özellikleri tanıttı:
- İlk önyüklemenin uzun sürmesini önlemek için yalnızca veri bölümündeki kullanılmış blokları şifreleyen hızlı şifreleme oluşturuldu. Şu anda yalnızca ext4 ve f2fs dosya sistemleri hızlı şifrelemeyi desteklemektedir.
- İlk açılışta şifrelemek
forceencrypt
fstab bayrağı eklendi. - Parola olmadan kalıplar ve şifreleme için destek eklendi.
- Güvenilir Yürütme Ortamı'nın (TEE) imzalama özelliğini (TrustZone'da olduğu gibi) kullanarak şifreleme anahtarının donanım destekli depolaması eklendi. Daha fazla ayrıntı için bkz . Şifrelenmiş anahtarı saklama .
Dikkat: Android 5.0'a yükseltilen ve daha sonra şifrelenen cihazlar, fabrika verilerine sıfırlama işlemiyle şifrelenmemiş duruma döndürülebilir. İlk açılışta şifrelenen yeni Android 5.0 cihazları şifrelenmemiş duruma döndürülemez.
Android tam disk şifrelemesi nasıl çalışır?
Android tam disk şifrelemesi, blok aygıt katmanında çalışan bir çekirdek özelliği olan dm-crypt
temel alır. Bu nedenle şifreleme, kendilerini çekirdeğe blok aygıtlar olarak sunan Embedded MultiMediaCard ( eMMC) ve benzeri flash aygıtlarla çalışır. Doğrudan ham NAND flash çipiyle konuşan YAFFS ile şifreleme mümkün değildir.
Şifreleme algoritması, şifre bloğu zincirleme (CBC) ve ESSIV:SHA256 ile 128 Gelişmiş Şifreleme Standardıdır (AES). Ana anahtar, OpenSSL kütüphanesine yapılan çağrılar yoluyla 128 bit AES ile şifrelenir. Anahtar için 128 bit veya daha fazlasını kullanmanız gerekir (256 isteğe bağlıdır).
Not: OEM'ler ana anahtarı şifrelemek için 128 bit veya daha üstünü kullanabilir.
Android 5.0 sürümünde dört tür şifreleme durumu vardır:
- varsayılan
- TOPLU İĞNE
- şifre
- model
İlk açılışta, cihaz rastgele oluşturulmuş 128 bitlik bir ana anahtar oluşturur ve ardından bunu varsayılan şifre ve depolanan tuzla karma hale getirir. Varsayılan şifre şu şekildedir: "default_password" Ancak, ortaya çıkan karma aynı zamanda ana anahtarı şifrelemek için imzanın karma değerini kullanan bir TEE (TrustZone gibi) aracılığıyla da imzalanır.
Tanımlanan varsayılan şifreyi Android Açık Kaynak Projesi cryptfs.cpp dosyasında bulabilirsiniz.
Kullanıcı cihazda PIN/şifre veya şifre belirlediğinde yalnızca 128 bitlik anahtar yeniden şifrelenir ve saklanır. (yani kullanıcı PIN'i/şifresi/desen değişiklikleri, kullanıcı verilerinin yeniden şifrelenmesine neden OLMAYACAKTIR.) Yönetilen cihazın PIN, desen veya parola kısıtlamalarına tabi olabileceğini unutmayın.
Şifreleme init
ve vold
tarafından yönetilir. init
vold
çağırır ve vold, init'teki olayları tetikleyecek özellikleri ayarlar. Sistemin diğer bölümleri ayrıca rapor durumu, parola isteme veya önemli bir hata durumunda fabrika ayarlarına sıfırlama istemi gibi görevleri yürütmek için özelliklere de bakar. vold
şifreleme özelliklerini çağırmak için sistem, vdc
komut satırı aracının cryptfs
komutlarını kullanır: checkpw
, restart
, enablecrypto
, changepw
, cryptocomplete
, verifypw
, setfield
, getfield
, mountdefaultencrypted
, getpwtype
, getpw
ve clearpw
.
/data
şifrelemek, şifresini çözmek veya silmek için /data
monte edilmemesi gerekir. Ancak herhangi bir kullanıcı arayüzünü (UI) gösterebilmek için çerçevenin başlaması gerekir ve çerçevenin çalışması için /data
gerekir. Bu bilmeceyi çözmek için /data
geçici bir dosya sistemi bağlanır. Bu, Android'in gerektiğinde şifre istemesine, ilerleme durumunu göstermesine veya veri silme işlemi önermesine olanak tanır. Geçici dosya sisteminden gerçek /data
dosya sistemine geçiş yapmak için sistemin, geçici dosya sistemindeki açık dosyalarla yapılan her işlemi durdurması ve bu işlemleri gerçek /data
dosya sisteminde yeniden başlatması gerektiği sınırlamasını getirir. Bunu yapmak için tüm hizmetlerin üç gruptan birinde olması gerekir: core
, main
ve late_start
.
-
core
: Başladıktan sonra asla kapatmayın. -
main
: Kapatın ve disk parolası girildikten sonra yeniden başlatın. -
late_start
:/data
şifresi çözülüp bağlanıncaya kadar başlamaz.
Bu eylemleri tetiklemek için vold.decrypt
özelliği çeşitli dizelere ayarlanmıştır. Hizmetleri sonlandırmak ve yeniden başlatmak için init
komutları şunlardır:
-
class_reset
: Bir hizmeti durdurur ancak class_start ile yeniden başlatılmasına izin verir. -
class_start
: Bir hizmeti yeniden başlatır. -
class_stop
: Bir hizmeti durdurur ve birSVC_DISABLED
bayrağı ekler. Durdurulan hizmetlerclass_start
yanıt vermiyor.
Akışlar
Şifrelenmiş bir cihaz için dört akış vardır. Bir aygıt yalnızca bir kez şifrelenir ve ardından normal önyükleme akışını izler.
- Daha önce şifrelenmemiş bir cihazı şifreleyin:
-
forceencrypt
ile yeni bir cihazı şifreleyin : İlk açılışta zorunlu şifreleme (Android L'den başlayarak). - Mevcut bir cihazı şifreleyin: Kullanıcı tarafından başlatılan şifreleme (Android K ve öncesi).
-
- Şifrelenmiş bir cihazı önyükleyin:
- Şifrelenmiş bir cihazı şifresiz başlatmak: Ayarlanmış şifresi olmayan şifreli bir cihazı başlatmak (Android 5.0 ve sonraki sürümleri çalıştıran cihazlar için geçerlidir).
- Şifreli bir cihazı parolayla başlatmak: Belirlenmiş parolaya sahip şifreli bir aygıtı başlatmak.
Bu akışlara ek olarak cihaz /data
şifrelemesinde de başarısız olabilir. Akışların her biri aşağıda ayrıntılı olarak açıklanmaktadır.
Forceencrypt ile yeni bir cihazı şifreleyin
Bu, Android 5.0 cihazının normal ilk önyüklemesidir.
-
forceencrypt
bayrağıyla şifrelenmemiş dosya sistemini tespit edin/data
şifrelenmemiştir ancakforceencrypt bunu zorunlu kıldığı içinforceencrypt
gerekmektedir./data
bağlantısını kesin. -
/data
şifrelemeye başlavold.decrypt = "trigger_encryption"
init.rc
dosyasını tetikler, bu davold
/data
parola olmadan şifrelemesine neden olur. (Bu yeni bir cihaz olması gerektiğinden hiçbiri ayarlanmadı.) - Tmpfs'yi bağlayın
vold
bir tmpfs/data
bağlar (ro.crypto.tmpfs_options
tmpfs seçeneklerini kullanarak) vevold.encrypt_progress
özelliğini 0'a ayarlar.vold
, şifrelenmiş bir sistemi başlatmak için tmpfs/data
hazırlar vevold.decrypt
özelliğini şu şekilde ayarlar:trigger_restart_min_framework
- İlerlemeyi göstermek için çerçeveyi getirin
Cihazda neredeyse şifrelenecek veri bulunmadığından, şifreleme çok hızlı gerçekleştiğinden ilerleme çubuğu çoğu zaman görünmeyecektir. İlerleme kullanıcı arayüzü hakkında daha fazla ayrıntı için Mevcut bir cihazı şifreleme konusuna bakın.
-
/data
şifrelendiğinde çerçeveyi kaldırınvold
vold.decrypt
defaultcrypto
hizmetini başlatantrigger_default_encryption
ayarlar. (Bu, varsayılan şifrelenmiş kullanıcı verilerinin bağlanması için aşağıdaki akışı başlatır.)trigger_default_encryption
,/data
şifreyle mi yoksa şifresiz mi şifrelendiğini görmek için şifreleme türünü kontrol eder. Android 5.0 cihazları ilk açılışta şifrelendiğinden herhangi bir şifre ayarlanmamalıdır; bu nedenle/data
şifresini çözer ve bağlarız. - Montaj
/data
init
daha sonra/data
init.rc
ayarlananro.crypto.tmpfs_options
aldığı parametreleri kullanarak bir tmpfs RAMDisk'e bağlar. - Çerçeveyi başlat
vold
vold.decrypt
trigger_restart_framework
olarak ayarlar, bu da olağan önyükleme işlemini sürdürür.
Mevcut bir cihazı şifreleyin
L'ye taşınmış şifrelenmemiş bir Android K veya daha önceki cihazı şifrelediğinizde olan şey budur.
Bu işlem kullanıcı tarafından başlatılır ve kodda "yerinde şifreleme" olarak anılır. Kullanıcı bir cihazı şifrelemeyi seçtiğinde, kullanıcı arayüzü pilin tam olarak şarj edildiğinden ve AC adaptörünün takılı olduğundan, şifreleme işlemini tamamlamak için yeterli gücün mevcut olduğundan emin olur.
Uyarı: Aygıtın gücü biterse ve şifrelemeyi tamamlamadan kapanırsa, dosya verileri kısmen şifrelenmiş durumda kalır. Cihazın fabrika ayarlarına sıfırlanması gerekir ve tüm veriler kaybolur.
Yerinde şifrelemeyi etkinleştirmek için vold
, gerçek blok cihazının her sektörünü okumak ve ardından bunu kripto blok cihazına yazmak için bir döngü başlatır. vold
, onu okumadan ve yazmadan önce bir sektörün kullanımda olup olmadığını kontrol eder; bu, çok az veriye sahip olan veya hiç verisi olmayan yeni bir cihazda şifrelemeyi çok daha hızlı hale getirir.
Cihazın durumu : ro.crypto.state = "unencrypted"
olarak ayarlayın ve önyüklemeye devam etmek için on nonencrypted
init
tetikleyicisini çalıştırın.
- Şifreyi kontrol et
Kullanıcı arayüzü
vold
cryptfs enablecrypto inplace
komutuyla çağırır; buradapasswd
kullanıcının kilit ekranı şifresidir. - Çerçeveyi kaldır
vold
hataları kontrol eder, şifreleyemiyorsa -1 değerini döndürür ve günlüğe bir neden yazdırır. Şifreleyebiliyorsavold.decrypt
özelliğinitrigger_shutdown_framework
olarak ayarlar. Buinit.rc
late_start
vemain
sınıflarındaki hizmetleri durdurmasına neden olur. - Kripto altbilgisi oluşturun
- Bir kırıntı dosyası oluşturma
- Yeniden başlat
- Kırıntı dosyasını algıla
-
/data
şifrelemeye başlavold
daha sonra, gerçek blok cihazıyla eşlenen, ancak her sektörü yazıldığı gibi şifreleyen ve okundukça her sektörün şifresini çözen sanal bir kripto blok cihazı oluşturan kripto eşlemeyi kurar.vold
daha sonra kripto meta verilerini oluşturur ve yazar. - Şifrelerken tmpfs'yi bağlayın
vold
bir tmpfs/data
bağlar (ro.crypto.tmpfs_options
tmpfs seçeneklerini kullanarak) vevold.encrypt_progress
özelliğini 0'a ayarlar.vold
, şifrelenmiş bir sistemi başlatmak için tmpfs/data
hazırlar vevold.decrypt
özelliğini şu şekilde ayarlar:trigger_restart_min_framework
- İlerlemeyi göstermek için çerçeveyi getirin
trigger_restart_min_framework
init.rc
main
hizmet sınıfını başlatmasına neden olur. Çerçevevold.encrypt_progress
0'a ayarlandığını gördüğünde, bu özelliği her beş saniyede bir sorgulayan ve ilerleme çubuğunu güncelleyen ilerleme çubuğu kullanıcı arayüzünü getirir. Şifreleme döngüsü, bölümün başka bir yüzdesini her şifrelediğindevold.encrypt_progress
günceller. -
/data
şifrelendiğinde kripto altbilgisini güncelleyin/data
başarıyla şifrelendiğindevold
, meta verilerdekiENCRYPTION_IN_PROGRESS
işaretini temizler.Cihazın kilidi başarıyla açıldığında, parola ana anahtarı şifrelemek için kullanılır ve kripto altbilgisi güncellenir.
Yeniden başlatma herhangi bir nedenle başarısız olursa
vold
,vold.encrypt_progress
özelliğinierror_reboot_failed
olarak ayarlar ve kullanıcı arayüzü, kullanıcıdan yeniden başlatmak için bir düğmeye basmasını isteyen bir mesaj görüntülemelidir. Bunun hiçbir zaman gerçekleşmesi beklenmiyor.
Şifrelenmiş bir cihazı varsayılan şifrelemeyle başlatma
Şifrelenmiş bir cihazı şifre olmadan başlattığınızda olan şey budur. Android 5.0 cihazları ilk açılışta şifrelendiğinden, belirlenmiş bir şifre olmamalıdır ve dolayısıyla bu, varsayılan şifreleme durumudur.
- Şifreli
/data
şifre olmadan tespit et/data
bağlanamadığından veencryptable
forceencrypt
işaretlerinden biri ayarlandığından Android cihazının şifrelendiğini tespit edin.vold
vold.decrypt
,defaultcrypto
hizmetini başlatantrigger_default_encryption
olarak ayarlar.trigger_default_encryption
,/data
parolayla mı yoksa parolasız mı şifrelendiğini görmek için şifreleme türünü kontrol eder. - /verilerin şifresini çöz
Cihazın kullanıma hazır olması için blok cihaz üzerinde
dm-crypt
cihazını oluşturur. - Montaj / veri
vold
daha sonra şifresi çözülmüş gerçek/data
bölümünü bağlar ve ardından yeni bölümü hazırlar.vold.post_fs_data_done
özelliğini 0'a ayarlar ve ardındanvold.decrypt
trigger_post_fs_data
olarak ayarlar. Bu,init.rc
post-fs-data
komutlarını çalıştırmasına neden olur. Gerekli dizinleri veya bağlantıları oluşturacaklar ve ardındanvold.post_fs_data_done
1 olarak ayarlayacaklar.vold
bu özellikteki 1'i gördüğünde,vold.decrypt
özelliğini şu şekilde ayarlar:trigger_restart_framework.
Bu,init.rc
main
sınıfındaki hizmetleri yeniden başlatmasına ve ayrıca önyüklemeden bu yana ilk kezlate_start
sınıfındaki hizmetleri başlatmasına neden olur. - Çerçeveyi başlat
Artık çerçeve tüm hizmetlerini şifresi çözülmüş
/data
kullanarak başlatıyor ve sistem kullanıma hazır.
Şifrelenmiş bir cihazı varsayılan şifreleme olmadan başlatma
Belirlenmiş bir parolaya sahip şifrelenmiş bir cihazı başlattığınızda olan şey budur. Cihazın şifresi bir pin, desen veya şifre olabilir.
- Şifreli cihazı şifreyle tespit et
ro.crypto.state = "encrypted"
bayrağı nedeniyle Android cihazının şifrelendiğini tespit edinvold
vold.decrypt
trigger_restart_min_framework
olarak ayarlar çünkü/data
bir parola ile şifrelenmiştir. - Tmpfs'yi bağlayın
init
/data
için verilen ilk bağlama seçenekleriniinit.rc
iletilen parametrelerle kaydetmek için beş özellik ayarlar.vold
kripto eşlemesini ayarlamak için bu özellikleri kullanır:-
ro.crypto.fs_type
-
ro.crypto.fs_real_blkdev
-
ro.crypto.fs_mnt_point
-
ro.crypto.fs_options
-
ro.crypto.fs_flags
(önünde 0x bulunan ASCII 8 basamaklı onaltılık sayı)
-
- Parola istemek için çerçeveyi başlatın
Çerçeve başlar ve
vold.decrypt
trigger_restart_min_framework
olarak ayarlandığını görür. Bu, çerçeveye bir tmpfs/data
diskinde önyükleme yaptığını ve kullanıcı parolasını alması gerektiğini söyler.Ancak öncelikle diskin uygun şekilde şifrelendiğinden emin olması gerekir.
vold
cryptfs cryptocomplete
komutunu gönderir.vold
, şifreleme başarıyla tamamlandıysa 0, dahili hata durumunda -1 veya şifreleme başarıyla tamamlanmadıysa -2 değerini döndürür.vold
bunuCRYPTO_ENCRYPTION_IN_PROGRESS
bayrağının kripto meta verilerine bakarak belirler. Ayarlanmışsa şifreleme işlemi kesintiye uğramıştır ve cihazda kullanılabilir veri yoktur.vold
bir hata döndürürse, kullanıcı arayüzü kullanıcıya cihazı yeniden başlatması ve fabrika ayarlarına sıfırlaması için bir mesaj görüntülemeli ve kullanıcıya bunu yapması için basması için bir düğme vermelidir. - Verilerin şifresini şifreyle çözme
cryptfs cryptocomplete
başarılı olduğunda, çerçeve disk parolasını soran bir kullanıcı arayüzü görüntüler. Kullanıcı arayüzü,cryptfs checkpw
komutunuvold
göndererek şifreyi kontrol eder. Şifre doğruysa (şifresi çözülmüş/data
geçici bir konuma başarıyla monte edip ardından bağlantısını keserek belirlenir),vold
şifresi çözülmüş blok cihazının adınıro.crypto.fs_crypto_blkdev
özelliğine kaydeder ve kullanıcı arayüzüne 0 durumunu döndürür. . Parola yanlışsa kullanıcı arayüzüne -1 değerini döndürür. - Çerçeveyi durdur
Kullanıcı arayüzü bir kripto önyükleme grafiği oluşturur ve ardından
cryptfs restart
komutuylavold
çağırır.vold
vold.decrypt
özelliğinitrigger_reset_main
olarak ayarlar, bu dainit.rc
class_reset main
işlevini yapmasına neden olur. Bu, ana sınıftaki tüm hizmetleri durdurur ve bu da tmpfs/data
bağlantısının kesilmesine olanak tanır. - Montaj
/data
vold
daha sonra şifresi çözülmüş gerçek/data
bölümünü bağlar ve yeni bölümü hazırlar (ilk sürümde desteklenmeyen silme seçeneğiyle şifrelenmişse bu bölüm hiçbir zaman hazırlanmamış olabilir).vold.post_fs_data_done
özelliğini 0'a ayarlar ve ardındanvold.decrypt
trigger_post_fs_data
olarak ayarlar. Bu,init.rc
post-fs-data
komutlarını çalıştırmasına neden olur. Gerekli tüm dizinleri veya bağlantıları oluşturacaklar ve ardındanvold.post_fs_data_done
değerini 1 olarak ayarlayacaklar.vold
bu özellikte 1'i gördüğünde,vold.decrypt
özelliğinitrigger_restart_framework
olarak ayarlar. Bu,init.rc
main
sınıfındaki hizmetleri yeniden başlatmasına ve ayrıca önyüklemeden bu yana ilk kezlate_start
sınıfındaki hizmetleri başlatmasına neden olur. - Tam çerçeveyi başlat
Artık çerçeve, şifresi çözülmüş
/data
dosya sistemini kullanarak tüm hizmetlerini önyükler ve sistem kullanıma hazırdır.
Arıza
Şifresini çözemeyen bir cihaz birkaç nedenden dolayı hatalı olabilir. Cihaz, önyükleme için normal bir dizi adımla başlar:
- Şifreli cihazı şifreyle tespit et
- Tmpfs'yi bağlayın
- Parola istemek için çerçeveyi başlatın
Ancak çerçeve açıldıktan sonra cihaz bazı hatalarla karşılaşabilir:
- Parola eşleşiyor ancak verilerin şifresi çözülemiyor
- Kullanıcı 30 kez yanlış şifre giriyor
Bu hatalar çözülmezse kullanıcıdan fabrikayı temizlemesini isteyin :
vold
şifreleme işlemi sırasında bir hata tespit ederse ve henüz hiçbir veri yok edilmemişse ve çerçeve çalışır durumdaysa, vold
, vold.encrypt_progress
özelliğini error_not_encrypted
olarak ayarlar. Kullanıcı arayüzü kullanıcıdan yeniden başlatmasını ister ve onları şifreleme işleminin hiç başlamadığı konusunda uyarır. Hata, çerçeve yıkıldıktan sonra ancak ilerleme çubuğu kullanıcı arayüzü açılmadan önce meydana gelirse, vold
sistemi yeniden başlatacaktır. Yeniden başlatma başarısız olursa vold.encrypt_progress
error_shutting_down
olarak ayarlar ve -1 değerini döndürür; ancak hatayı yakalayacak hiçbir şey olmayacak. Bunun gerçekleşmesi beklenmiyor.
vold
şifreleme işlemi sırasında bir hata tespit ederse vold.encrypt_progress
error_partially_encrypted
olarak ayarlar ve -1 değerini döndürür. Kullanıcı arayüzü daha sonra şifrelemenin başarısız olduğunu belirten bir mesaj görüntülemeli ve kullanıcıya cihazı fabrika ayarlarına sıfırlaması için bir düğme sağlamalıdır.
Şifrelenmiş anahtarın saklanması
Şifrelenmiş anahtar, kripto meta verilerinde saklanır. Donanım desteği, Güvenilir Yürütme Ortamı'nın (TEE) imzalama yeteneği kullanılarak uygulanır. Daha önce ana anahtarı, kullanıcının şifresine ve saklanan tuza scrypt uygulayarak oluşturulan bir anahtarla şifreliyorduk. Anahtarı kutu dışı saldırılara karşı dayanıklı hale getirmek için, elde edilen anahtarı depolanan bir TEE anahtarıyla imzalayarak bu algoritmayı genişletiyoruz. Ortaya çıkan imza daha sonra bir kez daha şifre uygulamasıyla uygun uzunlukta bir anahtara dönüştürülür. Bu anahtar daha sonra ana anahtarı şifrelemek ve şifresini çözmek için kullanılır. Bu anahtarı saklamak için:
- Rastgele 16 baytlık disk şifreleme anahtarı (DEK) ve 16 baytlık tuz oluşturun.
- 32 baytlık ara anahtar 1'i (IK1) üretmek için kullanıcı parolasına ve tuza scrypt uygulayın.
- Donanıma bağlı özel anahtarın (HBK) boyutuna sıfır bayt içeren Pad IK1. Özellikle şu şekilde doldururuz: 00 || IK1 || 00..00; bir sıfır bayt, 32 IK1 bayt, 223 sıfır bayt.
- 256 baytlık IK2 üretmek için dolgulu IK1'i HBK ile imzalayın.
- 32 baytlık IK3 üretmek için IK2'ye ve tuza (adım 2 ile aynı tuz) scrypt uygulayın.
- IK3'ün ilk 16 baytını KEK, son 16 baytını IV olarak kullanın.
- DEK'i AES_CBC, KEK anahtarı ve başlatma vektörü IV ile şifreleyin.
Şifreyi değiştirme
Bir kullanıcı ayarlarda parolasını değiştirmeyi veya kaldırmayı seçtiğinde, kullanıcı arayüzü cryptfs changepw
komutunu vold
gönderir ve vold
, disk ana anahtarını yeni parolayla yeniden şifreler.
Şifreleme özellikleri
vold
ve init
özellikleri ayarlayarak birbirleriyle iletişim kurar. Burada şifreleme için mevcut özelliklerin bir listesi bulunmaktadır.
Vold'un özellikleri
Mülk | Tanım |
---|---|
vold.decrypt trigger_encryption | Sürücüyü parola olmadan şifreleyin. |
vold.decrypt trigger_default_encryption | Parola olmadan şifrelenip şifrelenmediğini görmek için sürücüyü kontrol edin. Öyleyse şifresini çözün ve bağlayın, aksi takdirde vold.decrypt tetikleyici_restart_min_framework olarak ayarlayın. |
vold.decrypt trigger_reset_main | Disk parolasını isteyen kullanıcı arayüzünü kapatmak için vold ile ayarlayın. |
vold.decrypt trigger_post_fs_data | Vold tarafından gerekli dizinlerle hazırlık /data ayarlandı, vb. |
vold.decrypt trigger_restart_framework | Gerçek çerçeveyi ve tüm hizmetleri başlatmak için vold tarafından ayarlanır. |
vold.decrypt trigger_shutdown_framework | Şifrelemeyi başlatmak için tüm çerçeveyi kapatmak üzere vold tarafından ayarlanır. |
vold.decrypt trigger_restart_min_framework | ro.crypto.state değerine bağlı olarak, şifreleme veya parola istemi için ilerleme çubuğu kullanıcı arayüzünü başlatmak üzere vold tarafından ayarlanır. |
vold.encrypt_progress | Çerçeve başlatıldığında, bu özellik ayarlanmışsa ilerleme çubuğu kullanıcı arayüzü moduna girin. |
vold.encrypt_progress 0 to 100 | İlerleme çubuğu kullanıcı arayüzünün ayarlanan yüzde değeri görüntülemesi gerekir. |
vold.encrypt_progress error_partially_encrypted | İlerleme çubuğu kullanıcı arayüzü, şifrelemenin başarısız olduğunu belirten bir mesaj görüntülemeli ve kullanıcıya cihazı fabrika ayarlarına sıfırlama seçeneği sunmalıdır. |
vold.encrypt_progress error_reboot_failed | İlerleme çubuğu kullanıcı arayüzünde şifrelemenin tamamlandığını belirten bir mesaj görüntülemeli ve kullanıcıya cihazı yeniden başlatması için bir düğme verilmelidir. Bu hatanın gerçekleşmesi beklenmiyor. |
vold.encrypt_progress error_not_encrypted | İlerleme çubuğu kullanıcı arayüzünde bir hata oluştuğunu, hiçbir verinin şifrelenmediğini veya kaybolmadığını belirten bir mesaj görüntülemeli ve kullanıcıya sistemi yeniden başlatması için bir düğme verilmelidir. |
vold.encrypt_progress error_shutting_down | İlerleme çubuğu kullanıcı arayüzü çalışmıyor, dolayısıyla bu hataya kimin yanıt vereceği belli değil. Ve ne olursa olsun bu asla olmamalı. |
vold.post_fs_data_done 0 | vold.decrypt trigger_post_fs_data olarak ayarlamadan hemen önce vold tarafından ayarlayın. |
vold.post_fs_data_done 1 | post-fs-data görevini tamamladıktan hemen sonra init.rc veya init.rc tarafından ayarlanır. |
başlangıç özellikleri
Mülk | Tanım |
---|---|
ro.crypto.fs_crypto_blkdev | Daha sonra vold command restart tarafından kullanılmak üzere vold checkpw komutuyla ayarlanır. |
ro.crypto.state unencrypted | init tarafından bu sistemin şifrelenmemiş /data ro.crypto.state encrypted ile çalıştığını belirtmek için ayarlanır. Bu sistemin şifrelenmiş bir /data ile çalıştığını söylemek için init tarafından ayarlanır. |
| Bu beş özellik, init tarafından /data init.rc iletilen parametrelerle bağlamaya çalıştığında ayarlanır. vold bunları kripto eşlemesini ayarlamak için kullanır. |
ro.crypto.tmpfs_options | init.rc tarafından, init'in tmpfs /data dosya sistemini bağlarken kullanması gereken seçeneklerle birlikte ayarlanır. |
Eylemleri başlat
on post-fs-data on nonencrypted on property:vold.decrypt=trigger_reset_main on property:vold.decrypt=trigger_post_fs_data on property:vold.decrypt=trigger_restart_min_framework on property:vold.decrypt=trigger_restart_framework on property:vold.decrypt=trigger_shutdown_framework on property:vold.decrypt=trigger_encryption on property:vold.decrypt=trigger_default_encryption