Tam Disk Şifreleme

.

Tam disk şifreleme, bir Android cihazdaki tüm kullanıcı verilerinin şifrelenmiş anahtar. Bir cihaz şifrelendiğinde, kullanıcı tarafından oluşturulan tüm veriler diske ve tüm okumalara uygulamadan önce otomatik olarak şifrelenir çağrı işlemine döndürmeden önce verilerin şifresini otomatik olarak çözer.

Tam disk şifreleme, Android 4.4 sürümünde kullanıma sunulmuştur ancak Android 5.0 kullanıma sunulmuştur. şu yeni özellikleri kullanın:

  • Yalnızca veri bölümünde kullanılan blokları şifreleyen hızlı şifreleme oluşturuldu uzun sürmesini önlemek için otomatik olarak devreye girer. Yalnızca ext4 ve f2fs dosya sistemleri şu anda hızlı şifrelemeyi desteklemektedir.
  • forceencrypt eklendi fstab flag'ini kullanın.
  • Şifresiz kalıplar ve şifreleme için destek eklendi.
  • Güvenilir kullanılarak şifreleme anahtarı için donanım destekli depolama alanı eklendi Yürütme ortamının (TEE) imzalama özelliği (TrustZone gibi). Daha fazla bilgi için Şifrelenmiş anahtarı depolama bölümüne bakın. bolca fırsat sunuyor.

Dikkat: Android 5.0 ve ardından yeni sürüme geçirilen cihazlar fabrika verilerine sıfırlama işlemiyle şifrelenmemiş bir duruma döndürülebilir. Yeni Android 5.0 ilk başlatma sırasında şifrelenen cihazlar şifrelenmemiş duruma döndürülemez.

Android tam disk şifrelemesinin işleyiş şekli

Android tam disk şifrelemesi, bir çekirdek olan dm-crypt temel alınarak oluşturulur. engelleme cihazı katmanında çalışan özelliklerdir. Bunun nedeni: Şifreleme, Embedded MultiMediaCard (eMMC) ile ve kendisini blok olarak gösteren benzer flash cihazları cihazlar. Doğrudan ham ile iletişim kuran YAFFS ile şifreleme mümkün değildir NAND flash çipi.

Şifreleme algoritması, 128 Gelişmiş Şifreleme Standardı'dır (AES). şifreli blok zincirleme (CBC) ve ESSIV:SHA256. Ana anahtar, şununla şifrelenmiştir: OpenSSL kitaplığına yapılan çağrılar aracılığıyla 128 bit AES. Veri analizi için 128 bit veya daha fazla (256 isteğe bağlıdır).

Not: OEM'ler ana anahtarı şifrelemek için 128 bit veya daha yüksek bir sürüm kullanabilir.

Android 5.0 sürümünde dört tür şifreleme durumu vardır:

  • varsayılan
  • PIN
  • şifre
  • desen

İlk başlatmadan sonra, cihaz rastgele oluşturulmuş 128 bitlik bir ana anahtar oluşturur ardından varsayılan bir şifre ve saklanan takviye değer ile karma oluşturma işlemi uygular. Varsayılan şifre şöyledir: "default_password" Ancak sonuçta elde edilen karma, bir TEE (ör. TrustZone) aracılığıyla da imzalanır. ana anahtarı şifrelemek için bir imza karması kullanır.

Android Açık Kaynak Projesi'nde tanımlanan varsayılan şifreyi bulabilirsiniz: cryptfs.cpp dosyası olarak kaydedebilirsiniz.

Kullanıcı, cihazda PIN/şifre veya şifre ayarladığında yalnızca 128 bit anahtar yeniden şifrelenip depolanır. (yani kullanıcı PIN/kart/desen değişiklikleri kullanıcı verilerinin yeniden şifrelenmesi.) Lütfen yönetilen cihaz PIN, desen veya şifre kısıtlamalarına tabi olabilir.

