Le Note sull'implementazione della crittografia Android hanno una descrizione abbastanza dettagliata di come la crittografia del disco è implementata dalla 3.0. Quando un utente abilita la crittografia se non dispone già di un set di pin, è necessario impostarne uno.
The master key is a 128 bit number created by reading from /dev/urandom. It is encrypted with a hash of the user password created with the PBKDF2 function from the SSL library. The footer also contains a random salt (also read from /dev/urandom) used to add entropy to the hash from PBKDF2, and prevent rainbow table attacks on the password
La chiave principale viene quindi memorizzata nel piè di pagina della partizione crittografata. La maggior parte del codice utilizzato per avviare il processo di crittografia è in Vold, il demone del volume di Android. Se hai la sorgente AOSP completa per Android puoi dare un'occhiata a /system/core/vold/cryptfs.c che implementa molti dei comandi per la crittografia in vold così come i comandi per la verifica e la modifica della password.
Questo post del blog, Crittografia disco Android ha anche alcune informazioni utili su la crittografia implanto e le implicazioni di legare la decrittografia della chiave master al pin / password inserito dall'utente per sbloccare il dispositivo.
Spero che questo aiuti.