Implementasi default Layar kunci AOSP dengan kemampuan untuk membuka kuncinya (pelindung kunci) hanya muncul di layar utama. Di Android 9 (dan yang lebih lama), 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 layar 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
terkunci. 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 untuk membocorkan informasi dari layar publik dan
pribadi.
Meskipun layar dapat ditempatkan dalam status yang berbeda (ON
/OFF
),
status terkunci bersifat global untuk semua layar. Seperti penerapan perangkat lainnya, hal ini harus
jelas bagi pengguna saat perangkat terkunci (atau tidak terkunci). Misalnya, menekan
tombol daya biasanya akan 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 layar pribadi. Pemilik layar pribadi bertanggung jawab untuk menyembunyikan jendela dan melindungi konten saat perangkat terkunci. Penerapan sistem default hanya menyembunyikan aktivitas di layar pribadi dengan mengubah visibilitas.
Implementasi
Jendela penguncian pada tampilan 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. Segera kunci semua layar yang terhubung pada
waktu tertentu agar penyerang tidak dapat mengekstrak data pengguna meskipun memiliki akses fisik
ke perangkat.
Jendela penguncian ditampilkan di semua layar sekunder publik (lihat
KeyguardDisplayManager#isKeyguardShowable()
). Pemilik layar
pribadi bertanggung jawab untuk mengamankan konten saat perangkat
terkunci.