Şifreleme init ve vold tarafından yönetiliyor. init, vold yöntemini çağırır ve ses, özellikleri tetikleyecek şekilde ayarlar etkinliklerdir. Sistemin diğer bölümleri Ayrıca, raporlama durumu, proje başlatma belgesi, şifre veya önemli bir hata durumunda fabrika ayarlarına sıfırlama istemini görebilirsiniz. Çağırmak için şifreleme özelliklerini vold içine aldığınızda sistem, komut satırı aracını vdc adlı çocuğun cryptfs komutları: checkpw, restart, enablecrypto, changepw, cryptocomplete, verifypw, setfield, getfield, mountdefaultencrypted, getpwtype, getpw ve clearpw.

/data içeriğini şifrelemek, şifresini çözmek veya temizlemek için /data monte edilmemelidir. Ancak herhangi bir kullanıcı arayüzünü (UI) göstermek için ve çerçevenin çalışması için /data gerekir. Alıcı: bu sorunu çözerseniz /data cihazına geçici bir dosya sistemi eklenir. Bu şekilde Android, şifre isteyebilir, ilerleme durumunu gösterebilir veya veri önerebilir silin. E-postadan başka bir sayfaya geçebilmek için geçici dosya sistemini gerçek /data dosya sistemine kaydederse sistem geçici dosya sistemindeki açık dosyalar içeren her işlemi durdurun ve bu işlemleri yeniden başlatın diğer /data dosya sistemi üzerindedir. Bunun için tüm hizmetler şu üç gruptan birinde olmalıdır: core, main ve late_start.

  • core: Başlattıktan sonra hiçbir zaman kapatmayın.
  • main: Diski kapatıp disk şifresi girildikten sonra yeniden başlatın.
  • late_start: /data şifresi çözülüp eklenene kadar başlamaz.

Bu işlemleri tetiklemek için vold.decrypt özelliği çeşitli dizeler kullanın. Hizmetleri sonlandırmak ve yeniden başlatmak için init komutları şu şekildedir:

  • 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 SVC_DISABLED işareti ekler. Durdurulan hizmetler class_start yanıt vermiyor.

Akışlar

Şifrelenmiş bir cihaz için dört akış vardır. Bir cihaz yalnızca bir kez şifrelenir ve ardından normal bir başlatma akışı izler.

  • Daha önce şifrelenmemiş bir cihazı şifreleme:
    • Yeni bir cihazı forceencrypt ile şifreleyin: Zorunlu şifreleme (Android L sürümünden itibaren)
    • Mevcut bir cihazı şifreleme: Kullanıcı tarafından başlatılan şifreleme (Android K ve önceki sürümler).
  • Şifrelenmiş bir cihazı başlatın:
    • Şifrelenmiş bir cihazı şifre kullanmadan başlatma: Şu özelliklere sahip şifrelenmiş bir cihazı başlatma: oluşturulmuş şifresine sahip olmamalıdır (Android 5.0 ve sonraki sürümleri çalıştıran cihazlar için geçerlidir).
    • Şifrelenmiş bir cihazı şifreyle başlatma: Şu özelliklere sahip şifrelenmiş bir cihazı başlatma: belirlenmiş bir şifreye sahip.

Cihaz bu akışlara ek olarak /data öğesini şifrelemeyebilir. Akışların her biri aşağıda ayrıntılı olarak açıklanmıştır.

Yeni bir cihazı zorla şifreleme ile şifreleme

