ID Perangkat yang Tidak Dapat Diubah

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

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 .

Screen shows if device ID uses a randomized MAC address for privacy
Gambar 1. Alamat MAC ditampilkan secara acak di bawah Privasi di detail Jaringan

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
  • Aplikasi yang menargetkan Android 9 atau lebih lama
    • Jika mereka memiliki izin READ_PHONE_STATE , respons null 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 .