Izin Android memberikan kontrol yang meningkatkan kesadaran pengguna dan membatasi akses aplikasi ke data sensitif. Mengonfigurasi izin di Android 8.0 dan yang lebih rendah mencakup pemberian izin, yang tanpanya aplikasi yang memiliki hak istimewa akan dinonaktifkan, meskipun aplikasi tersebut berada di jalur priv-app
. Di Android 9 dan lebih tinggi, perangkat yang mencoba menggunakan aplikasi yang tidak diizinkan dengan benar tidak akan bisa boot.
Android 10 memperkenalkan konsep peran , nama unik dalam sistem yang dikaitkan dengan persyaratan dan hak istimewa tertentu. Tetapkan peran ke aplikasi untuk memberinya izin untuk tujuan tertentu, dan konfigurasikan peran default menggunakan sumber daya konfigurasi platform.
Peningkatan perlindungan terhadap Aplikasi yang Berpotensi Membahayakan (PHA) semakin membaik
- Transparansi menjadi perilaku aplikasi yang berpotensi membahayakan.
- Kontrol pengguna atas perilaku aplikasi.
- Kebijaksanaan pengembang aplikasi saat menggunakan data pribadi, dilindungi oleh izin.
Pemasangan paket dan izin
Di Android 9 dan yang lebih rendah, fungsi pemasangan paket dan kontrol izin 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 mengilustrasikan lokasi kedua paket di Android 10.
Daftar yang diizinkan dan akses
Di Android 6.0 dan 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 secara eksplisit mengizinkan aplikasi yang memiliki hak istimewa dalam file XML konfigurasi sistem di direktori /etc/permissions
. Di Android 9 dan lebih tinggi, izin istimewa harus diizinkan jika tidak, perangkat tidak dapat melakukan booting.
Untuk membatasi visibilitas API internal dan mencegah aplikasi mengakses pustaka platform secara tidak sengaja, Android 7.0 memperkenalkan Namespace untuk Native Libraries . Ini memisahkan perpustakaan sistem dari perpustakaan aplikasi, dan produsen perangkat dapat menambahkan perpustakaan asli mereka sendiri.
Mulai di Android 10, aplikasi harus memiliki izin tanda tangan dan persetujuan pengguna untuk mengakses konten layar perangkat . Aplikasi istimewa yang mengandalkan fungsi pengambilan senyap, seperti mengambil tangkapan layar, sebaiknya menggunakan kelas MediaProjection .
Transparansi dan privasi
Di Android 6.0 dan lebih tinggi, alamat MAC pabrik perangkat dilindungi dari akses oleh penyedia layanan Wi-Fi dan penganalisis paket. Pembatasan tambahan pada Android 10 membatasi aplikasi mengakses pengidentifikasi perangkat (ID) yang tidak dapat diubah kecuali aplikasi tersebut diizinkan untuk mendapatkan izin istimewa . (Bagian Konektivitas memberikan diskusi terkait tentang Pengidentifikasi Perangkat , karena hal ini berdampak pada operator.)
Di Android 9 dan yang lebih rendah, pengguna terus-menerus membuat pilihan saat memberikan akses lokasi ke aplikasi. Mulai Android 10, fitur izin lokasi tiga negara memberi pengguna tiga opsi untuk mengizinkan akses aplikasi ke lokasi perangkat. Persyaratan izin ini berlaku untuk aplikasi di Android 10, apa pun SDK targetnya.
Konfigurasikan izin untuk fitur transparansi dan privasi lainnya mulai di Android 10
- Pengingat lokasi akses latar belakang menunjukkan 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 atau membaca dari data afinitas kontak di database. Hal ini berdampak pada API terkait penelepon .
Konfigurasi yang disederhanakan
Konfigurasi izin telah disederhanakan untuk Android 6.0 dan lebih tinggi.
- Kemampuan ambien untuk layanan yang diluncurkan oleh
init
menyimpan semua aspek konfigurasi layanan dalam satu file.rc
. Saat mengatur kemampuan untuk layanan yang tidak diluncurkan olehinit
, konfigurasikan kemampuan sistem file menggunakanfs_config.c
sebagai gantinya. - Android 7.x dan yang lebih rendah memperluas mekanisme ID Android (AID), menggunakan file
android_filesystem_config.h
khusus perangkat untuk menentukan kemampuan sistem file dan/atau AID pabrikan perangkat khusus. Android 8.0 dan 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) dan ke daemon USB asli. Antarmuka USB HAL harus diterapkan pada setiap perangkat yang diluncurkan pada Android 8.0 dan lebih tinggi.