Status Perangkat

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