Full-disk encryption is het proces van coderen van alle gebruikersgegevens op een Android toestel met behulp van een versleutelde sleutel. Zodra een apparaat is versleuteld, worden alle door de gebruiker gemaakte gegevens automatisch versleuteld voordat ze op schijf worden vastgelegd en alle gelezen gegevens worden automatisch ontsleuteld voordat ze worden teruggestuurd naar het aanroepende proces.
Volledige-schijfversleuteling werd geïntroduceerd in Android in 4.4, maar Android 5.0 introduceerde de volgende nieuwe functies:
- Snelle versleuteling, die alleen gebruikte blokken op de gegevenspartitie versleutelt om te voorkomen dat het eerste opstarten veel tijd in beslag neemt. Alleen ext4 en f2fs bestandssystemen ondersteunen op dit moment snelle encryptie.
- De
forceencrypt
fstab vlag is toegevoegd om te versleutelen bij de eerste boot. - Ondersteuning toegevoegd voor patronen en encryptie zonder wachtwoord.
- Hardware-gebaseerde opslag van de versleutelingssleutel toegevoegd met behulp van de TEE (Trusted Execution Environment) ondertekeningsmogelijkheid (zoals in een TrustZone). Zie De gecodeerde sleutel opslaan voor meer details.
Voorzichtig: Apparaten die zijn geüpgraded naar Android 5.0 en vervolgens zijn geëncrypteerd, kunnen worden teruggezet naar een niet-geëncrypteerde staat door de fabrieksgegevens te resetten. Nieuwe Android 5.0-apparaten die bij de eerste keer opstarten zijn versleuteld, kunnen niet worden teruggezet naar een onversleutelde status.
- Hoe Android full-disk encryptie werkt
- Flows
- Encrypt een nieuw apparaat met forceencrypt
- Versleutel een bestaand apparaat
- Opstarten van een versleuteld apparaat met standaard encryptie
- Opstarten van een versleuteld apparaat zonder standaard encryptie
- Failure
- Opslaan van de versleutelde sleutel
- Wachtwoord veranderen
- Encryptie-eigenschappen
- Voldoende eigenschappen
- init properties
- Init acties
Hoe Android full-disk encryptie werkt
Android full-disk encryptie is gebaseerd op dm-crypt
, wat een kernelfeature is die werkt op de blokapparaatlaag. Hierdoor werkt versleuteling met Embedded MultiMediaCard (eMMC) en soortgelijke flash-apparaten die zich aan de kernel presenteren als blockdevices. Encryptie is niet mogelijk met YAFFS, die direct praat met een rawNAND flash chip.
Het versleutelingsalgoritme is 128 Advanced Encryption Standard (AES) met codeer-blok-ketting (CBC) en ESSIV:SHA256. De hoofdsleutel wordt versleuteld met128-bit AES via aanroepen naar de OpenSSL bibliotheek. U moet 128 bits of meer gebruiken voor de sleutel (256 is optioneel).
Note: OEM’s kunnen 128-bit of hoger gebruiken om de master key te versleutelen.
In de Android 5.0 release, zijn er vier soorten van encryptie staten:
- default
- PIN
- password
- pattern
Bij de eerste keer opstarten maakt het apparaat een willekeurig gegenereerde 128-bits hoofdsleutel en hashes deze vervolgens met een standaard wachtwoord en opgeslagen zout. Het standaard wachtwoord is: “default_password “Echter, de resulterende hash is ook ondertekend door een TEE (zoals TrustZone), die een hash van de handtekening gebruikt om de master key te versleutelen.
U kunt het standaard wachtwoord vinden gedefinieerd in het Android Open Source Project cryptfs.cppfile.
Wanneer de gebruiker de PIN/pass of wachtwoord op het apparaat instelt, wordt alleen de 128-bit sleutel opnieuw versleuteld en opgeslagen. (d.w.z.. PIN/wachtwoord/patroonwijzigingen van de gebruiker veroorzaken GEEN herversleuteling van de gebruikersgegevens.) Merk op dat het beheerde apparaat onderworpen kan zijn aan PIN-, patroon- of wachtwoordbeperkingen.
Encryptie wordt beheerd door init
en vold
.init
roept vold
aan, en vold stelt eigenschappen in om gebeurtenissen in init te triggeren. Andere delen van het systeem kijken ook naar de eigenschappen om taken uit te voeren zoals status melden, om een wachtwoord vragen, of vragen om een fabrieksreset in het geval van een fatale fout. Om encryptie-functies in vold
aan te roepen, gebruikt het systeem de cryptfs
-commando’s van het commandoregelprogrammavdc
: checkpw
,restart
, enablecrypto
, changepw
,cryptocomplete
, verifypw
, setfield
,getfield
, mountdefaultencrypted
, getpwtype
,getpw
, en clearpw
.
Om /data
te versleutelen, te ontsleutelen of te wissen, moet /data
niet zijn gemount. Echter, om een gebruikersinterface (UI) te tonen, moet het raamwerk starten en het raamwerk heeft /data
nodig om te draaien. Om dit raadsel op te lossen, wordt een tijdelijk bestandssysteem aangekoppeld op /data
. Dit laat Android toe om te vragen naar wachtwoorden, vooruitgang te tonen, of een datawipe voor te stellen indien nodig. Het legt wel de beperking op dat om over te schakelen van het tijdelijke bestandssysteem naar het echte /data
bestandssysteem, het systeem elk proces met open bestanden op het tijdelijke bestandssysteem moet stoppen en deze processen opnieuw moet opstarten op het echte /data
bestandssysteem. Om dit te doen, moeten alle services in een van de drie groepen zitten: core
, main
, enlate_start
.
-
core
: Nooit afsluiten na opstarten. -
main
: Afsluiten en dan opnieuw opstarten nadat het schijfwachtwoord is ingevoerd. -
late_start
: Start pas nadat/data
is gedecodeerd en gemount.
Om deze acties te triggeren, is de vold.decrypt
eigenschap ingesteld op verschillende strings.Om services te doden en opnieuw te starten, zijn de init
commando’s:
-
class_reset
: Stopt een service maar staat toe dat het opnieuw wordt gestart met class_start. -
class_start
: Start een service opnieuw op. -
class_stop
: Stopt een dienst en voegt eenSVC_DISABLED
vlag toe. Gestopte services reageren niet opclass_start
.
Flows
Er zijn vier flows voor een gecodeerd apparaat. Een apparaat wordt slechts eenmaal versleuteld en volgt daarna een normale boot flow.
- Versleutel een apparaat dat nog niet versleuteld is:
- Sleutel een nieuw apparaat met
forceencrypt
: Verplichte versleuteling bij eerste opstart (vanaf Android L). - Versleutel een bestaand apparaat: Door gebruiker geïnitieerde versleuteling (Android K en eerder).
- Sleutel een nieuw apparaat met
- Boot een gecodeerd apparaat:
- Opstarten van een gecodeerd apparaat zonder wachtwoord: Opstarten van een gecodeerd apparaat waarvoor geen wachtwoord is ingesteld (relevant voor apparaten met Android 5.0 en later).
- Opstarten van een gecodeerd apparaat met een wachtwoord: opstarten van een gecodeerd apparaat met een ingesteld wachtwoord.
Naast deze stromen kan het apparaat ook niet /data
versleutelen.Elk van de stromen wordt hieronder in detail uitgelegd.
Encrypt een nieuw apparaat met forceencrypt
Dit is de normale eerste boot voor een Android 5.0 apparaat.
- Detecteer onversleuteld bestandssysteem met
forceencrypt
vlag/data
is niet versleuteld maar moet dat zijn omdatforceencrypt
het verplicht stelt.Unmount/data
. - Start encryptie
/data
vold.decrypt = "trigger_encryption"
triggersinit.rc
, dievold
zal veroorzaken om/data
te encrypten zonder wachtwoord.(Geen is ingesteld omdat dit een nieuw apparaat moet zijn.) - Mount tmpfs
vold
mount een tmpfs/data
(met de tmpfs opties vanro.crypto.tmpfs_options
) en stelt de eigenschapvold.encrypt_progress
in op 0.vold
prepeares de tmpfs/data
voor het booten van een gecodeerd systeem en stelt de eigenschapvold.decrypt
in op:trigger_restart_min_framework
- Toon kader om voortgang te tonen
Omdat het apparaat vrijwel geen gegevens heeft om te versleutelen, zal de voortgangsbalk vaak niet echt verschijnen omdat het versleutelen zo snel gaat. Zie Een bestaand apparaat versleutelen voor meer details over de voortgangs UI.
- Wanneer
/data
is versleuteld, haalt u het frameworkvold
naar beneden en zetvold.decrypt
optrigger_default_encryption
waardoor dedefaultcrypto
service wordt gestart. (Dit start de onderstaande stroom voor het monteren van standaard gecodeerde gebruikersgegevens.)trigger_default_encryption
controleert het coderingstype om te zien of/data
is gecodeerd met of zonder wachtwoord. Omdat Android 5.0 apparaten versleuteld zijn bij de eerste keer opstarten, zou er geen wachtwoord ingesteld moeten zijn; daarom ontsleutelen en mounten we/data
. - Mount
/data
init
mounten dan/data
op een tmpfs RAMDisk met parameters die het oppikt vanro.crypto.tmpfs_options
, die ingesteld is ininit.rc
. - Start framework
Stel
vold
in optrigger_restart_framework
, die doorgaat met het gebruikelijke boot proces.
Versleutel een bestaand apparaat
Dit is wat er gebeurt wanneer u een niet-versleuteld Android K of ouder apparaat versleuteld dat is gemigreerd naar L.
Dit proces wordt door de gebruiker geïnitieerd en wordt aangeduid als “inplace encryptie” in de code. Wanneer een gebruiker kiest om een apparaat te coderen, zorgt de UI ervoor dat de batterij volledig is opgeladen en de AC-adapter is aangesloten, zodat er genoeg stroom is om het coderingsproces te voltooien.
Waarschuwing: Als het apparaat zonder stroom komt te zitten en wordt uitgeschakeld voordat het versleutelen is voltooid, blijven de bestandsgegevens in een gedeeltelijk versleutelde staat achter. Het apparaat moet in de fabriek worden gereset en alle gegevens zijn verloren.
Om inplace encryptie mogelijk te maken, start vold
een lus om elke sector van het echte blok-apparaat te lezen en dan naar het cryptoblok-apparaat te schrijven. vold
controleert of een sector in gebruik is alvorens het te lezen en te schrijven, wat encryptie veel sneller maakt op een nieuw apparaat dat weinig tot geen gegevens heeft.
Status van apparaat: Stel ro.crypto.state = "unencrypted"
in en voer de on nonencrypted
init
trigger uit om door te gaan met booten.
- Controleer wachtwoord
De UI roept
vold
op met het commandocryptfs enablecrypto inplace
waarpasswd
het vergrendelscherm-wachtwoord van de gebruiker is. - Haal het framework neer
vold
controleert op fouten, geeft -1 terug als het niet kan coderen, en drukt een reden af in het logboek. Als het wel kan coderen, stelt het de eigenschapvold.decrypt
in optrigger_shutdown_framework
. Dit zorgt ervoor datinit.rc
stopt met de services in de klassenlate_start
enmain
. - Maak een crypto-voet
- Maak een broodkruimelbestand
- Reboot
- Detecteer broodkruimelbestand
- Start met coderen
/data
vold
zet vervolgens de crypto mapping op, waardoor een virtueel cryptoblok-apparaat wordt aangemaakt dat overeenkomt met het echte blok-apparaat, maar elke sector versleutelt wanneer deze wordt geschreven, en elke sector ontsleutelt wanneer deze wordt gelezen.vold
maakt vervolgens de crypto metadata aan en schrijft deze weg. - Terwijl het codeert, mount tmpfs
vold
mount een tmpfs/data
(met de tmpfs opties vanro.crypto.tmpfs_options
) en zet de propertyvold.encrypt_progress
op 0.vold
bereidt de tmpfs/data
voor op het booten van een gecodeerd systeem en zet de propertyvold.decrypt
op:trigger_restart_min_framework
- Breng framework naar boven om voortgang te tonen
trigger_restart_min_framework
zorgt ervoor datinit.rc
demain
klasse van services start. Wanneer het framework ziet datvold.encrypt_progress
op 0 staat, wordt de voortgangsbalkUI opgestart, die deze eigenschap elke vijf seconden opvraagt en een voortgangsbalk bijwerkt. De encryptielus werktvold.encrypt_progress
bij elke keer dat er weer een procent van de partitie wordt versleuteld. - Wanneer
/data
is versleuteld, werkt u de crypto-voettekst bijWanneer
/data
met succes is versleuteld, wistvold
de vlagENCRYPTION_IN_PROGRESS
in de metagegevens.Wanneer het apparaat met succes is ontgrendeld, wordt het wachtwoord vervolgens gebruikt om de hoofdsleutel te versleutelen en wordt de crypto voettekst bijgewerkt.
Als de reboot om een of andere reden mislukt, stelt
vold
de eigenschapvold.encrypt_progress
in operror_reboot_failed
en de UI zou een bericht moeten tonen waarin de gebruiker wordt gevraagd om op een knop te drukken om te herstarten. Dit wordt niet verwacht ooit voor te komen.
Opstarten van een versleuteld apparaat met standaard encryptie
Dit is wat er gebeurt als u een versleuteld apparaat opstart zonder wachtwoord.Omdat Android 5.0 apparaten bij de eerste keer opstarten worden versleuteld, zou er geen wachtwoord moeten worden ingesteld en daarom is dit de standaard encryptie toestand.
- Detecteer versleuteld
/data
zonder wachtwoordDetecteer dat het Android-apparaat is versleuteld omdat
/data
niet kan worden gemount en een van de vlaggenencryptable
offorceencrypt
is ingesteld.vold
steltvold.decrypt
in optrigger_default_encryption
, waarmee dedefaultcrypto
-service wordt gestart.trigger_default_encryption
controleert het encryptie type om te zien of/data
is gecodeerd met of zonder een wachtwoord. - Decrypt /data
Creëert het
dm-crypt
apparaat over het block apparaat zodat het apparaat klaar is voor gebruik. - Mount /data
vold
mounteert dan de gedecodeerde echte/data
partitie en bereidt dan de nieuwe partitie voor. Het stelt de eigenschapvold.post_fs_data_done
in op 0 en stelt vervolgensvold.decrypt
in optrigger_post_fs_data
. Dit zorgt ervoor datinit.rc
zijnpost-fs-data
commando’s uitvoert. Deze maken de nodige directories of links aan en stellenvold.post_fs_data_done
in op 1.Wanneer
vold
de 1 in die eigenschap ziet, stelt het de eigenschapvold.decrypt
in op:trigger_restart_framework.
Hierdoor startinit.rc
opnieuw services in klassemain
en start ook services in klasselate_start
voor het eerst sinds het opstarten. - Start framework
Nu start het framework al zijn services op met de gedecodeerde
/data
, en het systeem is klaar voor gebruik.
Opstarten van een versleuteld apparaat zonder standaard encryptie
Dit is wat er gebeurt als u een versleuteld apparaat opstart dat een ingesteld wachtwoord heeft. Het wachtwoord van het apparaat kan een pin, patroon of wachtwoord zijn.
- Gecodeerd apparaat met wachtwoord detecteren
Detecteer dat het Android-apparaat is gecodeerd omdat de vlag
ro.crypto.state = "encrypted"
vold
vold.decrypt
optrigger_restart_min_framework
zet omdat/data
is gecodeerd met een wachtwoord. - Mount tmpfs
init
stelt vijf eigenschappen in om de aanvankelijke mount-opties op te slaan die zijn gegeven voor/data
met parameters die zijn doorgegeven vanuitinit.rc
.vold
gebruikt deze eigenschappen om de crypto mapping in te stellen:-
ro.crypto.fs_type
-
ro.crypto.fs_real_blkdev
-
ro.crypto.fs_mnt_point
-
ro.crypto.fs_options
-
ro.crypto.fs_flags
(ASCII 8-cijferig hex-nummer voorafgegaan door 0x)
-
- Start framework om te vragen om wachtwoord
Het framework start op en ziet dat
vold.decrypt
is ingesteld optrigger_restart_min_framework
. Dit vertelt het framework dat het opstart op een tmpfs/data
schijf en dat het het gebruikerswachtwoord moet krijgen.Het moet echter eerst zeker weten dat de schijf goed versleuteld is. Het stuurt het commando
cryptfs cryptocomplete
naarvold
.vold
retourneert 0 als de encryptie succesvol is voltooid, -1 bij een interne fout, of-2 als de encryptie niet succesvol is voltooid.vold
bepaalt dit door in de crypto metadata te zoeken naar deCRYPTO_ENCRYPTION_IN_PROGRESS
flag. Als deze is ingesteld, werd het encryptie proces onderbroken, en zijn er nousable data op het apparaat. Alsvold
een foutmelding geeft, moet de UI een bericht aan de gebruiker tonen om het apparaat opnieuw op te starten en een fabrieksreset te geven, en de gebruiker een knop geven om dit te doen. - Decodeer data met wachtwoord
Als
cryptfs cryptocomplete
succesvol is, toont het framework een UI die vraagt om het schijfwachtwoord. De UI controleert het wachtwoord door het commandocryptfs checkpw
naarvold
te sturen. Als het wachtwoord correct is (wat wordt bepaald door de ontsleutelde/data
succesvol te mounten op een tijdelijke locatie, en dan te unmounten), slaatvold
de naam van het ontsleutelde block device op in de propertyro.crypto.fs_crypto_blkdev
en retourneert status 0 aan de UI. Als het wachtwoord onjuist is, retourneert het -1 aan de UI. - Stop framework
De UI toont een crypto boot afbeelding en roept dan
vold
aan met het commandocryptfs restart
.vold
zet de propertyvold.decrypt
optrigger_reset_main
, waardoorinit.rc
class_reset main
doet. Dit stopt alle services in de hoofdklasse, waardoor de tmpfs/data
kan worden ontkoppeld. - Mount
/data
vold
mount vervolgens de gedecodeerde echte/data
partitie en bereidt de nieuwe partitie voor (die mogelijk nooit is voorbereid als deze was gecodeerd met de wipe optie, welke niet wordt ondersteund op de eerste release). Het zet de eigenschapvold.post_fs_data_done
op 0 en steltvold.decrypt
in optrigger_post_fs_data
. Dit zorgt ervoor datinit.rc
zijnpost-fs-data
commando’s uitvoert. Zij zullen alle benodigde directories of links aanmaken en vervolgensvold.post_fs_data_done
op 1 zetten. Zodravold
de 1 in die eigenschap ziet, stelt het de eigenschapvold.decrypt
in optrigger_restart_framework
. Dit zorgt ervoor datinit.rc
weer services start in klassemain
en ook services start in klasselate_start
voor de eerste keer sinds het opstarten. - Start full framework
Nu start het framework al zijn services op met het gedecodeerde
/data
filesysteem, en het systeem is klaar voor gebruik.
Failure
Een apparaat dat er niet in slaagt te decoderen, kan om een paar redenen niet in orde zijn. Het apparaat start met de normale reeks stappen om op te starten:
- Detect encrypted device with a password
- Mount tmpfs
- Start framework to prompt for password
Maar nadat het framework is geopend, kan het apparaat op een aantal fouten stuiten:
- Wachtwoord komt overeen, maar kan gegevens niet decoderen
- Gebruiker voert 30 keer verkeerd wachtwoord in
Als deze fouten niet worden opgelost, vraagt u de gebruiker om de fabriek te wissen:
Als vold
een fout ontdekt tijdens het encryptieproces, en als er nog geen gegevens zijn vernietigd en het framework is opgestart, stelt vold
de eigenschap vold.encrypt_progress
in op error_not_encrypted
.De UI vraagt de gebruiker om opnieuw op te starten en waarschuwt hen dat het encryptie proces nooit is gestart. Als de fout optreedt nadat het raamwerk is afgebroken, maar voordat de voortgangsbalk UI is opgestart, zal vold
het systeem opnieuw opstarten. Als de reboot mislukt, stelt het vold.encrypt_progress
in operror_shutting_down
en geeft -1 terug; maar er zal niets zijn om de fout op te vangen. Dit wordt niet verwacht.
Als vold
een fout ontdekt tijdens het encryptie proces, stelt hetvold.encrypt_progress
in op error_partially_encrypted
en geeft -1 terug. De UI moet dan een bericht tonen dat de encryptie is mislukt en de gebruiker een knop geven om de fabrieksinstellingen van het apparaat te herstellen.
Opslaan van de versleutelde sleutel
De versleutelde sleutel wordt opgeslagen in de crypto metadata. Voorheen versleutelden we de hoofdsleutel met een sleutel die werd gegenereerd door scrypt toe te passen op het wachtwoord van de gebruiker en het opgeslagen zout. Om de sleutel bestand te maken tegen off-box aanvallen, breiden we dit algoritme uit door de resulterende sleutel te ondertekenen met een opgeslagen TEE sleutel. De resulterende handtekening wordt dan omgezet in een sleutel van de juiste lengte door nog een toepassing van scrypt. Deze sleutel wordt dan gebruikt om de hoofdsleutel te versleutelen en te ontsleutelen. Om deze sleutel op te slaan:
- Genereer een willekeurige 16-byte disk encryption key (DEK) en 16-byte salt.
- Toepassing van scrypt op het gebruikerswachtwoord en het zout om 32-byte intermediatekey 1 (IK1) te produceren.
- Pad IK1 met nul bytes tot de grootte van de hardware-gebonden prive-sleutel (HBK).Specifiek, we pad als: 00 | IK1 || 00..00; een zero byte, 32 IK1 bytes, 223zero bytes.
- Onderteken IK1 opgevuld met HBK om 256-byte IK2 te produceren.
- Toepassen scrypt op IK2 en zout (hetzelfde zout als stap 2) om 32-byte IK3 te produceren.
- Gebruik de eerste 16 bytes van IK3 als KEK en de laatste 16 bytes als IV.
- Versleutel DEK met AES_CBC, met sleutel KEK, en initialisatievector IV.
Wachtwoord veranderen
Wanneer een gebruiker ervoor kiest om zijn wachtwoord in de instellingen te veranderen of te verwijderen, stuurt de UI het commando cryptfs changepw
naar vold
, envold
versleutelt de hoofdsleutel van de schijf opnieuw met het nieuwe wachtwoord.
Encryptie-eigenschappen
vold
en init
communiceren met elkaar door eigenschappen in te stellen. Hier is een lijst met beschikbare eigenschappen voor encryptie.
Voldoende eigenschappen
Eigenschap | Beschrijving | |
---|---|---|
vold.decrypt trigger_encryption |
Encrypteer de schijf zonder wachtwoord. | |
vold.decrypt trigger_default_encryption |
Controleer de schijf om te zien of deze is gecodeerd zonder wachtwoord. Als dit het geval is, decodeer en koppel de schijf aan, anders stelt u vold.decrypt in op trigger_restart_min_framework. |
|
vold.decrypt trigger_reset_main |
Ingesteld door vold om de UI af te sluiten die vraagt om het schijfwachtwoord. | |
vold.decrypt trigger_post_fs_data |
Ingesteld door vold om /data voor te bereiden met de nodige directories, enzovoort. |
|
vold.decrypt trigger_restart_framework |
Ingesteld door vold om het echte framework en alle services te starten. | |
vold.decrypt trigger_shutdown_framework |
Ingesteld door vold om het volledige framework af te sluiten om de encryptie te starten. | |
vold.decrypt trigger_restart_min_framework |
Ingesteld door vold om de voortgangsbalk UI voor encryptie te starten of om om een wachtwoord te vragen, afhankelijk van de waarde van ro.crypto.state . |
|
vold.encrypt_progress |
Wanneer het framework opstart, als deze eigenschap is ingesteld, start de voortgangsbalk UI modus. | |
vold.encrypt_progress 0 to 100 |
De voortgangsbalk UI moet de ingestelde percentage waarde tonen. | |
vold.encrypt_progress error_partially_encrypted |
De UI van de voortgangsbalk moet een bericht weergeven dat de versleuteling is mislukt, en de gebruiker een optie geven om het apparaat een fabrieksreset te geven. | |
vold.encrypt_progress error_reboot_failed |
De UI van de voortgangsbalk moet een bericht weergeven dat de versleuteling is voltooid, en de gebruiker een knop geven om het apparaat opnieuw op te starten. Deze fout wordt niet verwacht. | |
vold.encrypt_progress error_not_encrypted |
De voortgangsbalk UI moet een bericht weergeven dat er een fout is opgetreden, maar dat er geen gegevens zijn gecodeerd of verloren, en de gebruiker een knop geven om het systeem opnieuw op te starten. | |
vold.encrypt_progress error_shutting_down |
De voortgangsbalk UI wordt niet uitgevoerd, dus het is onduidelijk wie er op deze fout zal reageren. En het zou sowieso nooit mogen gebeuren. | |
vold.post_fs_data_done 0 |
Ingesteld door vold net voor het instellen van vold.decrypt op trigger_post_fs_data . |
|
vold.post_fs_data_done 1 |
vold.post_fs_data_done 1 |
vold.post_fs_data_done 0 |
init properties
Property | Description |
---|---|
ro.crypto.fs_crypto_blkdev |
Ingesteld door het vold -commando checkpw voor later gebruik door het vold -commando restart . |
ro.crypto.state unencrypted |
Ingesteld door init om aan te geven dat dit systeem draait met een niet-gecodeerde /data ro.crypto.state encrypted . Ingesteld door init om aan te geven dat dit systeem draait met een versleutelde /data . |
|
Deze vijf eigenschappen worden ingesteld door init wanneer het probeert /data te mounten met parameters die zijn doorgegeven vanuit init.rc . vold gebruikt deze om de crypto mapping in te stellen. |
ro.crypto.tmpfs_options |
Ingesteld door init.rc met de opties die init moet gebruiken bij het mounten van het tmpfs /data bestandssysteem. |