Di Android 6 dan yang lebih tinggi, penyedia layanan Wi-Fi dan penganalisis paket telah dibatasi untuk mengambil alamat MAC pabrik perangkat melalui tumpukan Wi-Fi dari permintaan jaringan. Mulai Android 10, pembatasan tambahan diberlakukan yang membatasi akses ke pengenal perangkat (ID) ke aplikasi dengan tingkat izin istimewa . Ini melindungi ID perangkat seperti
- nomor telepon IMEI, MEID, ESN, dan IMSI.
- build, SIM, atau nomor seri 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 dengan
- Aplikasi SMS bawaan.
- Aplikasi dengan izin
READ_PRIVILEGED_PHONE_STATE
di kelasManifest.permission
, dan yang diizinkan di fileprivapp-permission.xml
. Ini juga harus dimuat di direktoripriv-app
. - Aplikasi dengan hak istimewa operator seperti yang didefinisikan dalam Hak Istimewa Operator UICC .
- Pemilik perangkat atau pemilik profil dengan izin
READ_PHONE_STATE
yang 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 Istimewa yang Diizinkan .
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 terbatas dan alamat MAC acak
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 dengan hak istimewa. Aplikasi istimewa yang memerlukan alamat MAC pabrik untuk dikembalikan harus memiliki izin LOCAL_MAC_ADDRESS
.
Pengguna memiliki opsi untuk menyimpan alamat MAC acak default yang ditetapkan untuk setiap SSID. Opsi ini dapat dilihat di bawah Privasi di Pengaturan > Detail jaringan . Untuk mempelajari tentang mendapatkan alamat MAC acak, lihat Alamat MAC acak .
Aplikasi yang memanggil API ID perangkat
Aplikasi yang memanggil Device ID API harus memenuhi persyaratan Android 10. Jika tidak, ketika mereka mencoba mengakses ID perangkat, berikut ini ditampilkan:
- 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 dikembalikan. - Jika tidak, API ID perangkat mengeluarkan
SecurityException
yang berisi nama metode yang dipanggil, dan indikasi bahwa aplikasi panggilan tidak memenuhi persyaratan untuk mengakses ID yang diminta.
Untuk informasi lebih lanjut 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 dengan izin untuk mengakses ID ini juga harus memenuhi salah satu kriteria yang tercantum di bawah Siapa yang dapat mengakses ID perangkat .