Bu, Android 5.0 cihazın normal ilk başlatma işlemidir.

  1. Şifrelenmemiş dosya sistemini forceencrypt işaretiyle algıla

    /data şifrelenmedi ancak forceencrypt tarafından zorunlu kılındığı için şifrelenmesi gerekiyor. /data bağlantısını kesin.

  2. /data alanını şifrelemeye başla

    vold.decrypt = "trigger_encryption", init.rc işlemini tetikler, Bu durumda vold, /data öğesini şifre olmadan şifrelemesine neden olur. (Bu yeni bir cihaz olması gerektiği için hiçbiri ayarlanmadı.)

  3. Tmpfs'leri ekle

    vold, bir .mpfs /data ekler ( ro.crypto.tmpfs_options) ile vold.encrypt_progress özelliğini 0 olarak ayarlar. vold, geçici bir sistemi /data başlatmaya hazırlar ve vold.decrypt mülkü için: trigger_restart_min_framework

  4. İlerlemeyi göstermek için bir çerçeve oluşturma

    Cihazda şifrelenecek veri miktarı neredeyse hiç olmadığı için ilerleme çubuğu genellikle şifreleme çok hızlı gerçekleştiği için görünmez. Görüntüleyin Daha fazlası için mevcut bir cihazı şifreleyin kullanıcı arayüzüyle ilgili ayrıntıları paylaşacağım.

  5. /data şifrelendiğinde çerçeveyi kaldırın

    vold, vold.decrypt alanını şu şekilde ayarlıyor: trigger_default_encryption defaultcrypto hizmet. (Bu işlem, bir alt kümeyi monte etmek için aşağıdaki akışı varsayılan şifrelenmiş kullanıcı verileri.) trigger_default_encryption, /data için bir şifreleme anahtarı ile veya onsuz şifrelenip şifrelenmediğini şifre. Android 5.0 cihazlar ilk başlatmada şifrelendiğinden, şifre oluşturulmamış olmalıdır; bu nedenle şifresini çözer ve /data öğesini ekleriz.

  6. /data ekle

    init, daha sonra şunu kullanarak bir geçici hedef RAMDisk'e /data ekler: daha önce ayarlanmış olan ro.crypto.tmpfs_options parametresinden aldığı init.rc içinde.

  7. Çerçeveyi başlat

    vold, vold.decrypt alanını şu şekilde ayarlıyor: trigger_restart_framework, normal başlatma işlemine devam eder bahsedeceğim.

Mevcut bir cihazı şifreleme

Şifrelenmemiş bir Android K veya önceki sürümleri şifrelediğinizde bu olur. cihaz L'ye taşındı.

Bu işlem kullanıcı tarafından başlatılır ve "yerinde şifreleme" olarak adlandırılır ve kod. Kullanıcı bir cihazı şifrelemeyi seçtiğinde kullanıcı arayüzü, pil tam olarak şarj edilmiş ve AC adaptörü takılı olduğundan yeterli şifreleme işlemini tamamlaması gerekir.

Uyarı: Cihazın gücü biterse ve cihaz tamamlanmadan kapanırsa şifreleniyorsa, dosya verileri kısmen şifrelenmiş durumda bırakılır. Cihaz, fabrika ayarlarına sıfırlanmaz ve tüm veriler kaybolur.

Yer içi şifrelemeyi etkinleştirmek için vold, her birini okuyacak bir döngü başlatır sektöründeki verileri analiz ederek Crystal, oldukça popüler. vold, belirli bir sektörün mevcut olup olmadığını kontrol eder. yardımcı olur, bu da okumadan ve yazmadan bir cihazda şifreleme yöntemini çok daha hızlı bir şekilde ayarlayabilirsiniz.

