Status perangkat menunjukkan bagaimana perangkat
lunak dapat di-{i>flash <i}ke perangkat dan
apakah verifikasi diberlakukan. Status perangkat adalah LOCKED
dan
UNLOCKED
. LOCKED
perangkat mencegah Anda melakukan flash baru
software ke perangkat, sedangkan perangkat UNLOCKED
memungkinkan
modifikasi.
Saat perangkat dinyalakan, bootloader akan
memeriksa terlebih dahulu apakah perangkat
LOCKED
atau UNLOCKED
. Jika perangkat
UNLOCKED
, bootloader akan menampilkan peringatan kepada pengguna, lalu melanjutkan
{i>booting<i} meskipun OS yang dimuat
tidak ditandatangani oleh {i>root of trust.<i}
Jika perangkat adalah LOCKED
, bootloader akan melalui langkah-langkah di
Memverifikasi Boot untuk memverifikasi
perangkat lunak perangkat. Perangkat LOCKED
hanya di-booting jika
OS yang dimuat ditandatangani
dengan benar oleh {i>root of trust.<i} Untuk detail selengkapnya, lihat
Alur booting.
Mengubah status perangkat
Untuk mengubah status perangkat, gunakan
perintah fastboot flashing [unlock | lock]
. Untuk melindungi pengguna
data, semua transisi status menghapus total partisi data dan meminta pengguna
konfirmasi sebelum data dihapus.
Transisi UNLOCKED
ke LOCKED
diperkirakan saat
pengguna membeli perangkat
pengembangan bekas. Setelah perangkat dikunci,
pengguna harus yakin bahwa kondisi tersebut dihasilkan oleh perangkat
selama tidak ada peringatan. LOCKED
ke
Transisi UNLOCKED
diharapkan saat developer ingin menonaktifkan
verifikasi pada perangkat
untuk tujuan pengembangan.
Akar Kepercayaan
Akar kepercayaan adalah kunci kriptografis yang digunakan untuk menandatangani salinan Android yang tersimpan di perangkat. Bagian pribadi dari akar kepercayaan hanya diketahui oleh dan digunakan untuk menandatangani setiap versi Android yang ditujukan untuk distribusi. Bagian publik dari akar kepercayaan tertanam di dalam perangkat dan disimpan di suatu tempat sehingga tidak dapat dirusak (biasanya hanya-baca penyimpanan).
Saat memuat Android, bootloader menggunakan root kepercayaan untuk memverifikasi keaslian. Untuk detail selengkapnya tentang proses ini, lihat Memverifikasi Booting. Perangkat mungkin memiliki beberapa {i>boot loader<i} dan dengan demikian beberapa kunci kriptografis mungkin digunakan.
Root kepercayaan yang dapat ditetapkan pengguna
Secara opsional, perangkat dapat mengizinkan pengguna mengonfigurasi {i>root of trust<i} (untuk misalnya, kunci publik). Perangkat dapat menggunakan {i>root of trust <i}yang dapat ditetapkan pengguna ini untuk Booting Terverifikasi, bukan root kepercayaan bawaan. Hal ini memungkinkan pengguna untuk menginstal dan menggunakan Android versi kustom tanpa mengorbankan keamanan peningkatan kualitas Booting Terverifikasi.
Jika {i>root of trust<i} yang dapat ditetapkan pengguna diimplementasikan, itu harus dilakukan dengan cara bahwa:
- Konfirmasi fisik diperlukan untuk menyetel/menghapus root yang dapat ditetapkan pengguna kepercayaan.
- Root kepercayaan yang dapat ditetapkan pengguna hanya dapat ditetapkan oleh pengguna akhir. Iklan tidak boleh diatur di pabrik atau titik perantara mana pun sebelum pengguna akhir mendapatkan perangkat seluler.
- Root kepercayaan yang dapat ditetapkan pengguna disimpan dalam penyimpanan yang tahan perusakan. Termodifikasi berarti dapat mendeteksi apakah Android telah dirusak pada data, misalnya, jika telah ditimpa atau diubah.
- Jika root kepercayaan yang dapat ditetapkan pengguna telah ditetapkan, perangkat harus mengizinkan versi Android yang ditandatangani dengan root kepercayaan bawaan atau ID {i>root of trust<i} untuk melakukan {i>booting<i}.
- Setiap kali perangkat melakukan booting menggunakan
root of trust yang dapat ditetapkan pengguna,
harus mendapatkan pemberitahuan bahwa perangkat sedang memuat Android versi kustom. Sebagai
misalnya layar peringatan, lihat
LOCKED
perangkat dengan kumpulan kunci kustom.
Salah satu cara menerapkan {i>root of trust <i}yang dapat ditetapkan
pengguna adalah dengan memiliki
partisi yang hanya dapat di-flash atau dihapus ketika perangkat berada dalam
status UNLOCKED
. Perangkat Google Pixel 2
menggunakan pendekatan ini dan
partisi virtual disebut avb_custom_key
. Format
data dalam partisi ini adalah {i>output<i} dari
Perintah avbtool extract_public_key
. Berikut adalah contoh cara mengatur
{i>root of trust <i}yang dapat ditetapkan pengguna:
avbtool extract_public_key --key key.pem --output pkmd.bin
fastboot flash avb_custom_key pkmd.bin
Root kepercayaan yang dapat ditetapkan pengguna dapat dihapus dengan mengeluarkan:
fastboot erase avb_custom_key