Implementasi default AOSP dari layar Kunci dengan kemampuan untuk membukanya (pengaman tombol) hanya muncul di tampilan utama. Di Android 9 (dan lebih rendah), layar sekunder mendukung satu jendela penguncian pada satu layar eksternal. Di Android 10, layar Terkunci diperluas ke semua tampilan sekunder publik. Layar Kunci tetap sederhana dan tidak mendukung pembukaan kunci dari layar sekunder.
Gambar 1. Layar kunci pada tampilan sekunder
Produsen perangkat dapat menerapkan layar Kunci mereka untuk tampilan sekunder, asalkan persyaratan keamanan dasar terpenuhi. Saat perangkat terkunci, informasi harus disembunyikan dengan aman di semua layar. Tidak ada kebijakan atau kontrol bawaan atas konten apa yang harus ditampilkan atau disembunyikan saat perangkat terkunci. Oleh karena itu, satu-satunya cara aman untuk menerapkan akses terbatas adalah menyembunyikan semua konten di balik layar Terkunci dan mengunci jendela. Satu-satunya pengecualian adalah aplikasi yang secara eksplisit memilih untuk ditampilkan di atas layar Terkunci menggunakan metode R.attr.showWhenLocked
atau Activity.setShowWhenLocked()
. Jika tidak, ada potensi besar untuk membocorkan informasi dari tampilan publik dan pribadi.
Sementara tampilan dapat ditempatkan ke status yang berbeda ( ON
/ OFF
), status terkunci bersifat global untuk semua tampilan. Seperti halnya implementasi perangkat apa pun, pengguna harus terlihat 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, itu tidak akan ditempatkan pada tampilan pribadi. Pemilik layar pribadi bertanggung jawab untuk menyembunyikan jendela dan melindungi konten saat perangkat terkunci. Implementasi sistem default hanya menyembunyikan aktivitas pada tampilan pribadi dengan mengubah visibilitas.
Penerapan
Jendela penguncian pada tampilan sekunder diimplementasikan sebagai jendela Presentasi di KeyguardDisplayManager
. Android 10 mengubah KeyguardDisplayManager#mPresentations
menjadi larik yang menampung semua jendela penguncian untuk semua layar sekunder. KeyguardDisplayManager
juga memiliki pendengar perubahan tampilan untuk merespons perubahan pada tampilan yang tersedia dan mengamankan semua layar. Penting untuk segera mengunci semua layar yang terhubung pada waktu tertentu sehingga penyerang tidak dapat mengekstrak data pengguna bahkan dengan akses fisik ke perangkat.
Jendela penguncian ditampilkan pada semua tampilan sekunder publik (lihat KeyguardDisplayManager#isKeyguardShowable()
). Pemilik layar pribadi bertanggung jawab untuk mengamankan konten saat perangkat terkunci.