PermissionController Mainline modülü, gizlilik politikalarını ve İzin verme ve yönetmeyle ilgili kullanıcı arayüzü (örneğin, politikalar ve kullanıcı arayüzü) girin.
PermissionController hakkında
ConsentController 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. Şunları kontrol eder:
- Çalışma zamanı izni verme (sistem uygulamalarına izin verme dahil)
- Çalışma zamanı izin yönetimi (izinlerin gruplandırılması dahil)
- Çalışma zamanı izin kullanımını izleme
- Roller
Android 12'den itibaren çerçeve ve sistem sunucusu
Role
sınıfları
Role
adlı taşıyıcıyı tamamen modüler hale getirmek üzere 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. Kullanıcı güncellenebilir Mainline modülü, PermissionController:
- Çerçeveyle yalnızca kararlı @SystemApi aracılığıyla 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.
- Aşağıdakiler dahil olmak üzere, sistemin ve uygulamaların bağlanabileceği hizmetler sağlar: rol yönetimi, izin iptali ve temel izin bilgileri ( Ayarlar) tıklayın.
- Kullanılmayan uygulamalar için otomatik iptali destekler (Android'de yenidir) 11).
Android9'da izin kontrolü,
com.android.packageinstaller
Kullanılmayan uygulamalar için otomatik olarak iptal et
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 edildi etkinleştirilir ancak SDK 29 veya önceki sürümleri hedefleyen uygulamalarda otomatik olarak iptal edilir. devre dışı bırakılır. Otomatik iptal et etkinleştirildiğinde tüm çalışma zamanını etkiler izinleri dahil olmak üzere önceden verilmiş tüm izinleri muaf tutar. sistem tarafından sabit izinler ve varsayılan olarak veya rol bazında verilen izinler Örneğin, daha fazla bilgi için Kullanılmayan izinleri otomatik olarak sıfırlama başlıklı makaleyi inceleyin uygulamalar.
Paket biçimi
PermissionController 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çimi 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
Paketlerden/uygulamalardan/PermissionController'dan yama 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.