Kilit ekranı

Kilit ekranının AOSP'deki varsayılan uygulaması, kilidini açma olanaklarıyla (keyguard) yalnızca birincil ekranda görünür. Android 9 ve önceki sürümlerde, 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 kalır ve ikincil ekranlardan kilidi açmayı desteklemez.

1. şekil. İkincil ekranda kilit ekranı

Cihaz üreticileri, temel güvenlik şartı karşılandığı sürece ikincil ekranlar için kendi kilit ekranlarını uygulayabilir. Cihaz kilitlendiğinde bilgiler tüm ekranlarda güvenli bir şekilde gizlenmelidir. Cihaz kilitliyken hangi içeriklerin gösterileceği veya gizleneceğ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ının ve kilitli pencerelerin arkasına gizlemektir. Yalnızca R.attr.showWhenLocked veya Activity.setShowWhenLocked() yöntemleri kullanılarak kilit ekranının üstünde gösterilmeyi açıkça kabul eden uygulamalar bu kuralın dışındadır. Aksi takdirde, herkese açık ve özel ekranlardaki bilgilerin sızdırılma olasılığı yüksektir.

Ekranlar farklı durumlara (ON/OFF) yerleştirilebilse de kilitli durum tüm ekranlar için geçerlidir. Her cihaz uygulamasında olduğu gibi, cihazın kilitli (veya kilidi açık) olduğu kullanıcıya açıkça belirtilmelidir. Örneğin, güç düğmesine basıldığında genellikle mobil cihaz kilitlenir. Güç düğmesi, tüm iç ve dış ekranları da kilitlemelidir.

Kilit ekranı penceresi SystemUI'ye ait olduğundan özel ekranlara yerleştirilmez. Özel ekranların sahipleri, cihaz kilitlendiğinde pencereleri gizlemekten ve içeriği korumaktan sorumludur. Varsayılan sistem uygulaması, görünürlüğü değiştirerek yalnızca özel ekranlardaki etkinlikleri gizler.

Uygulama

İkincil ekranlardaki kilitleme penceresi, KeyguardDisplayManager'da Presentation (Sunum) penceresi olarak uygulanır. Android 10, KeyguardDisplayManager#mPresentations öğesini tüm ikincil ekranların tüm kilitleme pencerelerini içeren bir dizi olarak değiştirdi. KeyguardDisplayManager ayrıca, kullanılabilir ekranlardaki değişikliklere yanıt vermek ve tüm ekranları güvenli hale getirmek için bir ekran değişikliği dinleyicisine sahiptir. Saldırganların cihaza fiziksel erişimleri olsa bile kullanıcı verilerini çıkaramamaları için bağlı tüm ekranları herhangi bir zamanda hemen kilitlemeniz önemlidir.

Kilitleme penceresi tüm herkese açık ikincil ekranlarda gösterilir (bkz. KeyguardDisplayManager#isKeyguardShowable()). Özel ekran sahipleri, bir cihaz kilitlendiğinde içeriğin güvenliğini sağlamaktan sorumludur.