Cihazın durumu: ro.crypto.state = "unencrypted" olarak ayarlayın ve başlatmaya devam etmek için on nonencrypted init tetikleyicisini yürütün.

  1. Şifreyi kontrol edin

    Kullanıcı arayüzü, cryptfs enablecrypto inplace komutunu kullanarak vold öğesini çağırır Burada passwd, kullanıcının kilit ekranı şifresidir.

  2. Çerçeveyi kaldırmak

    vold hataları kontrol eder, şifrelenemiyorsa -1 değerini döndürür ve günlüğe bir neden yazdırır. Şifreleyebiliyorsa vold.decrypt özelliğini ayarlar. Hedef: trigger_shutdown_framework. Bu, init.rc adlı çocuğun late_start ve main sınıflarında hizmetleri durdur.

  3. Şifreleme altbilgisi oluşturma
  4. İçerik haritası dosyası oluşturma
  5. Yeniden başlat
  6. İçerik haritası dosyasını algılama
  7. /data alanını şifrelemeye başla

    Ardından vold, sanal bir şifreleme bloku cihazı oluşturan kripto eşlemesini ayarlar gerçek blok cihazla eşlenen ancak yazıldığı sırada her bir kesimi şifreleyen ve okunduğunda her bir sektörün şifresini çözer. vold, ardından oluşturur ve yazar kripto meta verilerini çıkarmanız gerekir.

  8. Şifrelenirken geçici dosya depolama alanınızı ekleyin

    vold, geçici dosya (tmpfs) seçeneklerini kullanarak /data ekler ro.crypto.tmpfs_options öğesinden) ve özelliği ayarlar vold.encrypt_progress olan değer 0 olarak değiştirildi. vold geçici dosyaları hazırlar Şifrelenmiş bir sistemi başlatmak ve özelliği ayarlamak için /data vold.decrypt - trigger_restart_min_framework

  9. İlerlemeyi göstermek için bir çerçeve oluşturma

    trigger_restart_min_framework neden init.rc main hizmet sınıfını başlat. Çerçeve, bu çerçeveyi vold.encrypt_progress değeri 0 olarak ayarlandığında ilerleme çubuğu görünür Her beş saniyede bir özelliği sorgulayan ve ilerleme çubuğunu güncelleyen kullanıcı arayüzü. Şifreleme döngüsü, her seferinde vold.encrypt_progress olarak güncellenir. bölümün başka bir yüzdesini şifreler.

  10. /data şifrelendiğinde, şifreleme altbilgisini güncelleyin

    /data başarıyla şifrelendiğinde vold temizlenir meta verideki ENCRYPTION_IN_PROGRESS işaretini kullanır.

    Cihazın kilidi başarıyla açıldığında şifre şu amaçlarla kullanılır: ana anahtarı şifrelemek ve şifreleme altbilgisi güncellenir.

    Yeniden başlatma herhangi bir nedenle başarısız olursa vold özelliği ayarlar vold.encrypt_progress - error_reboot_failed ve kullanıcı arayüzünde, kullanıcının cihazından tekrar başlat. Bunun hiçbir zaman meydana gelmesi beklenmez.

Şifrelenmiş bir cihaz varsayılan şifrelemeyle başlatılıyor

Şifrelenmiş bir cihazı şifre kullanmadan başlattığınızda bu olur. Android 5.0 cihazlar ilk başlatmada şifrelendiği için herhangi bir ayar yapılmamalıdır Bu nedenle, varsayılan şifreleme durumu budur.

  1. Şifresiz, şifrelenmiş /data öğesini algıla

    Android cihazın şifrelenmiş olduğu belirlendi. Bunun nedeni: /data değeri eklenmez ve encryptable veya flag'lerinden biri forceencrypt ayarlandı.

    vold, vold.decrypt alanını şu şekilde ayarlıyor: trigger_default_encryption, başlatılacak. defaultcrypto hizmet. trigger_default_encryption. /data ile şifrelenmiş olup olmadığını görmek için şifreleme türünü kontrol eder. bu işlemi yapabilirsiniz.

  2. /verilerin şifresini çözme

    Cihazın blok cihaz üzerinde oluşturulması için dm-crypt cihazı kullanıma hazır.

  3. /data ekle

    vold, daha sonra şifresi çözülmüş gerçek /data bölümünü ekler ve yeni bölümü hazırlar. Mülkü ayarlar. vold.post_fs_data_done değerini 0 olarak belirler, ardından vold.decrypt değerini ayarlar alıcı: trigger_post_fs_data. Bu, init.rc tarayıcısının çalışmasına neden olur post-fs-data komutları. Gerekli dizinleri oluşturacaktır veya bağlantıları kullanıp vold.post_fs_data_done değerini 1 olarak ayarlayın.

    vold bu mülkteki 1 değerini gördüğünde özelliği ayarlar vold.decrypt alıcı: trigger_restart_framework. Bu init.rc adlı kullanıcının main sınıfında hizmetleri başlatmasına neden olur ve ayrıca ilk olarak late_start sınıfında hizmetleri başlatır geçen süre.

  4. Çerçeveyi başlat

    Şimdi çerçeve, şifresi çözülmüş /data öğesini kullanarak tüm hizmetlerini başlatıyor ve hazır olduğundan emin olun.

Şifrelenmiş bir cihazı varsayılan şifreleme olmadan başlatma

