Kilit ekranı

AOSP'nin kilit ekranını açma olanağı (anahtar koruyucu) sunan varsayılan uygulaması yalnızca birincil ekranda görünür. Android 9 (ve önceki sürümler) cihazlarda, ikincil ekranlar tek bir harici ekranda tek bir kilitleme penceresini destekliyordu. Android 10'da kilit ekranı, herkese açık tüm ikincil ekranlara genişletildi. Kilit ekranı basit kalmaya devam eder ve ikincil ekranlardan kilit açmayı desteklemez.

Şekil 1. İkincil ekranda kilit ekranı

Cihaz üreticileri, temel güvenlik şartının karşılanması koşuluyla ikincil ekranlar için kilit ekranlarını uygulayabilir. Cihaz kilitliyken bilgiler tüm ekranlarda güvenli bir şekilde gizlenmelidir. Cihaz kilitliyken hangi içeriğin gösterilmesi veya gizlenmesi gerektiği konusunda yerleşik bir politika ya da kontrol yoktur. Bu nedenle, kısıtlanmış erişimi uygulamanın tek güvenli yolu tüm içeriği Kilit Ekranı ve kilitli pencerelerin arkasına gizlemektir. Bunun tek istisnası, R.attr.showWhenLocked veya Activity.setShowWhenLocked() yöntemlerini kullanarak kilit ekranının üst kısmında gösterilmeyi açıkça etkinleştiren uygulamalardır. Aksi takdirde, herkese açık ve gizli ekranlarınızdan bilgi sızdırma olasılığı yüksektir.

Ekranlar farklı durumlara (ON/OFF) yerleştirilebilir ancak kilitli durum tüm ekranlar için geneldir. Tüm cihaz uygulamalarında olduğu gibi, cihazın kilitli (veya kilidi açık) olduğu kullanıcı tarafından açıkça anlaşılmalıdır. Örneğin, güç düğmesine basıldığında genellikle bir mobil cihaz kilitlenir. Güç düğmesi, tüm iç ve dış ekranları da kilitlemelidir.

Kilitleme penceresi SystemUI'ye ait olduğu için gizli ekranlara yerleştirilmez. Cihaz kilitliyken pencereleri gizlemek ve içeriği korumak gizli ekranların sahiplerine aittir. Varsayılan sistem uygulaması, görünürlük ayarını değiştirerek yalnızca gizli ekranlardaki etkinlikleri gizler.

Uygulama

İkincil ekranlardaki kilitleme penceresi, KeyguardDisplayManager'de Sunu penceresi olarak uygulanır. Android 10'da KeyguardDisplayManager#mPresentations, tüm ikincil ekranların kilitleme pencerelerini içeren bir dizi olarak değiştirildi. KeyguardDisplayManager, mevcut ekranlardaki değişikliklere uyum sağlayacak ve tüm ekranları güvenli hale getirecek bir ekran değiştirme dinleyicisine de sahiptir. Saldırganların cihaza fiziksel erişimleri olduğunda bile kullanıcı verilerini çıkaramaması için tüm bağlı ekranları istediğiniz zaman hemen kilitlemek önemlidir.

Kilitleme penceresi, herkese açık tüm ikincil ekranlarda gösterilir (KeyguardDisplayManager#isKeyguardShowable() bölümüne bakın). Özel ekranların sahipleri, bir cihaz kilitlendiğinde içeriğin güvenliğinden sorumludur.