Gizlilik Göstergeleri

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

Android 12, bir uygulamanın kameralar ve mikrofon uygulama işlem izinleri aracılığıyla özel bir veri kaynağı kullanması durumunda göstergeleri görüntüleyerek kullanıcılara şeffaflık sağlar. Çalışma zamanı izin korumalı API'lere uygulama işlemleri kaydı erişimleri.

App-op, hem etkinlik durumunu hem de bireysel API çağrılarının sayısını izler ve uygulamaların cihazlarındaki ses ve kamera verilerine ne zaman eriştiğini kullanıcılara göstermek için Android 12'deki mikrofon ve kamera göstergeleriyle etkileşime girer. Kullanıcılar mikrofon veya kamera göstergelerine tıkladıklarında verilerine hangi uygulamaların eriştiğini görebilirler. Bu özellik tüm OEM'ler için zorunludur.

Gösterge görünürlüğü gereksinimleri

Android 12 veya sonraki sürümlerde çalışan cihazlarda mikrofon ve kamera göstergelerine yönelik gereksinimler ş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ğ konumda yer almalıdır).
  • Göstergeler sürekli olarak aynı konumda bulunmalı ve uygulama başlatıldığında uygulama tarafından engellenmemelidir.
  • Her iki göstergenin rengi yeşil (veya yeşilin bir çeşidi) olmalıdır .
  • Göstergelerden birine veya her ikisine tıklandığında aşağıdakileri yapan bir uygulama ilişkilendirme uygunluk bildirimi oluşturulmalıdır :
    • Mikrofonu ve/veya kamerayı kullanan uygulamanın adını görüntüler
    • Son 15 saniye içinde mikrofonu ve/veya kamerayı kullanan uygulamanın adını görüntüler
    • Kullanıcıları Ayarlar'daki uygulama izin 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 eskiyse "etkin" olarak kabul edilir.

  • Durum çubuğu simgeleri, bir uygulamanın sürekli olarak kullanıcıya duyarlı mikrofon veya kamera erişimine sahip olduğu her seferinde gösterilir.
  • Kullanıcılar bu simgelere tıklayarak hangi uygulamaların mikrofona, kameraya veya her ikisine de eriştiğini görebilir.

Microphone and camera in-use indicators showing that access is active

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

Göstergeler gösterildiği sürece erişim etkin kabul edilir. Önce bir simge gösterilir, ardından uygulama kapatılana veya kapatılana kadar devam eden bir noktaya geçiş yapılır.

Kullanıcı göstergelere dokunduğunda bir uygulamanın o anda kamerayı, mikrofonu veya her ikisini de kullandığını gösteren bir iletişim kutusu açılır.

Indicators for both active and recent access, and whether the access was from camera or microphone

Şekil 2. Aktif ve güncel erişim göstergeleri

Şekil 2'deki görüntü, son 5 saniye içinde çalışan bir uygulama tarafından verilere erişildiğinde aktif erişim göstergelerini göstermektedir.

Son erişim göstergeleri, son 15 saniye içinde bir uygulama tarafından verilere erişildiğini ancak uygulamanın etkin olmadığını gösteriyor. Tüm etkin uygulamalar diyalogda gösterilir, ancak önceki 15 saniyelik zaman dilimi içinde 1'den 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 donmuş halde kalır.

Teslim Et ve Etkinleştir

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ü bir cihaz yapılandırma anahtarına tepki verir: privacy/mic_camera_indicators_enabled .
  • Bu sırayla iki ayrı dağıtım aracı olduğundan geçiş gereklidir:
    1. Teslim etmek.
    2. Olanak vermek.
  • PermissionManager yöntem gerekli verileri sağlayamıyorsa Sistem Kullanıcı Arayüzü çökmemelidir.

Süreç akışı

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

  • uygulamalar
  • Göstergeler (SystemUI tarafından yönetilir)
  • Verileri hangi uygulamaların kullandığını belirlemenin bir yolu

PermissionController hangi uygulamaların verileri kullandığını belirleyen mekanizmayı sağlar. SystemUI, özel 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ıklattığında kullanımlarla ilgili verileri görüntüler.

Process flow for Permission Indicator functions

Şekil 3. Sistem bileşenleri ve (UI) geçiş akışı

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

1- Bir uygulama sistemden özel veriler ister.

2- Sistem izinleri kontrol eder. İzinlere izin veriliyorsa sistem veri sağlayıcıyı bilgilendirir ve uygulama operasyonlarındaki kullanımı not eder

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

4-5 Kullanıcı simgelere tıklar. Sistem kullanıcı arayüzü PermissionManager veri ister ve iletişim kutusunu kullanıcıya sunar.

Süreç Detayları

  1. Uygulamalar mikrofonu ve kamerayı kullanarak AppOpsManager.startOp , stopOp ve (veya) noteOp çağırır. Bu, sistem sunucusunda uygulama-op kayıtları oluşturur.
  2. Sistem kullanıcı 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ı yoluyla), 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 sesinin kapalı olup olmadığını kontrol eder.
  4. Sistem Kullanıcı Arayüzü, sistem dışı uygulama kullanımını doğrularsa (ve mikrofon kullanımı için mikrofonun sesinin açık olduğunu; kamera kullanımı için kameranın açık olduğunu), bu tür 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 halde simge stopOp alana kadar veya 5 saniye boyunca (hangisi daha uzunsa) gösterilir. Bir simgeye tıklayan kullanıcı, İletişim Kutusunu başlatmak için PermissionController giden bir amacı başlatır.

PermissionController mikrofon ve kamera için tüm son kullanımları yükler. Bunlardan herhangi birinin şu anda çalışıp çalışmadığını veya Sistem Kullanıcı Arayüzü tarafından belirlenen zaman çerçevesi içinde çalışıp çalışmadığını kontrol eder. Bir eşleşme bulursa izni kullanan uygulamanın adını ve uygulamanın kullandığı izinleri görüntüler.

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

Telefon, 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ını hesaba katmak için) uygulamalıdır.