Mulai Android 8.0, perangkat Android menggunakan alamat MAC acak saat mencari jaringan baru yang saat ini tidak terkait dengan jaringan. Di Android 9, Anda dapat mengaktifkan opsi pengembang ( dinonaktifkan secara default) untuk menyebabkan perangkat menggunakan alamat MAC acak saat menyambung ke jaringan Wi-Fi.
Di Android 10, pengacakan MAC diaktifkan secara default untuk mode klien, SoftAp, dan Wi-Fi Direct.
Pengacakan MAC mencegah pendengar menggunakan alamat MAC untuk membuat riwayat aktivitas perangkat, sehingga meningkatkan privasi pengguna.
Selain itu, alamat MAC diacak sebagai bagian dari operasi Wi-Fi Aware dan Wi-Fi RTT .
Untuk informasi lebih lanjut, lihat Perilaku Pengacakan MAC .
Penerapan
Untuk menerapkan pengacakan MAC pada perangkat Anda:
Bekerja samalah dengan vendor chip Wi-Fi untuk menerapkan metode HAL berikut:
-
IWifiStaIface#setMacAddress
: Mengonfigurasi alamat MAC antarmuka. Implementasi default menurunkan antarmuka, mengubah alamat MAC, dan mengembalikan antarmuka. -
IWifiStaIface#getFactoryMacAddress
: Mendapatkan MAC pabrikwlan0
menggunakan panggilanioctl
. -
ISupplicantP2pIface#setMacRandomization
: Mengaktifkan/menonaktifkan pengacakan MAC P2P pada pemohon.
-
Setel
config_wifi_connected_mac_randomization_supported
ketrue
di Pengaturanconfig.xml
(ini dapat dilakukan di hamparan khusus perangkat).- Tanda ini digunakan untuk mengontrol apakah pengacakan MAC mode klien diaktifkan.
Setel
config_wifi_p2p_mac_randomization_supported
ketrue
di Pengaturanconfig.xml
(ini dapat dilakukan di hamparan khusus perangkat).- Tanda ini digunakan untuk mengontrol apakah pengacakan MAC Wi-Fi langsung diaktifkan.
Uji implementasi Anda menggunakan metode yang dijelaskan dalam Validasi .
UI Sistem harus:
- Memiliki opsi untuk mengaktifkan atau menonaktifkan pengacakan untuk setiap SSID.
- Aktifkan pengacakan MAC secara default untuk semua jaringan yang baru ditambahkan.
Gunakan implementasi referensi dari Pengaturan UI untuk mengimplementasikan perintah baru.
Perangkat yang menjalankan Android 9 atau lebih rendah mungkin tidak mendukung pengacakan MAC Wi-Fi. Saat memutakhirkan perangkat tersebut ke Android 10, fitur pengacakan MAC Wi-Fi dapat dinonaktifkan dengan menyetel tanda WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION
ke true di file buatan HAL vendor Wi-Fi.
Validasi
Untuk memvalidasi bahwa fitur tersebut berfungsi sebagaimana mestinya, jalankan pengujian integrasi (ACTS) dan pengujian manual.
Untuk menjalankan pengujian integrasi, gunakan file ACTS, WifiMacRandomizationTest.py
, yang terletak di tools/test/connectivity/acts_tests/tests/google/wifi
, untuk memverifikasi bahwa perangkat menggunakan alamat MAC yang diacak dan dengan benar menyimpan alamat MAC yang diacak untuk setiap jaringan.
Untuk menjalankan tes manual:
- Verifikasi bahwa pengacakan MAC diaktifkan pada perangkat dengan memeriksa apakah
config_wifi_connected_mac_randomization_supported
diatur ketrue
di overlay perangkat. - Hubungkan ke jaringan Wi-Fi.
- Ketuk jaringan untuk membuka halaman detail Jaringan. Pastikan pengacakan MAC diaktifkan. Verifikasi bahwa alamat MAC yang ditampilkan adalah MAC acak, yang memiliki bit yang dihasilkan secara lokal diatur ke 1 dan bit multicast diatur ke 0.
- Matikan 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 verifikasi bahwa alamat MAC acak yang sama digunakan.
Untuk menguji pengacakan MAC pada perangkat pra-Android 10 (yang mampu mendukung pengacakan MAC) yang diupgrade ke Android 10 atau lebih tinggi:
- Miliki setidaknya satu jaringan tersimpan di perangkat yang menjalankan Android 9 atau lebih rendah.
- Flash image sistem Android 10.
- Di alat pilih Wi-Fi, verifikasi bahwa pengacakan MAC dimatikan untuk semua jaringan yang disimpan.
- Aktifkan pengacakan MAC. Hubungkan ke jaringan yang sama dan verifikasi bahwa MAC acak sedang digunakan.