Di Android 6 dan lebih tinggi, penyedia layanan Wi-Fi dan penganalisis paket telah dibatasi dalam mengambil alamat MAC pabrik perangkat melalui tumpukan Wi-Fi dari permintaan jaringan. Mulai Android 10, terdapat pembatasan tambahan yang membatasi akses ke pengidentifikasi perangkat (ID) untuk aplikasi dengan tingkat izin istimewa . Ini melindungi ID perangkat seperti
- nomor telepon IMEI, MEID, ESN, dan IMSI.
- nomor seri build, SIM, atau USB.
Siapa yang dapat mengakses ID perangkat
ID Perangkat dibatasi di semua perangkat Android 10, meskipun aplikasi menargetkan Android 9 atau lebih rendah. ID Perangkat dapat diakses oleh
- Aplikasi SMS bawaan.
- Aplikasi dengan izin
READ_PRIVILEGED_PHONE_STATE
di kelasManifest.permission
dan daftar yang diizinkan di fileprivapp-permission.xml
. Ini juga harus dimuat di direktoripriv-app
. - Aplikasi dengan hak istimewa operator sebagaimana didefinisikan dalam Hak Istimewa Operator UICC .
- Pemilik perangkat atau pemilik profil dengan izin
READ_PHONE_STATE
diberikan di kelasManifest.permission
. (Daftar yang diizinkan tidak diperlukan.)
Akses paket istimewa
Sebuah paket harus memiliki hak istimewa untuk mengakses ID perangkat. Itu harus memiliki izin READ_PRIVILEGED_PHONE_STATE
di kelas Manifest.permission
, dan diizinkan dalam file privapp-permission.xml
. Untuk informasi tentang proses daftar yang diizinkan, lihat Daftar Izin Izin Istimewa .
Untuk informasi tentang mendapatkan ID unik untuk paket yang tidak memiliki hak istimewa , lihat Kasus penggunaan umum dan pengidentifikasi yang sesuai untuk digunakan .
ID perangkat yang dibatasi dan alamat MAC yang diacak
Untuk lebih membatasi ID perangkat, semua perangkat di Android 10 mengirimkan alamat MAC acak secara default untuk penyelidikan dan permintaan terkait, dan harus memiliki alamat MAC acak yang berbeda untuk setiap SSID. Jangan gunakan alamat MAC pabrik perangkat dalam mode klien, titik akses lunak (AP), atau kasus penggunaan Wi-Fi Direct. Itu harus tetap tersembunyi dari API yang dapat diakses publik yang bukan merupakan aplikasi yang memiliki hak istimewa. Aplikasi istimewa yang memerlukan pengembalian alamat MAC pabrik harus memiliki izin LOCAL_MAC_ADDRESS
.
Pengguna memiliki opsi untuk mempertahankan alamat MAC acak default yang ditetapkan untuk setiap SSID. Opsi ini dapat dilihat di bawah Privasi di Pengaturan > Detail jaringan . Untuk mempelajari cara mendapatkan alamat MAC acak, lihat Alamat MAC acak .
Aplikasi yang memanggil API ID perangkat
Aplikasi yang memanggil API ID perangkat harus memenuhi persyaratan Android 10. Jika tidak, ketika mereka mencoba mengakses ID perangkat, hal berikut akan dikembalikan:
- Aplikasi yang menargetkan Android 10
-
SecurityException
dilemparkan dari API ID perangkat. - Aplikasi yang menargetkan Android 9 atau lebih lama
- Jika mereka memiliki izin
READ_PHONE_STATE
, responsnull
atau data placeholder akan dikembalikan. - Jika tidak, API ID perangkat akan menampilkan
SecurityException
yang berisi nama metode yang dipanggil, dan indikasi bahwa aplikasi pemanggil tidak memenuhi persyaratan untuk mengakses ID yang diminta.
Untuk informasi selengkapnya tentang ID perangkat yang tidak dapat diubah, lihat Pengidentifikasi perangkat yang tidak dapat disetel ulang dan praktik terbaik untuk pengidentifikasi unik .
Pengujian
Aplikasi harus dicegah mengakses nomor seri perangkat dan, jika berlaku, IMEI/MEID, nomor seri SIM, dan ID pelanggan. Aplikasi yang memiliki izin untuk mengakses ID ini juga harus memenuhi salah satu kriteria yang tercantum di Siapa yang dapat mengakses ID perangkat .