Mulai Android 8.0, perangkat Android menggunakan alamat MAC acak saat memeriksa jaringan baru saat tidak dikaitkan dengan jaringan. Di Android 9, Anda dapat mengaktifkan opsi developer (dinonaktifkan secara default) untuk menyebabkan perangkat menggunakan alamat MAC acak saat terhubung ke jaringan Wi-Fi.
Di Android 10, pengacakan MAC diaktifkan secara default untuk mode klien, SoftAp, dan Wi-Fi Direct.
Pengacakan MAC mencegah pemroses menggunakan alamat MAC untuk membuat histori aktivitas perangkat, sehingga meningkatkan privasi pengguna.
Selain itu, alamat MAC diacak sebagai bagian dari operasi Wi-Fi Aware dan Wi-Fi RTT.
Untuk informasi selengkapnya, lihat Perilaku Randomisasi MAC.
Implementasi
Untuk menerapkan pengacakan MAC di perangkat Anda:
Bekerja sama dengan vendor chip Wi-Fi untuk menerapkan metode HAL berikut:
IWifiStaIface#setMacAddress
: Mengonfigurasi alamat MAC antarmuka. Implementasi default akan menonaktifkan antarmuka, mengubah alamat MAC, dan mengaktifkan kembali antarmuka.IWifiStaIface#getFactoryMacAddress
: Mendapatkan MAC factory dariwlan0
menggunakan panggilanioctl
.ISupplicantP2pIface#setMacRandomization
: Mengaktifkan/menonaktifkan pengacakan MAC P2P di pemohon.
Tetapkan
config_wifi_connected_mac_randomization_supported
ketrue
di Setelanconfig.xml
(ini dapat dilakukan di overlay kustom perangkat).- Flag ini digunakan untuk mengontrol apakah randomisasi MAC mode klien diaktifkan.
Tetapkan
config_wifi_p2p_mac_randomization_supported
ketrue
di Setelanconfig.xml
(ini dapat dilakukan di overlay kustom perangkat).- Flag ini digunakan untuk mengontrol apakah pengacakan MAC Wi-Fi direct diaktifkan.
Uji implementasi Anda menggunakan metode yang dijelaskan dalam Validasi.
UI Sistem harus:
- Memiliki opsi untuk mengaktifkan atau menonaktifkan pengacakan untuk setiap SSID.
- Mengaktifkan pengacakan MAC secara default untuk semua jaringan yang baru ditambahkan.
Gunakan implementasi referensi UI Setelan untuk menerapkan perintah baru.
Perangkat yang menjalankan Android 9 atau yang lebih rendah mungkin tidak
memiliki dukungan untuk pengacakan MAC Wi-Fi. Saat mengupgrade perangkat tersebut ke Android
10, fitur pengacakan MAC Wi-Fi dapat dinonaktifkan
dengan menetapkan tanda WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION
ke benar di
file make HAL vendor Wi-Fi.
Validasi
Untuk memvalidasi bahwa fitur berfungsi sebagaimana mestinya, jalankan pengujian manual:
- Pastikan pengacakan MAC diaktifkan di perangkat dengan memeriksa apakah
config_wifi_connected_mac_randomization_supported
ditetapkan ketrue
di overlay perangkat. - Hubungkan ke jaringan Wi-Fi.
- Ketuk jaringan untuk membuka halaman Detail jaringan. Verifikasi bahwa pengacakan MAC diaktifkan. Pastikan alamat MAC yang ditampilkan adalah MAC acak, dengan bit yang dihasilkan secara lokal ditetapkan ke 1 dan bit multicast ditetapkan ke 0.
- Nonaktifkan pengacakan MAC. Hubungkan ke jaringan yang sama dan verifikasi bahwa MAC pabrik sedang digunakan.
- Hapus jaringan dengan mengetuk Lupakan di halaman Detail jaringan.
Hubungkan ke jaringan yang sama dan pastikan alamat MAC acak yang sama digunakan.
Untuk menguji pengacakan MAC di perangkat pra-Android 10 (mampu mendukung pengacakan MAC) yang mengupgrade ke Android 10 atau yang lebih tinggi:
- Memiliki minimal satu jaringan tersimpan di perangkat yang menjalankan Android 9 atau yang lebih rendah.
- Lakukan flash pada image sistem Android 10.
- Di pemilih Wi-Fi, pastikan pengacakan MAC dinonaktifkan untuk semua jaringan tersimpan.
- Aktifkan pengacakan MAC. Hubungkan ke jaringan yang sama dan pastikan MAC acak sedang digunakan.