Lo stato del dispositivo indica la possibilità di eseguire liberamente il flashing del software su un dispositivo
l'applicazione forzata della verifica. Gli stati del dispositivo sono LOCKED
e
UNLOCKED
. LOCKED
dispositivi impediscono il flashing di nuovi dispositivi
software al dispositivo, mentre i dispositivi UNLOCKED
consentono
modifica.
Quando un dispositivo si accende, il bootloader controlla innanzitutto se
LOCKED
o UNLOCKED
. Se un dispositivo viene
UNLOCKED
, il bootloader mostra all'utente un avviso e poi procede
anche se il sistema operativo caricato non è firmato dalla radice di attendibilità.
Se il dispositivo è LOCKED
, il bootloader esegue i passaggi in
Verifica l'avvio per eseguire la verifica
dal software del dispositivo. I dispositivi LOCKED
si avviano solo se
il sistema operativo caricato è firmato correttamente dalla radice di attendibilità. Per ulteriori dettagli, vedi
Il flusso di avvio.
relative alla modifica dello stato del dispositivo
Per modificare lo stato di un dispositivo, usa
il comando fastboot flashing [unlock | lock]
. Per proteggere l'utente
dati, tutte le transizioni di stato cancellano le partizioni dei dati e chiedono
una conferma prima dell'eliminazione dei dati.
La transizione da UNLOCKED
a LOCKED
è prevista quando
un utente acquista un dispositivo di sviluppo usato. In seguito al blocco del dispositivo,
l'utente deve avere la certezza che si trova in uno stato generato dal dispositivo
produttore, purché non ci siano avvisi. LOCKED
per
La transizione UNLOCKED
è prevista quando uno sviluppatore vuole disabilitare
verifica sul dispositivo a fini di sviluppo.
Radice di fiducia
La radice di attendibilità è la chiave di crittografia utilizzata per firmare la copia di Android. memorizzati sul dispositivo. La parte privata della radice di attendibilità è nota solo al di dispositivi mobili ed è utilizzato per firmare tutte le versioni di Android destinate distribuzione dei contenuti. La parte pubblica della radice di attendibilità è incorporata nel dispositivo e sono archiviati in un luogo e non possono essere manomessi (generalmente sono in sola lettura archiviazione).
Quando carica Android, il bootloader utilizza la radice di attendibilità per verificare autenticità. Per ulteriori dettagli su questa procedura, consulta Verifica dell'avvio. I dispositivi potrebbero avere più bootloader e, di conseguenza, potrebbero essere presenti più chiavi di crittografia.
Radice di attendibilità configurabile dall'utente
I dispositivi possono facoltativamente consentire all'utente di configurare la radice di attendibilità (per ad esempio una chiave pubblica). I dispositivi possono utilizzare questa radice di attendibilità configurabile dall'utente per Avvio verificato anziché la radice di attendibilità integrata. Ciò consente all'utente di installare e utilizzare versioni personalizzate di Android senza sacrificare la sicurezza miglioramenti dell'Avvio verificato.
Se viene implementata la radice di attendibilità impostabile dall'utente, questa deve essere eseguita in modo tale che:
- È necessaria la conferma fisica per impostare/cancellare la radice impostabile dall'utente di la fiducia degli utenti.
- La radice di attendibilità configurabile dall'utente può essere impostata solo dall'utente finale. Non può essere impostato in fabbrica o in qualsiasi punto intermedio prima che l'utente finale riceva dispositivo.
- La radice di attendibilità impostabile dall'utente viene archiviata in uno spazio di archiviazione a prova di manomissione. Evidente di manomissione significa che è possibile rilevare se Android è manomesso i dati, ad esempio se sono stati sovrascritti o modificati.
- Se è impostata una radice di attendibilità configurabile dall'utente, il dispositivo deve consentire una versione di Android ha firmato con la radice di attendibilità integrata o con l'impostazione configurabile dall'utente radice di attendibilità per l'avvio.
- Ogni volta che il dispositivo si avvia utilizzando la radice di attendibilità impostabile dall'utente,
ricevi una notifica che indica che sul dispositivo è in corso il caricamento di una versione personalizzata di Android. Per
ad esempio schermate di avviso, consulta
LOCKED
di dispositivi con un set di chiavi personalizzate.
Un modo per implementare la radice di attendibilità impostabile dall'utente è avere una
che può essere visualizzata in modalità flash o cancellata solo quando il dispositivo è
UNLOCKED
. I dispositivi Google Pixel 2 usano questo approccio
la partizione virtuale è denominata avb_custom_key
. Il formato del
in questa partizione è l'output
Comando avbtool extract_public_key
. Ecco un esempio di come impostare
la radice di attendibilità configurabile dall'utente:
avbtool extract_public_key --key key.pem --output pkmd.bin
fastboot flash avb_custom_key pkmd.bin
La radice di attendibilità impostabile dall'utente può essere cancellata rilasciando:
fastboot erase avb_custom_key