PermissionController modülü, güncellenebilir gizlilik ilkelerini ve kullanıcı arabirimi öğelerini etkinleştirir (örneğin, izin verme ve yönetmeyle ilgili ilkeler ve kullanıcı arabirimi).
Android 12'den başlayarak, Role
Role
modüler hale getirmek için modüle taşınır.
PermissionController Hakkında
com.google.android.permissioncontroller
APK, belirli bir amaç için uygulamalara erişime izin vermek için izinle ilgili kullanıcı arayüzünü, mantığı ve rolleri işler. Aşağıdakileri kontrol eder:
Çalışma zamanı izni verme (sistem uygulamalarına verme dahil)
Çalışma zamanı izin yönetimi (izinlerin gruplandırılması dahil)
Çalışma zamanı izni kullanım takibi
Roller
Android 9'da bu tür izinler com.google.android.packageinstaller
bir parçasıydı. Android 10'da, Paket Yükleyici uygulaması, izinler mantığının güncellenmesini sağlamak için bölümlere ayrılmıştır. Güncellenebilir bir Ana Hat modülü olarak PermissionController:
Çerçeveyle yalnızca kararlı
@SystemApi
aracılığıyla etkileşime girer (@hide
API kullanımı yok).İzinle ilgili amaçları 0'ın üzerinde bir önceliğe sahip olarak işler.
OEM'lerin temayı özelleştirmesine olanak tanıyan bir mekanizma sunar.
Rol yönetimi, izin iptali ve temel izin bilgileri (Ayarlar için) dahil olmak üzere sistem ve uygulamaların bağlanabileceği hizmetler sağlar.
Kullanılmayan uygulamalar için otomatik iptali destekler (Android 11'de yeni).
Kullanılmayan uygulamalar için otomatik iptal
Android 11'de PermissionsController modülü, uzun süredir kullanılmayan uygulamalar için çalışma zamanı izinlerini otomatik olarak iptal edebilir. SDK 30 veya üstünü hedefleyen uygulamalarda otomatik iptal varsayılan olarak etkinken , SDK 29 veya daha düşük sürümlerini hedefleyen uygulamalarda otomatik iptal varsayılan olarak devre dışıdır. Etkinleştirildiğinde, otomatik iptal tüm çalışma zamanı izinlerini etkiler, ancak ilke ve sistem tarafından sabitlenmiş izinler ve varsayılan veya rol tarafından verilen izinler dahil olmak üzere önceden verilmiş tüm izinleri muaf tutar. Ayrıntılar için , Kullanılmayan uygulamalardan izinleri otomatik sıfırlama konusuna bakın.
Paket formatı
PermissionController modülü bir APK dosyası olarak teslim edilir.
Modül sınırı
Android 12'de İzin modülü kodu, packages/apps/PermissionController
( platform/packages/apps/PackageInstaller
projesi) ve frameworks/base/apex/permission
(bu, frameworks/base
projenin bir alt dizinidir) taşınır.
packages/modules/Permission
için yeni proje yapısı aşağıdaki gibidir:
-
frameworks/base/apex/permission
dosyaları -
packages/apps/PermissionController
PermissionController dosyaları
OEM'ler, yamalarını orijinal proje dizinlerinden yeni proje dizinine taşımaya yardımcı olması için örnek komutları kullanabilir.
Bir yamayı çerçeveler/taban/apek/izin alanından taşıyın
root/frameworks/base/$ git format-patch -1 --relative=apex/permission commit --stdout > patch-file.txt
root/packages/modules/Permission$ git am -p2 patch-file.txt
Paketlerden/uygulamalardan/PermissionController'dan bir yamayı taşıma
root/packages/apps/PermissionController$ git format-patch -1 commit --stdout > patch-file.txt
root/packages/modules/Permission$ git am -p2 --directory=PermissionController patch-file.txt
özelleştirme
OEM'ler, çalışma zamanı kaynak kaplamalarını (RROS) kullanarak izinler UI temasını (renkler, kenar boşlukları, yazı tipleri ve çizilebilirler) özelleştirebilir.