Izin Android

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 akan menyertakan daftar yang diizinkan, yang tanpanya aplikasi dengan hak istimewa akan dinonaktifkan, meskipun 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 dapat melakukan booting.

Android 10 memperkenalkan konsep peran, nama unik dalam sistem yang terkait dengan persyaratan dan hak istimewa tertentu. Tetapkan peran ke aplikasi untuk memberinya izin untuk tujuan tertentu, dan konfigurasikan peran default menggunakan resource konfigurasi platform.

Peningkatan perlindungan terhadap Aplikasi yang Berpotensi Membahayakan (PHA) akan meningkatkan:

  • Transparansi terkait 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 lama, fungsi penginstalan paket dan kontrol izin terdapat dalam paket PackageInstaller (//packages/apps/PackageInstaller). Di Android 10 dan yang lebih baru, fungsi kontrol izin berada dalam paket terpisah, PermissionController (//packages/apps/PermissionController). Gambar 1 mengilustrasikan tempat kedua paket berada di Android 10.

Pemisahan fungsi penginstalan paket
dan kontrol izin untuk aplikasi sistem dan seperti yang digunakan oleh aplikasi
yang diinstal pengguna

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 runtime aktivitas pengenalan (AR), yang meminta pengguna untuk mengubah atau mengizinkan izin berbahaya.

Android 8.0 mengharuskan Anda secara eksplisit mengizinkan aplikasi dengan hak istimewa dalam file XML konfigurasi sistem di direktori /etc/permissions. Di Android 9 dan yang lebih baru, izin dengan hak istimewa harus diizinkan atau perangkat tidak dapat melakukan booting.

Untuk membatasi visibilitas API internal dan mencegah aplikasi secara tidak sengaja mengakses library platform, 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 dengan hak istimewa yang mengandalkan fungsi pengambilan bisu, seperti mengambil screenshot, harus menggunakan class MediaProjection.

Android 15 mengharuskan Anda secara eksplisit mencantumkan dalam daftar yang diizinkan izin tanda tangan platform yang diminta oleh aplikasi nonsistem 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 baru, alamat MAC pabrik perangkat dilindungi dari akses oleh penyedia layanan Wi-Fi dan penganalisis paket. Pembatasan tambahan sejak Android 10 membatasi aplikasi agar tidak mengakses ID perangkat yang tidak dapat diubah kecuali jika diizinkan untuk izin dengan hak istimewa. (Bagian Konektivitas memberikan diskusi 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 tristate memberi pengguna tiga opsi untuk mengizinkan akses aplikasi ke lokasi perangkat. Persyaratan izin ini diterapkan ke aplikasi di Android 10, terlepas dari SDK targetnya.

Mengonfigurasi izin untuk fitur transparansi dan privasi lainnya mulai Android 10

Konfigurasi yang disederhanakan

Konfigurasi izin telah disederhanakan untuk Android 6.0 dan yang lebih tinggi.

  • Kemampuan secara default untuk layanan yang diluncurkan oleh init menyimpan semua aspek konfigurasi layanan dalam satu file .rc. Saat menetapkan kemampuan untuk layanan yang tidak diluncurkan oleh init, konfigurasikan kemampuan sistem file menggunakan fs_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 produsen perangkat kustom. Android 8.0 dan yang lebih baru mendukung metode baru untuk memperluas kemampuan sistem file.
  • Di Android 8.0, penanganan perintah USB dipindahkan dari skrip init khusus perangkat (penggantian untuk lapisan HAL) dan ke daemon USB native. Antarmuka USB HAL harus diimplementasikan di setiap perangkat yang diluncurkan di Android 8.0 dan yang lebih tinggi.