Kunci layar

Implementasi default AOSP pada 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 kunci diperluas ke semua tampilan sekunder publik. Layar Terkunci 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 mendasar terpenuhi. Saat perangkat terkunci, informasi harus disembunyikan dengan aman di semua tampilan. Tidak ada kebijakan bawaan atau kontrol atas konten apa 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 kunci. 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 kebocoran informasi dari tampilan publik dan pribadi.

Meskipun tampilan dapat ditempatkan pada status yang berbeda ( ON / OFF ), status terkunci bersifat global untuk semua tampilan. Seperti halnya implementasi perangkat apa pun, pengguna harus mengetahui kapan 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, maka 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 di tampilan pribadi dengan mengubah visibilitas.

Penerapan

Jendela penguncian pada tampilan sekunder diimplementasikan sebagai jendela Presentasi di KeyguardDisplayManager . Android 10 mengubah KeyguardDisplayManager#mPresentations menjadi array yang menampung 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 tampilan yang terhubung pada waktu tertentu sehingga penyerang tidak dapat mengekstrak data pengguna bahkan dengan akses fisik ke perangkat.

Jendela penguncian ditampilkan di semua tampilan sekunder publik (lihat KeyguardDisplayManager#isKeyguardShowable() ). Pemilik layar pribadi bertanggung jawab mengamankan konten saat perangkat terkunci.