Implementasi default AOSP untuk Layar kunci dengan kemampuan untuk membukanya (keyguard) hanya muncul di layar utama. Di Android 9 (dan yang lebih rendah), layar sekunder mendukung satu jendela penguncian di satu layar eksternal. Di Android 10, Layar kunci diperluas ke semua tampilan sekunder publik. Layar Kunci tetap sederhana dan tidak mendukung pembukaan kunci dari layar sekunder.
Gambar 1. Layar kunci di tampilan sekunder
Produsen perangkat dapat menerapkan Layar kunci untuk layar sekunder, asalkan persyaratan keamanan mendasar terpenuhi. Saat perangkat dikunci, informasi harus disembunyikan dengan aman di semua layar. Tidak ada kebijakan atau kontrol bawaan terkait konten yang harus ditampilkan atau disembunyikan saat perangkat dikunci. Oleh karena itu, satu-satunya cara aman untuk menerapkan akses terbatas adalah dengan menyembunyikan semua konten di balik Layar kunci dan jendela penguncian. Satu-satunya pengecualian adalah aplikasi yang secara eksplisit memilih untuk ditampilkan di atas Layar kunci menggunakan metode
R.attr.showWhenLocked
atau
Activity.setShowWhenLocked()
.
Jika tidak, ada potensi besar informasi bocor dari tampilan publik dan pribadi.
Meskipun layar dapat ditempatkan ke dalam status yang berbeda (ON
/OFF
),
status terkunci bersifat global untuk semua layar. Seperti halnya penerapan perangkat lainnya, pengguna harus
dapat mengetahui dengan jelas saat perangkat terkunci (atau tidak terkunci). Misalnya, menekan tombol daya biasanya mengunci perangkat seluler. Tombol daya juga harus mengunci semua layar internal dan eksternal.
Karena jendela penguncian dimiliki oleh SystemUI, jendela tersebut tidak akan ditempatkan di tampilan pribadi. Pemilik layar pribadi bertanggung jawab untuk menyembunyikan jendela dan melindungi konten saat perangkat dikunci. Implementasi sistem default hanya menyembunyikan aktivitas di layar pribadi dengan mengubah visibilitas.
Implementasi
Jendela penguncian di layar sekunder diimplementasikan sebagai jendela Presentation
di KeyguardDisplayManager
. Android 10 mengubah
KeyguardDisplayManager#mPresentations
menjadi array yang menyimpan semua
jendela penguncian untuk semua layar sekunder. KeyguardDisplayManager
juga memiliki pemroses perubahan tampilan untuk merespons perubahan pada tampilan yang tersedia dan mengamankan semua layar. Penting untuk segera mengunci semua layar yang terhubung kapan pun agar penyerang tidak dapat mengekstrak data pengguna meskipun dengan akses fisik ke perangkat.
Jendela penguncian ditampilkan di semua tampilan sekunder publik (lihat
KeyguardDisplayManager#isKeyguardShowable()
). Pemilik tampilan
pribadi bertanggung jawab untuk mengamankan konten saat perangkat
dikunci.