ID perangkat yang tidak dapat diubah

Di Android 6 dan yang lebih tinggi, penyedia layanan Wi-Fi dan penganalisis paket telah dibatasi agar tidak mengambil alamat MAC pabrik perangkat melalui stack Wi-Fi dari permintaan jaringan. Mulai Android 10, pembatasan tambahan diterapkan yang membatasi akses ke ID perangkat (ID) ke aplikasi dengan level izin hak istimewa. Hal ini melindungi ID perangkat seperti

  • nomor IMEI, MEID, ESN, dan IMSI telepon.
  • 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 yang lebih lama. ID perangkat dapat diakses oleh:

Akses paket dengan hak istimewa

Paket harus memiliki hak istimewa untuk mengakses ID perangkat. Aplikasi tersebut harus memiliki izin READ_PRIVILEGED_PHONE_STATE di class Manifest.permission, dan diizinkan dalam file privapp-permission.xml. Untuk informasi tentang proses daftar yang diizinkan, lihat Daftar Izin Berhak Istimewa yang Diizinkan.

Untuk informasi tentang cara mendapatkan ID unik untuk paket tanpa hak istimewa, lihat Kasus penggunaan umum dan ID yang sesuai untuk digunakan.

ID perangkat yang dibatasi dan alamat MAC acak

Untuk lebih membatasi ID perangkat, semua perangkat di Android 10 mentransmisikan alamat MAC acak secara default untuk permintaan probe dan terkait, dan harus memiliki alamat MAC acak yang berbeda untuk setiap SSID. Jangan gunakan alamat MAC pabrik perangkat dalam mode klien, titik akses (AP) lunak, atau kasus penggunaan Wi-Fi Direct. Aplikasi ini harus tetap disembunyikan dari API yang dapat diakses secara publik dan bukan aplikasi dengan hak istimewa. Aplikasi dengan hak istimewa yang memerlukan alamat MAC pabrik untuk ditampilkan harus memiliki izin LOCAL_MAC_ADDRESS.

Pengguna memiliki opsi untuk mempertahankan alamat MAC acak default yang ditetapkan ke setiap SSID. Opsi ini dapat dilihat di bagian Privasi di Setelan > Detail jaringan. Untuk mempelajari cara mendapatkan alamat MAC acak, lihat Alamat MAC acak.

Layar menampilkan apakah ID perangkat menggunakan alamat MAC acak untuk privasi

Gambar 1. Alamat MAC ditampilkan sebagai acak di bagian Privasi dalam detail Jaringan.

Aplikasi yang memanggil API ID perangkat

Aplikasi yang memanggil API ID perangkat harus memenuhi persyaratan Android 10. Jika tidak, saat mencoba mengakses ID perangkat, hal berikut akan ditampilkan:

  • Aplikasi yang menargetkan Android 10
  • Aplikasi yang menargetkan Android 9 atau yang lebih lama
    • Jika memiliki izin READ_PHONE_STATE, respons null atau data placeholder akan ditampilkan.
    • 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 mengetahui informasi selengkapnya tentang ID perangkat yang tidak dapat diubah, lihat ID perangkat yang tidak dapat direset dan praktik terbaik untuk ID unik.

Pengujian

Aplikasi harus dicegah agar tidak mengakses nomor seri perangkat dan, jika berlaku, IMEI atau MEID, nomor seri SIM, dan ID pelanggan. Aplikasi dengan izin untuk mengakses ID ini juga harus memenuhi salah satu kriteria yang tercantum di bagian Siapa yang dapat mengakses ID perangkat.