Status perangkat menunjukkan seberapa bebas perangkat lunak dapat di-flash ke perangkat dan apakah verifikasi diterapkan. Status perangkat LOCKED
dan UNLOCKED
. Perangkat LOCKED
mencegah Anda mem-flash perangkat lunak baru ke perangkat, sedangkan perangkat UNLOCKED
memungkinkan modifikasi.
Saat perangkat menyala, bootloader terlebih dahulu memeriksa apakah perangkat LOCKED
atau UNLOCKED
. Jika perangkat dalam keadaan UNLOCKED
, bootloader akan menampilkan peringatan kepada pengguna dan kemudian melanjutkan boot meskipun OS yang dimuat tidak ditandatangani oleh root of trust.
Jika perangkat LOCKED
, bootloader akan melakukan langkah-langkah dalam Memverifikasi Boot untuk memverifikasi perangkat lunak perangkat. Perangkat LOCKED
melakukan booting hanya jika OS yang dimuat ditandatangani dengan benar oleh root kepercayaan. Untuk detail selengkapnya, lihat Alur booting .
Mengubah status perangkat
Untuk mengubah status perangkat , gunakan fastboot flashing [unlock | lock]
perintah. Untuk melindungi data pengguna, semua transisi status menghapus partisi data dan meminta konfirmasi pengguna sebelum data dihapus.
Transisi UNLOCKED
ke LOCKED
diantisipasi ketika pengguna membeli perangkat pengembangan bekas. Akibat penguncian perangkat, pengguna harus yakin bahwa perangkat tersebut dalam kondisi yang ditentukan oleh produsen perangkat, selama tidak ada peringatan. Transisi LOCKED
ke UNLOCKED
diharapkan terjadi ketika pengembang ingin menonaktifkan verifikasi pada perangkat untuk tujuan pengembangan.
Akar Kepercayaan
Root of Trust adalah kunci kriptografi yang digunakan untuk menandatangani salinan Android yang disimpan di perangkat. Bagian pribadi dari akar kepercayaan hanya diketahui oleh produsen perangkat dan digunakan untuk menandatangani setiap versi Android yang dimaksudkan untuk distribusi. Bagian publik dari akar kepercayaan tertanam di perangkat dan disimpan di suatu tempat sehingga tidak dapat dirusak (biasanya penyimpanan hanya-baca).
Saat memuat Android, bootloader menggunakan root of trust untuk memverifikasi keaslian. Untuk rincian lebih lanjut tentang proses ini, lihat Memverifikasi Boot . Perangkat mungkin memiliki beberapa boot loader dan dengan demikian beberapa kunci kriptografi mungkin sedang digunakan.
Akar kepercayaan yang dapat diatur pengguna
Perangkat secara opsional dapat mengizinkan pengguna untuk mengonfigurasi akar kepercayaan (misalnya, kunci publik). Perangkat dapat menggunakan akar kepercayaan yang dapat diatur pengguna ini untuk Boot Terverifikasi, bukan akar kepercayaan bawaan. Hal ini memungkinkan pengguna untuk menginstal dan menggunakan versi khusus Android tanpa mengorbankan peningkatan keamanan Boot Terverifikasi.
Jika akar kepercayaan yang dapat diatur pengguna diterapkan, hal itu harus dilakukan sedemikian rupa sehingga:
- Konfirmasi fisik diperlukan untuk mengatur/menghapus akar kepercayaan yang dapat diatur pengguna.
- Akar kepercayaan yang dapat diatur oleh pengguna hanya dapat ditetapkan oleh pengguna akhir. Ini tidak dapat diatur di pabrik atau titik perantara mana pun sebelum pengguna akhir mendapatkan perangkat tersebut.
- Akar kepercayaan yang dapat diatur pengguna disimpan dalam penyimpanan anti-rusak. Tamper-evident artinya Android dapat mendeteksi apakah Android telah merusak data, misalnya data telah ditimpa atau diubah.
- Jika akar kepercayaan yang dapat diatur pengguna disetel, perangkat harus mengizinkan versi Android yang ditandatangani dengan akar kepercayaan bawaan atau akar kepercayaan yang dapat diatur pengguna untuk melakukan booting.
- Setiap kali perangkat melakukan booting menggunakan root of trust yang dapat diatur pengguna, pengguna akan diberi tahu bahwa perangkat tersebut memuat versi khusus Android. Misalnya, layar peringatan, lihat Perangkat
LOCKED
dengan kumpulan kunci khusus .
Salah satu cara menerapkan akar kepercayaan yang dapat diatur pengguna adalah dengan memiliki partisi virtual yang hanya dapat di-flash atau dihapus ketika perangkat dalam keadaan UNLOCKED
. Perangkat Google Pixel 2 menggunakan pendekatan ini dan partisi virtualnya disebut avb_custom_key
. Format data pada partisi ini merupakan output dari perintah avbtool extract_public_key
. Berikut ini contoh cara menetapkan akar kepercayaan yang dapat diatur pengguna:
avbtool extract_public_key --key key.pem --output pkmd.bin
fastboot flash avb_custom_key pkmd.bin
Akar kepercayaan yang dapat diatur pengguna dapat dihapus dengan mengeluarkan:
fastboot erase avb_custom_key