Gizlilik göstergeleri

Android 6 ve sonraki sürümlerdeki çalışma zamanında izinler, kullanıcılara cihaz mikrofonundan ses veya cihaz kamerasından video kaydetmeye ne zaman izin verecekleri konusunda kontrol verir. Bir uygulamanın kayıt yapabilmesi için kullanıcının, sistemin gösterdiği iletişim kutusunda uygulamaya izin vermesi veya vermemesi gerekir.

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

App-op, hem etkinlik durumunu hem de tek tek API çağrılarının sayısını izler ve 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 verilerine hangi uygulamaların 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ümleri çalıştıran 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ği almalıdır (ör. sağ üst köşedeki en sağ konumda yer almalıdır).
  • Göstergeler her zaman aynı konumda olmalı ve bir uygulama başlatılırken engellenmemelidir.
  • Her iki gösterge de yeşil (veya yeşilin bir varyantı) renkte olmalıdır.
  • Göstergelerden birini veya ikisini birden tıklamak, aşağıdakileri yapan bir uygulama ilişkilendirmesi kolaylaştırma bildirimi oluşturmalıdır:
    • 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. Sistem tarafından çalışan olarak işaretlenen veya 5 saniyeden eski olan kullanımlar etkin olarak kabul edilir.

  • Durum çubuğundaki simgeler, bir uygulamanın kullanıcıya duyarlı mikrofon veya kamera erişimi her açıldığında gösterilir.
  • Kullanıcılar bu simgeleri tıklayarak mikrofon, kamera veya her ikisine birden hangi uygulamaların eriştiğini görebilir.

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

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

Erişim, göstergeler gösterildiği sürece etkin olarak kabul edilir. İlk olarak bir simge gösterilir, ardından uygulama kapatılana veya reddedilene kadar bir nokta gösterilir.

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

Hem etkin hem de son erişimi ve erişimin kameradan mı yoksa mikrofondan mı yapıldığını gösteren göstergeler

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

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

Son erişim göstergeleri, önceki 15 saniye içinde bir uygulamanın verilere eriştiğini ancak uygulamanın etkin olmadığını gösterir. Etkin olan tüm uygulamalar iletişim kutusunda gösterilir ancak önceki 15 saniyelik zaman aralığında verilere birden fazla uygulama erişmiş olsa bile son erişimin kaynağı olarak yalnızca bir uygulama gösterilir. Kullanıcı bildirim iletişim kutusunu kapatana kadar erişim görünümü donar.

Yayınlama ve etkinleştirme

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

  • Sistem kullanıcı arayüzü, cihaz yapılandırması anahtarına tepki verir: privacy/mic_camera_indicators_enabled.
  • Geçiş, şu sırayla iki ayrı teslimat aracı olduğu için gereklidir:
    1. Yayınlayın.
    2. Etkinleştir'i tıklayın.
  • PermissionManager içindeki yöntem gerekli verileri sağlayamazsa sistem kullanıcı arayüzü kilitlenmemelidir.

İş akışı

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

  • Uygulamalar
  • Göstergeler (SystemUI tarafından yönetilir)
  • Verileri hangi uygulamaların kullandığını belirleme

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

İzin Göstergesi işlevleri için iş akışı

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

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

1- Bir uygulama sistemden gizli veri ister.

2- Sistem izinleri kontrol eder. İzinlere izin verilirse sistem, veri sağlayıcıyı bilgilendirir ve kullanım bilgisini uygulama işlemlerine kaydeder

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

4-5 Kullanıcı simgeleri tıklar. Sistem kullanıcı arayüzü, PermissionManager'den veri ister ve iletişim kutusunu kullanıcıya gösterir.

İşleme ayrıntıları

  1. Uygulamalar, AppOpsManager.startOp, stopOp ve (veya) noteOp çağrılarını kullanarak mikrofonu ve kamerayı kullanır. Bu işlem, sistem sunucusunda uygulama işlemi kayıtları oluşturur.
  2. Sistem arayüzü, AppOpsManager.OnOpActiveChangedInternalListener ve OnOpNotedListener dinleyicilerini kullanarak yeni uygulama işlemlerini dinler. Yeni bir kullanım geldiğinde (startOp veya noteOp çağrısı üzerinden), sistem kullanıcı arayüzü bu 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ğrularsa ve kullanım mikrofon içinse mikrofonun sesinin kısılıp kısılmadığını kontrol eder.
  4. Sistem kullanıcı arayüzü, sistem dışı uygulama kullanımını (ve mikrofon kullanımı için mikrofonun sesinin açıldığını, kamera kullanımı için de kameranın açıldığını) doğrularsa bu tür kullanımları 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 tıklanana kadar veya en fazla 5 saniye boyunca gösterilir. Kullanıcı bir simgeyi tıkladığında, iletişim kutusunu başlatmak için PermissionController'e giden bir intent başlatılır.

PermissionController, mikrofon ve kameranın son kullanımlarının tümünü yükler. Bu işlemlerin ç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 hangi izinleri kullandığını gösterir.

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

Telefon, Android Google Arama uygulaması (AGSA) ve Google Mobil Hizmetleri (GMS) ile çalışırken izin kullanımını (telefon aramalarında kullanılan ayrı mikrofon grubunu hesaba katmak için) uygulamalıdır.