PermissionController Mainline modülü, gizlilik politikalarını ve İzinlerin verilmesi ve yönetilmesiyle ilgili kullanıcı arayüzü (örneğin, politikalar ve kullanıcı arayüzü) girin.
PermissionController hakkında
AllowedController modülü; izinle ilgili kullanıcı arayüzünü, mantığı ve rolleri işler uygulamalara belirli bir amaca yönelik erişim izni vermek için kullanılır. Aşağıdakileri kontrol eder:
- Çalışma zamanında izin verme (sistem uygulamalarına izin verme dahil)
- Çalışma zamanı izin yönetimi (izinlerin gruplandırılması dahil)
- Çalışma zamanı izni kullanım takibi
- Roller
Android 12'den itibaren çerçeve ve sistem sunucusu
Role
sınıfları
Role
modülü tamamen modüler hale getirmek için modüle taşındı.
Android 10'da, Paket Yükleyici uygulaması , izin mantığının güncellenmesi için bölümlere ayrılmıştır. Güncellenebilir bir ana hat modülü olarak PermissionController:
- Çerçeveyle yalnızca kararlı @SystemApi üzerinden etkileşim kurar (@hide API kullanımı yoktur).
- İzinle ilgili amaçları öncelikli olarak ele alır > 0
- OEM'lerin tema oluşturmayı özelleştirmesini sağlayan bir mekanizma sunar.
- Rol yönetimi, izin iptal etme ve temel izin bilgileri (Ayarlar için) dahil olmak üzere sistemin ve uygulamaların bağlanabileceği hizmetler sağlar.
- Kullanılmayan uygulamalar için otomatik iptali destekler (Android'de yenidir) 11).
Android 9'da izin kontrolü com.android.packageinstaller
'ın bir parçasıdır.
Kullanılmayan uygulamalar için otomatik olarak iptal etme
Android 11'de PermissionsController modülü, bir süre kullanılmayan uygulamalar için çalışma zamanı izinlerini otomatik olarak iptal eder uzun süre devam edebilir. SDK 30 veya sonraki sürümleri hedefleyen uygulamalarda otomatik iptal özelliği varsayılan olarak etkin, SDK 29 veya önceki sürümleri hedefleyen uygulamalarda ise varsayılan olarak devre dışıdır. Etkinleştirildiğinde otomatik iptal, tüm çalışma zamanı izinlerini etkiler ancak politika ve sistem tarafından sabitlenen izinler ve varsayılan olarak veya role göre verilen izinler dahil olmak üzere önceden verilen tüm izinleri muaf tutar. Ayrıntılar için Kullanılmayan uygulamalardaki izinleri otomatik olarak sıfırlama başlıklı makaleyi inceleyin.
Paket biçimi
ConsentController modülünün biçimi sürümler arasında farklılık gösterir.
Android 11 veya sonraki sürümlerde PermissionController modülü APEX biçimindedir ve güncellenebilir. Paket adı
com.google.android.permission
.Android 10'da PermissionController modülü APK biçimindedir ve güncellenebilir. Paket adı
com.google.android.permissioncontroller
.
Modül sınırı
Android 12'de izin
modül kodu, packages/apps/PermissionController
konumundan taşınır
(platform/packages/apps/PackageInstaller
projesi) ve
frameworks/base/apex/permission
(bu,
frameworks/base
projesi).
packages/modules/Permission
için yeni proje yapısı aşağıdaki gibidir:
frameworks/base/apex/permission
dosyalarıpackages/apps/PermissionController
kaynağından PermissionController dosyaları
OEM'ler, yamalarını taşımak için örnek komutları kullanabilir yeni proje dizinine taşıyın.
Çerçevelerden/base/apex/izinlerden yama taşıma
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
packages/apps/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, izinlerin kullanıcı arayüzü temasını (renkler, kenar boşlukları, yazı tipleri ve çekilebilirler) çalışma zamanı kaynak yer paylaşımlarını kullanarak (RROS) değerleridir.