Izin Android menyediakan kontrol yang meningkatkan kesadaran pengguna dan membatasi akses aplikasi ke data sensitif. Mengonfigurasi izin di Android 8.0 dan yang lebih rendah mencakup daftar yang diizinkan, yang tanpa itu aplikasi dengan hak istimewa akan dinonaktifkan, meskipun jika aplikasi tersebut berada di jalur priv-app
. Di Android 9 dan yang lebih tinggi, perangkat
yang mencoba menggunakan aplikasi yang tidak diizinkan dengan benar tidak akan melakukan booting.
Android 10 memperkenalkan konsep peran, nama unik dalam sistem yang terkait dengan persyaratan dan hak istimewa tertentu. Tetapkan peran ke aplikasi untuk memberikan izin kepada aplikasi tersebut untuk tujuan tertentu, dan konfigurasi peran default menggunakan resource konfigurasi platform.
Peningkatan perlindungan terhadap Aplikasi yang Berpotensi Membahayakan (PHA) meningkatkan:
- Transparansi terhadap perilaku aplikasi yang berpotensi membahayakan.
- Kontrol pengguna atas perilaku aplikasi.
- Diskresi developer aplikasi saat menggunakan data pribadi, yang dilindungi oleh izin.
Penginstalan dan izin paket
Di Android 9 dan yang lebih rendah, fungsi kontrol izin dan penginstalan paket terdapat dalam paket PackageInstaller
(//packages/apps/PackageInstaller
). Di Android 10 dan yang lebih tinggi, fungsi kontrol izin berada dalam paket terpisah, PermissionController
(//packages/apps/PermissionController
). Gambar 1 menggambarkan lokasi kedua paket di Android 10.

Gambar 1. Fungsi penginstalan paket dan kontrol izin di Android 10
Daftar yang diizinkan dan akses
Di Android 6.0 dan yang lebih tinggi, aplikasi meminta akses ke izin berbahaya saat runtime. Android 10 menambahkan izin waktu proses pengenalan aktivitas (AR), yang meminta pengguna untuk mengubah atau mengizinkan izin berbahaya.
Android 8.0 mengharuskan Anda untuk secara eksplisit memasukkan aplikasi istimewa ke dalam daftar yang diizinkan di file XML konfigurasi sistem di direktori /etc/permissions
.
Di Android 9 dan yang lebih tinggi, izin istimewa harus
diizinkan
atau perangkat tidak dapat melakukan booting.
Untuk membatasi visibilitas API internal dan mencegah aplikasi mengakses library platform secara tidak sengaja, Android 7.0 memperkenalkan Namespace untuk Library Native. Hal ini memisahkan library sistem dari library aplikasi, dan produsen perangkat dapat menambahkan library native mereka sendiri.
Mulai Android 10, aplikasi harus memiliki izin tanda tangan dan izin pengguna untuk mengakses konten layar perangkat. Aplikasi istimewa yang mengandalkan fungsi pengambilan gambar diam, seperti mengambil screenshot, harus menggunakan class MediaProjection.
Android 15 mengharuskan Anda untuk secara eksplisit
mengizinkan
izin tanda tangan platform yang diminta oleh aplikasi non-sistem atau yang baru diminta oleh update
ke aplikasi sistem, dalam file XML konfigurasi sistem di direktori /etc/permissions
.
Transparansi dan privasi
Di Android 6.0 dan yang lebih tinggi, alamat MAC pabrik perangkat dilindungi dari akses oleh penyedia layanan Wi-Fi dan penganalisis paket. Pembatasan tambahan mulai Android 10 membatasi aplikasi agar tidak mengakses ID perangkat yang tidak dapat diubah (ID) kecuali jika aplikasi tersebut dimasukkan dalam daftar yang diizinkan untuk izin istimewa. (Bagian Konektivitas memberikan pembahasan terkait tentang ID Perangkat, karena hal ini memengaruhi operator.)
Di Android 9 dan yang lebih lama, pengguna membuat pilihan yang persisten saat memberikan akses lokasi ke aplikasi. Mulai Android 10, fitur izin lokasi tiga status memberi pengguna tiga opsi untuk mengizinkan akses aplikasi ke lokasi perangkat. Persyaratan izin ini diterapkan ke aplikasi di Android 10, terlepas dari SDK target.
Mengonfigurasi izin untuk fitur transparansi dan privasi lainnya mulai di Android 10
- Pengingat
akses lokasi latar belakang ditampilkan kepada pengguna saat aplikasi mengakses lokasi perangkat mereka menggunakan izin
ACCESS_FINE_LOCATION
di latar belakang. - Data terkait afinitas kontak, yang dikelola oleh komponen Penyedia Kontak, diakses secara berbeda: Aplikasi tidak dapat menulis ke atau membaca dari data afinitas kontak di database. Hal ini memengaruhi API terkait pemanggil.
Konfigurasi yang disederhanakan
Konfigurasi izin telah disederhanakan untuk Android 6.0 dan yang lebih tinggi.
- Kemampuan
sekitar untuk layanan yang diluncurkan oleh
init
menyimpan semua aspek konfigurasi layanan dalam satu file.rc
. Saat menyetel kemampuan untuk layanan yang tidak diluncurkan olehinit
, konfigurasi kemampuan sistem file menggunakanfs_config.c
. - Android 7.x dan yang lebih lama memperluas mekanisme ID Android (AID), menggunakan file
android_filesystem_config.h
khusus perangkat untuk menentukan kemampuan sistem file dan/atau AID khusus produsen perangkat. Android 8.0 dan yang lebih tinggi mendukung metode baru untuk memperluas kemampuan sistem file. - Di Android 8.0, penanganan perintah USB dipindahkan dari skrip
init
khusus perangkat (pengganti lapisan HAL) ke daemon USB native. Antarmuka USB HAL harus diimplementasikan di setiap perangkat yang diluncurkan di Android 8.0 dan yang lebih tinggi.