Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Pengontrol Izin

Modul PermissionController mengaktifkan kebijakan privasi dan elemen UI yang dapat diperbarui (misalnya, kebijakan dan UI seputar pemberian dan pengelolaan izin).

Mulai Android 12, kerangka kerja dan kelas server sistem untuk Role dipindahkan ke modul untuk membuat Role sepenuhnya modular.

Tentang Pengontrol Izin

APK com.google.android.permissioncontroller menangani UI, logika, dan peran terkait izin untuk mengizinkan akses aplikasi untuk tujuan tertentu. Ini mengontrol hal-hal berikut:

  • Pemberian izin runtime (termasuk pemberian ke aplikasi sistem)

  • Manajemen izin runtime (termasuk pengelompokan izin)

  • Pelacakan penggunaan izin runtime

  • Peran

Di Android 9, izin tersebut adalah bagian dari com.google.android.packageinstaller . Di Android 10, aplikasi Pemasang Paket dibagi menjadi beberapa bagian untuk memungkinkan logika izin diperbarui. Sebagai modul Mainline yang dapat diperbarui, PermissionController:

  • Berinteraksi dengan kerangka kerja hanya melalui @SystemApi yang stabil (tanpa penggunaan API @hide ).

  • Menangani maksud terkait izin dengan prioritas di atas 0.

  • Mengekspos mekanisme untuk memungkinkan OEM menyesuaikan tema.

  • Menyediakan layanan yang dapat diikat oleh sistem dan aplikasi, termasuk manajemen peran, pencabutan izin, dan informasi izin dasar (untuk Pengaturan).

  • Mendukung pencabutan otomatis untuk aplikasi yang tidak digunakan (baru di Android 11).

Cabut otomatis untuk aplikasi yang tidak digunakan

Di Android 11, modul PermissionsController dapat secara otomatis mencabut izin waktu proses untuk aplikasi yang tidak digunakan dalam jangka waktu yang lama. Aplikasi yang menargetkan SDK 30 atau lebih tinggi memiliki pencabutan otomatis yang diaktifkan secara default, sementara aplikasi yang menargetkan SDK 29 atau lebih rendah menonaktifkan pencabutan otomatis secara default. Saat diaktifkan, pencabutan otomatis memengaruhi semua izin waktu proses tetapi mengecualikan semua izin yang diberikan sebelumnya, termasuk izin yang ditetapkan kebijakan dan sistem serta izin yang diberikan secara default atau berdasarkan peran. Untuk detailnya, lihat Menyetel ulang izin secara otomatis dari aplikasi yang tidak digunakan .

Format paket

Modul PermissionController dikirimkan sebagai file APK.

Batas modul

Di Android 12, kode modul Izin dipindahkan dari packages/apps/PermissionController (proyek platform/packages/apps/PackageInstaller ) dan frameworks/base/apex/permission (ini adalah subdirektori dari frameworks/base ).

Struktur proyek baru untuk packages/modules/Permission adalah sebagai berikut:

  • File dari frameworks/base/apex/permission
  • File PermissionController dari packages/apps/PermissionController

OEM dapat menggunakan contoh perintah untuk membantu memindahkan patch mereka dari direktori proyek asli ke direktori proyek baru.

Pindahkan patch dari frameworks/base/apex/permission

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

Pindahkan tambalan dari paket/aplikasi/PermissionController

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

Kustomisasi

OEM dapat menyesuaikan tema UI izin (warna, margin, font, dan drawable) menggunakan runtime resource overlay (RROS) .