Şifrelenmiş bir cihazı başlattığınızda veya şifre. Cihazın şifresi bir PIN, desen veya şifre olabilir.

  1. Şifreyle şifrelenmiş cihazı algılama

    Bayrak simgesi nedeniyle Android cihazın şifrelenmiş olduğunu algılama ro.crypto.state = "encrypted".

    vold, vold.decrypt alanını şu şekilde ayarlıyor: trigger_restart_min_framework, çünkü /data bir şifre ile şifrelenmiştir.

  2. Tmpfs'leri ekle

    init, ilk ekleme seçeneklerini kaydetmek için beş özellik ayarlar init.rc öğesinden geçirilen parametrelerle /data için verildi. vold, kripto eşlemeyi ayarlamak için şu özellikleri kullanır:

    1. ro.crypto.fs_type
    2. ro.crypto.fs_real_blkdev
    3. ro.crypto.fs_mnt_point
    4. ro.crypto.fs_options
    5. ro.crypto.fs_flags (Başında 0x olan 8 haneli onaltılık ASCII sayısı)
  3. Şifre istemi çerçevesini başlat

    Çerçeve başlar ve vold.decrypt değerinin trigger_restart_min_framework. Bu, çerçeveye Tmpfs /data diskinde başlatılıyor ve kullanıcı şifresini alması gerekiyor.

    Ancak öncelikle, diskin düzgün şekilde şifrelendiğinden emin olması gerekir. Google cryptfs cryptocomplete komutunu vold adresine gönderir. vold, şifreleme başarıyla tamamlandıysa 0, dahili hata için -1 veya Şifreleme başarıyla tamamlanmadıysa -2. vold belirler CRYPTO_ENCRYPTION_IN_PROGRESS için kripto meta verilerine bakarak bunu tıklayın. Bu parametre ayarlanmışsa şifreleme işlemi kesintiye uğramıştır ve cihazdaki kullanılabilir verilerdir. vold bir hata döndürürse kullanıcı arayüzünün kullanıcıya cihazı yeniden başlatıp fabrika ayarlarına sıfırlaması ve kullanıcıya basması için bir düğmeye basın.

  4. Verilerin şifresini şifreyle çözme

    cryptfs cryptocomplete başarılı olduğunda çerçeve disk şifresini soran bir kullanıcı arayüzü gösterir. Kullanıcı arayüzü, şifreyi cryptfs checkpw komutu vold adresine gönderiliyor. Öğe doğru olduğundan emin olun (bu, /data kodunun geçici bir konumda şifresini çözdükten sonra bağlantısını kestiyse vold, mülkündeki şifresi çözülmüş blok cihazın adını kaydeder ro.crypto.fs_crypto_blkdev ve kullanıcı arayüzüne 0 durumunu döndürür. Öğe şifre yanlışsa kullanıcı arayüzüne -1 değerini döndürür.

  5. Çerçeveyi durdurma

    Kullanıcı arayüzü bir kripto başlatma grafiği oluşturur ve ardından vold öğesini cryptfs restart komutunu kullanın. vold özelliği ayarlar vold.decrypt olan trafik trigger_reset_main değerine ayarlanır, bu da neden olur init.rc tarihinde class_reset main yapılacak. Bu işlem tüm hizmetleri durdurur bu işlem, /data geçici dosya depolama öğelerinin (tmpfs) kaldırılmasına olanak tanır.

  6. /data ekle

    vold, daha sonra şifresi çözülmüş gerçek /data bölümünü ekler ve yeni bölümü hazırlar (bu bölüm, bu özellik, ilk sürümde desteklenmeyen silme seçeneğiyle şifrelendi. . vold.post_fs_data_done özelliğini 0 olarak ayarlar ve ardından vold.decrypt, trigger_post_fs_data olarak ayarlanıyor. Bu durum, post-fs-data komutlarını çalıştırmak için init.rc tuşlarına basın. Kendisi gerekli dizinleri veya bağlantıları oluşturun ve ardından vold.post_fs_data_done - 1. vold, 1 vold.decrypt özelliğini trigger_restart_framework. Bu, init.rc ürününün başlatılmasına neden olur. hizmetleri main sınıfında tekrar ele alır ve sınıfta hizmet başlatır Açılıştan beri ilk kez late_start.

  7. Tam çerçeveyi başlat

    Şimdi çerçeve, şifresi çözülmüş /data anahtarını kullanarak tüm hizmetlerini başlatıyor ve sistemin kullanıma hazır olmasını sağlayın.

Başarısız

Şifresini çözemeyen bir cihazın birkaç nedeni olabilir. Cihaz şu normal adım dizisiyle başlar:

  1. Şifreyle şifrelenmiş cihazı algıla
  2. Geçici dosya depolama noktası
  3. Şifre istemek için çerçeveyi başlat

Ancak çerçeve açıldıktan sonra cihaz bazı hatalarla karşılaşabilir:

  • Şifre eşleşiyor ancak verilerin şifresini çözemiyor
  • Kullanıcı 30 kez yanlış şifre girer

Bu hatalar çözülmezse kullanıcıdan fabrika ayarlarına temizlemesini isteyin:

vold şifreleme işlemi sırasında bir hata algılarsa ve henüz hiçbir veri yok edilmedi ve çerçeve oluşturuldu, vold küme error_not_encrypted mülkündeki vold.encrypt_progress mülkü. Kullanıcı arayüzü, kullanıcıdan yeniden başlatmasını ister ve şifreleme işlemiyle ilgili uyarı verir. hiç başlamadı. Hata, çerçeve yıkıldıktan sonra ortaya çıkıyorsa ancak sistem vold, ilerleme çubuğu kullanıcı arayüzü yüklenmeden sistemi yeniden başlatır. Eğer yeniden başlatma başarısız olursa vold.encrypt_progress, error_shutting_down ve -1 değerini döndürür; ama herhangi bir değişiklik tıklayın. Bunun olması beklenmez.

vold şifreleme işlemi sırasında bir hata algılarsa vold.encrypt_progress-error_partially_encrypted ve -1 değerini döndürür. Kullanıcı arayüzünde şifrelemeyi belirten bir mesaj gösterilir. kullanıcının cihazı fabrika ayarlarına sıfırlaması için bir düğme sağlar.

Şifrelenmiş anahtarı depolama

Şifrelenmiş anahtar, şifreleme meta verilerinde depolanır. Donanım desteği: Güvenilir Yürütme Ortamı'nın (TEE) imzalama özelliği kullanılarak uygulanır. Daha önce ana anahtarı, scrypt uygulayarak oluşturulan bir anahtarla şifreliyorduk ve saklanan güvenlik açığına kaydedilir. Anahtarı esnek bir yapıda emin olmak için, elde edilen anahtarı imzalayarak bu algoritmayı gizli TEE anahtarı kullanır. Elde edilen imza uygun bir imzaya dönüştürülür. uzunluk anahtarı bir kez daha uygulanır. Bu anahtar, daha sonra ve ana anahtarın şifresini çözer. Bu anahtarı depolamak için:

  1. Rastgele 16 baytlık disk şifreleme anahtarı (DEK) ve 16 baytlık takviye oluşturun.
  2. 32 baytlık ara kod oluşturmak için kullanıcı şifresine ve takviye değere sşifreleme uygulayın anahtar 1'i (IK1) tıklayın.
  3. IK1'i donanıma bağlı özel anahtarın (HBK) boyutuna sıfır baytla doldurun. Özellikle, şu şekilde doldurulur: 00 || İK1 || 00..00; bir sıfır bayt, 32 IK1 bayt, 223 sıfır bayt.
  4. 256 bayt IK2 üretmek için IK1'i HBK ile imzalayın.
  5. 32 bayt IK3 oluşturmak için IK2'ye şifreleme ve tuz (2. adımla aynı takviye) uygulayın.
  6. IK3'ün ilk 16 baytını KEK, son 16 baytını IV olarak kullanın.
  7. DEK'yi AES_CBC, anahtar KEK ve başlatma vektörü IV ile şifreleyin.

Şifreyi değiştirme

Bir kullanıcı, ayarlarında şifresini değiştirmeyi veya kaldırmayı seçtiğinde kullanıcı arayüzü, cryptfs changepw komutunu vold komutuna ve vold, disk ana anahtarını yeni şifreyle yeniden şifreler.

Şifreleme özellikleri

vold ve init birbirleriyle iletişim kurmak için ayar özellikleri. Şifreleme için kullanılabilen özelliklerin listesini aşağıda bulabilirsiniz.

Hacim özellikleri

Özellik Açıklama
vold.decrypt trigger_encryption Sürücüyü şifre.
vold.decrypt trigger_default_encryption Şifre kullanılmadan şifrelenip şifrelenmediğini görmek için sürücüyü kontrol edin. Varsa şifresini çözüp ekleyin, else vold.decrypt öğesini, trigger_restart_min_framework olarak ayarlayın.
vold.decrypt trigger_reset_main Disk şifresini isteyen kullanıcı arayüzünü kapatmak için vold tarafından ayarlandı.
vold.decrypt trigger_post_fs_data /data için gerekli dizinleri ve diğer bilgileri hazırlamak üzere hacim tarafından ayarlandı
vold.decrypt trigger_restart_framework Gerçek çerçeveyi ve tüm hizmetleri başlatmak için gönüllü olarak belirleyin.
vold.decrypt trigger_shutdown_framework Şifrelemeyi başlatmak için tam çerçeveyi kapatmak üzere gönüllü tarafından ayarlandı.
vold.decrypt trigger_restart_min_framework şifreleme için ilerleme çubuğu kullanıcı arayüzü şifre istemi veya ro.crypto.state değerine ayarlanır.
vold.encrypt_progress Çerçeve başladığında Bu özellik ayarlanmışsa olduğunu görebilirsiniz.
vold.encrypt_progress 0 to 100 İlerleme çubuğu kullanıcı arayüzü ayarlanan yüzde değerini görüntüleyin.
vold.encrypt_progress error_partially_encrypted İlerleme çubuğunun kullanıcı arayüzünde, şifrelemenin başarısız olduğunu belirten bir mesaj görüntülenir ve kullanıcıya o sırada cihazı fabrika ayarlarına sıfırlayın.
vold.encrypt_progress error_reboot_failed İlerleme çubuğunun kullanıcı arayüzünde şifreleme yazan bir mesaj gösterilir. kullanıcıya cihazı yeniden başlatması için bir düğme verin. Bu hata beklenmiyor.
vold.encrypt_progress error_not_encrypted İlerleme çubuğu kullanıcı arayüzü hata belirten bir mesaj görüntüle hiçbir veri şifrelenmemişse veya şifrelenmemişse kullanıcıya sistemi yeniden başlatması için bir düğme verin.
vold.encrypt_progress error_shutting_down İlerleme çubuğu kullanıcı arayüzü çalışmadığından kimin yanıt vereceği belirsiz bu hataya gider. Zaten böyle bir durum da olmamalıdır.
vold.post_fs_data_done 0 vold.decrypt ayarından hemen önce vold tarafından ayarlandı alıcı: trigger_post_fs_data.
vold.post_fs_data_done 1 init.rc veya init.rc, post-fs-data görevini tamamladıktan hemen sonra.

başlatma özellikleri

Özellik Açıklama
ro.crypto.fs_crypto_blkdev Daha sonra kullanmak üzere vold komutu checkpw tarafından ayarlandı vold komutuyla restart belirleyebilirsiniz.
ro.crypto.state unencrypted init tarafından, bu sistemin şifrelenmemiş bir cihazla çalıştığını belirtmek için ayarlandı /data ro.crypto.state encrypted. init tarafından şu şekilde ayarlandı: bu sistem şifrelenmiş bir /data ile çalışıyor.

ro.crypto.fs_type
ro.crypto.fs_real_blkdev
ro.crypto.fs_mnt_point
ro.crypto.fs_options
ro.crypto.fs_flags

Bu beş özellik, /data öğesini şuradan geçirilen parametrelerle eklemeye çalıştığında: init init.rc. vold, kripto eşlemeyi ayarlamak için bunları kullanır.
ro.crypto.tmpfs_options init.rc tarafından, ilk e-postanın şu durumlarda kullanması gereken seçeneklerle ayarlandı: geçici dosya sistemi /data dosya sistemi ekleniyor.

Başlatma işlemleri

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