Gizlilik göstergeleri

Android 6 ve sonraki sürümlerdeki çalışma zamanı izinleri, kullanıcılara cihazın mikrofonundan gelen sesin veya cihazın kamerasından gelen videonun ne zaman kaydedileceğine dair kontrol olanağı tanır. Bir uygulamanın kayıt yapabilmesi için kullanıcının sistemin sunduğu bir iletişim kutusu aracılığıyla izin vermesi veya izni reddetmesi gerekir.

Android 12, bir uygulama kameralar ve mikrofon uygulama işlemi izinleri aracılığıyla özel bir veri kaynağı kullandığında göstergeler görüntüleyerek kullanıcılara şeffaflık sağlar. Uygulama işlemleri kaydı, çalışma zamanı izniyle korunan API'lere erişimleri kaydeder.

Uygulama işlemi hem etkinlik durumunu hem de bağımsız API çağrılarının sayısını izler. Ayrıca, Android 12'deki mikrofon ve kamera göstergeleriyle etkileşime geçerek kullanıcılara uygulamaların cihazlarındaki ses ve kamera verilerine ne zaman eriştiğini gösterir. Kullanıcılar mikrofon veya kamera göstergelerini tıkladığında hangi uygulamaların verilerine eriştiğini görür. Bu özellik tüm OEM'ler için zorunludur.

Gösterge görünürlüğü koşulları

Android 12 veya sonraki sürümlerin yüklü olduğu cihazlarda mikrofon ve kamera göstergeleriyle ilgili şartlar şunlardır:

  • Göstergeler durum çubuğunda görünmeli ve en yüksek görsel önceliğe sahip olmalıdır (örneğin, sağ üst köşede en sağdaki konumda yer almalıdır).
  • Göstergeler her zaman aynı konumda yer almalı ve uygulama başlatıldığında engellenmemelidir.
  • Her iki gösterge de yeşil (veya yeşilin bir varyasyonu) renkte olmalıdır.
  • Göstergelerden birini veya her ikisini tıkladığınızda, aşağıdakileri yapan bir uygulama ilişkilendirme fırsatı bildirimi gösterilmelidir:
    • Mikrofonu ve/veya kamerayı kullanan uygulamanın adını gösterir.
    • Son 15 saniye içinde mikrofonu ve/veya kamerayı kullanan uygulamanın adını gösterir.
    • Kullanıcıları Ayarlar'daki uygulama izni sayfasına yönlendirir.

Kullanım ve özellikler

Android 12'de kullanıcı arayüzü, çalışan kullanımlar ile son kullanımlar arasında ayrım yapar. Kullanımlar, sistem tarafından çalışıyor olarak işaretlenmişse veya 5 saniyeden daha eski değilse etkin olarak kabul edilir.

  • Durum çubuğu simgeleri, bir uygulama her kullanıcıya duyarlı mikrofon veya kamera erişimi gerçekleştirdiğinde gösterilir.
  • Kullanıcılar bu simgeleri tıklayarak mikrofon, kamera veya her ikisine de hangi uygulamaların eriştiğini görebilir.

Erişimin etkin olduğunu gösteren mikrofon ve kamera kullanımda göstergeleri

1. şekil. Etkin erişimi gösteren, kullanılan mikrofon ve kamera göstergeleri (sağ üst köşe)

Göstergeler göründüğü sürece erişim etkin olarak kabul edilir. Önce bir simge gösterilir, ardından uygulama kapatılana veya kapatılana kadar nokta olarak kalır.

Kullanıcı Hızlı Ayarlar'ı açıp göstergelere dokunduğunda, uygulamanın kamerayı, mikrofonu veya her ikisini de kullanıp kullanmadığını gösteren bir iletişim kutusu görünür.

Hem etkin hem de son erişimlerin göstergeleri ve erişimin kameradan mı yoksa mikrofondan mı yapıldığı

Şekil 2. Etkin ve son erişim göstergeleri

Şekil 2'deki resimde, verilerin son 5 saniye içinde çalışan bir uygulama tarafından erişildiği durumlarda etkin erişim göstergeleri gösterilmektedir.

Son erişim göstergeleri, verilere önceki 15 saniye içinde bir uygulama tarafından erişildiğini ancak uygulamanın etkin olmadığını gösterir. Tüm etkin uygulamalar iletişim kutusunda gösterilir ancak 15 saniyelik önceki zaman aralığında birden fazla uygulama verilere erişmiş olsa bile yalnızca bir uygulama son erişimin kaynağı olarak gösterilir. Erişim görünümü, kullanıcı bildirim iletişim kutusunu kapatana kadar dondurulmuş olarak kalır.

