Status Perangkat

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