İzin Denetleyicisi

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.