Android izinleri, kullanıcı farkındalığını artıran ve bir uygulamanın hassas verilere erişimini sınırlayan kontroller sağlar. Android 8.0 ve önceki sürümlerde izinlerin yapılandırılması, izin verilenler listesine eklemeyi içerir ve bunlar olmadan ayrıcalıklı uygulamalar, özel priv-app
yolunda olsalar bile devre dışı bırakılır. Android 9 ve sonraki sürümlerde, uygun şekilde izin verilenler listesine eklenmemiş uygulamaları kullanmaya çalışan bir cihaz başlatılmaz.
Android 10, sistem içinde belirli gereksinimler ve ayrıcalıklarla ilişkilendirilen benzersiz bir ad olan rol kavramını tanıttı. Uygulamalara belirli bir amaç için izinler vermek üzere roller atayın ve platform yapılandırma kaynaklarını kullanarak varsayılan rolleri yapılandırın.
Potansiyel Olarak Zararlı Uygulamalara (PHA) karşı artırılmış korumalar
- Zararlı olabilecek uygulama davranışına karşı şeffaflık.
- Uygulama davranışı üzerinde kullanıcı kontrolü.
- İzinlerle korunan özel verileri kullanırken uygulama geliştiricilerinin takdir yetkisi.
Paket yükleme ve izin
Android 9 ve önceki sürümlerde, paket yükleme ve izin denetimi işlevleri PackageInstaller
paketinde ( //packages/apps/PackageInstaller
) bulunuyordu. Android 10 ve sonraki sürümlerde, izin denetimi işlevi ayrı bir pakette bulunur, PermissionController
( //packages/apps/PermissionController
). Şekil 1 , iki paketin Android 10'da nerede bulunduğunu göstermektedir.

İzin verilenler ve erişim
Android 6.0 ve sonraki sürümlerde uygulamalar, çalışma zamanında tehlikeli izinlere erişim ister. Android 10, kullanıcıdan tehlikeli izinleri değiştirmesini veya izin vermesini isteyen etkinlik tanıma (AR) çalışma zamanı izinleri ekler.
Android 8.0, /etc/permissions
dizinindeki sistem yapılandırma XML dosyalarında ayrıcalıklı uygulamaları açıkça izin verilenler listesine eklemenizi gerektiriyordu. Android 9 ve sonraki sürümlerde, ayrıcalıklı izinler izin verilenler listesine eklenmelidir , aksi takdirde cihaz önyükleme yapamaz.
Dahili API görünürlüğünü sınırlamak ve uygulamaların yanlışlıkla platform kitaplıklarına erişmesini önlemek için Android 7.0 , Yerel Kitaplıklar için Ad Alanlarını tanıttı. Bu, sistem kitaplıklarını uygulama kitaplıklarından ayırır ve cihaz üreticileri kendi yerel kitaplıklarını ekleyebilir.
Android 10'da başlayan uygulamalar, bir cihazın ekran içeriğine erişmek için hem imza izinlerine hem de kullanıcı iznine sahip olmalıdır. Ekran görüntüsü alma gibi sessiz yakalama işlevine dayanan ayrıcalıklı uygulamalar bunun yerine MediaProjection sınıfını kullanmalıdır.
Şeffaflık ve gizlilik
Android 6.0 ve sonraki sürümlerde, bir cihaz fabrikası MAC adresi, Wi-Fi servis sağlayıcıları ve paket analizörleri tarafından erişime karşı korunur. Android 10'dan itibaren ek kısıtlamalar, ayrıcalıklı izinler için izin verilenler listesine eklenmedikçe, uygulamaların değişmez cihaz tanımlayıcılarına (ID'ler) erişmesini sınırlar. ( Bağlanabilirlik bölümü, taşıyıcıları etkilediği için Cihaz Tanımlayıcıları hakkında ilgili bir tartışma sağlar.)
Android 9 ve önceki sürümlerde kullanıcılar, uygulamalara konum erişimi verirken kalıcı seçimler yapar. Android 10'dan başlayarak, üç durumlu konum izinleri özelliği, kullanıcılara bir cihazın konumuna uygulama erişimine izin vermek için üç seçenek sunar. Bu izin gereksinimleri, hedef SDK'dan bağımsız olarak Android 10'daki uygulamalara uygulanır.
Android 10'dan başlayarak diğer şeffaflık ve gizlilik özellikleri için izinleri yapılandırın
- Arka planda erişim konumu hatırlatıcısı, bir uygulama arka planda
ACCESS_FINE_LOCATION
iznini kullanarak cihaz konumlarına eriştiğinde kullanıcıları gösterir. - Kişi Sağlayıcı bileşeni tarafından yönetilen Kişiler yakınlığı ile ilgili verilere farklı şekilde erişilir: Uygulamalar, veritabanındaki kişi yakınlıkları verilerine yazamaz veya bu verilerden okuyamaz. Bu , arayanla ilgili API'leri etkiler.
Kolaylaştırılmış konfigürasyonlar
İzin yapılandırmaları, Android 6.0 ve sonraki sürümler için kolaylaştırılmıştır.
-
init
tarafından başlatılan hizmetler için ortam yetenekleri , hizmet yapılandırmasının tüm yönlerini tek bir.rc
dosyasında tutar.init
tarafından başlatılmayan hizmetler için yetenekleri ayarlarken, dosya sistemi yeteneklerini bunun yerinefs_config.c
kullanarak yapılandırın. - Android 7.x ve önceki sürümleri, dosya sistemi yeteneklerini ve/veya özel cihaz üreticisi AID'lerini belirtmek için cihaza özel bir
android_filesystem_config.h
dosyası kullanarak Android Kimlikleri (AID'ler) mekanizmasını genişletir. Android 8.0 ve üstü, dosya sistemi yeteneklerini genişletmek için yeni bir yöntemi destekler. - Android 8.0'da, USB komutlarının işlenmesi, aygıta özgü
init
komut dosyalarından (HAL katmanlarının bir ikamesi) dışına ve yerel bir USB arka plan programına taşındı. USB HAL arabirimi, Android 8.0 ve sonraki sürümlerde başlatılan her cihazda uygulanmalıdır.