Yayınlama ve etkinleştirme

PermissionManager sınıfı, Sistem Kullanıcı Arayüzü'nde bulunan iletişim kutusunu doldurmak için bir yöntem sağlar.

  • Sistem kullanıcı arayüzü, cihaz yapılandırma anahtarına tepki verir: privacy/mic_camera_indicators_enabled.
  • Bu sırayla iki ayrı teslimat aracı olduğundan geçiş yapılması gerekir:
    1. Yayınla
    2. Etkinleştir'i tıklayın.
  • PermissionManager yönteminde gerekli veriler sağlanamıyorsa Sistem Kullanıcı Arayüzü kilitlenmemelidir.

İşlem akışı

İzin göstergesi işlevinin üç ana bölümü vardır:

  • Uygulamalar
  • Göstergeler (SystemUI tarafından işlenir)
  • Hangi uygulamaların verileri kullandığını belirleme yöntemi

PermissionController, hangi uygulamaların veri kullandığını belirleme mekanizmasını sağlar. SystemUI, özel verileri kullanan uygulamaları dinler. SystemUI, kullanılan izinlere karşılık gelen bir simgeyi üst gezinme çubuğunda gösterir. Kullanıcı bir simgeyi tıkladığında PermissionController, kullanımlarla ilgili verileri gösterir.

İzin göstergesi işlevlerinin işlem akışı

3.Şekil Sistem bileşenleri ve (kullanıcı arayüzü) geçişleri akışı

Şekil 3'teki numaralandırılmış geçişler aşağıda açıklanmıştır:

1- Bir uygulama, sistemden gizli veri isteğinde bulunuyor.

2- Sistem, izinleri kontrol eder. İzinler verilirse sistem, veri sağlayıcıyı bilgilendirir ve uygulama işlemleri bölümünde kullanımı not eder.

3- Veri sağlayıcı, uygulamaya veri verir.

4-5 Kullanıcı, simgeleri tıklar. Sistem kullanıcı arayüzü, PermissionManager öğesinden veri isteğinde bulunur ve iletişim kutusunu kullanıcıya gösterir.

İşleme ayrıntıları

  1. Uygulamalar, mikrofon ve kamerayı kullanarak AppOpsManager.startOp, stopOp ve (veya) noteOp ile görüşme yapıyor. Bu işlem, sistem sunucusunda uygulama işlemi kayıtları oluşturur.
  2. Sistem kullanıcı arayüzü, AppOpsManager.OnOpActiveChangedInternalListener ve OnOpNotedListener dinleyicilerini kullanarak yeni uygulama işlemleri için dinleme yapar. Yeni bir kullanım geldiğinde (startOp veya noteOp çağrısı aracılığıyla), Sistem Kullanıcı Arayüzü, kullanımın bir sistem uygulaması tarafından yapıldığını doğrular.
  3. Sistem kullanıcı arayüzü, sistem uygulaması kullanımını doğruluyorsa ve kullanım mikrofon içinse sistem kullanıcı arayüzü, mikrofonun sessize alınıp alınmadığını kontrol eder.
  4. Sistem Arayüzü, sistem uygulaması olmayan uygulamaların kullanımını doğruladığında (ve mikrofon kullanımı için mikrofonun sesinin kapatılmadığını, kamera kullanımı için kameranın açık olduğunu) bu kullanımı yansıtan bir simge gösterir.

Sistem kullanıcı arayüzü, süresi olmayan bir noteOp alırsa simgeyi en az 5 saniye boyunca gösterir. Aksi takdirde, simge stopOp alana kadar veya 5 saniye boyunca (hangisi daha uzunsa) gösterilir. Bir simgeyi tıklayan kullanıcı, iletişim kutusunu başlatmak için PermissionController'ya giden bir amaç başlatır.

PermissionController, mikrofon ve kameranın son kullanımını yükler. Bu işlemlerden herhangi birinin çalışıp çalışmadığını veya Sistem Kullanıcı Arayüzü tarafından belirlenen zaman aralığında çalışıp çalışmadığını kontrol eder. Eşleşme bulunursa izni kullanan uygulamanın adını ve uygulamanın kullandığı izinleri gösterir.

Android 12 ve sonraki sürümlerdeki bu değişiklik nedeniyle bazı uygulamaların davranışlarını değiştirmesi veya özel davranışlar uygulaması gerekir.

Telefon görüşmesi, Android Google Arama uygulaması (AGSA) ve Google Mobil Hizmetleri (GMS) ile çalışırken izin kullanımını (telefon görüşmelerinde kullanılan ayrı mikrofon yığını için) uygulamalıdır.