Mulai 27 Maret 2025, sebaiknya gunakan android-latest-release, bukan aosp-main, untuk mem-build dan berkontribusi pada AOSP. Untuk mengetahui informasi selengkapnya, lihat Perubahan pada AOSP.
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
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 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 pabrik wlan0
menggunakan panggilan ioctl.
ISupplicantP2pIface#setMacRandomization: Mengaktifkan/menonaktifkan pengacakan MAC P2P
di pemohon.
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 ke true di
overlay perangkat.
Hubungkan ke jaringan Wi-Fi.
Ketuk jaringan untuk membuka halaman Detail jaringan. Pastikan randomisasi MAC diaktifkan. Pastikan alamat MAC yang ditampilkan adalah MAC acak, yang memiliki 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 lama.
Flash 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.
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-07-27 UTC."],[],[],null,["# Implement MAC randomization\n\nStarting in Android 8.0, Android devices use randomized MAC addresses when\nprobing for new networks while not associated with a network. In\nAndroid 9, you can enable a developer option (it's\n**disabled** by default) to cause the device to use a randomized MAC address\nwhen connecting to a Wi-Fi network.\n\nIn Android 10, MAC randomization is enabled by default\nfor client mode, SoftAp, and Wi-Fi Direct.\n\nMAC randomization prevents listeners from using MAC addresses to build a history\nof device activity, thus increasing user privacy.\n\nAdditionally, MAC addresses are randomized as part of\n[Wi-Fi Aware](/docs/core/connect/wifi-aware) and\n[Wi-Fi RTT](/docs/core/connect/wifi-rtt) operations.\n\nFor more information, see\n[MAC Randomization Behavior](/docs/core/connect/wifi-mac-randomization-behavior).\n\nImplementation\n--------------\n\nTo implement MAC randomization on your device:\n\n1. Work with a Wi-Fi chip vendor to implement the following HAL methods:\n\n - `IWifiStaIface#setMacAddress`: Configures the MAC address of the interface. The default implementation brings the interface down, changes the MAC address, and brings the interface back up.\n - `IWifiStaIface#getFactoryMacAddress`: Gets the factory MAC of `wlan0` using an `ioctl` call.\n - `ISupplicantP2pIface#setMacRandomization`: Sets P2P MAC randomization on/off in the supplicant.\n2. Set\n [`config_wifi_connected_mac_randomization_supported`](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/core/res/res/values/config.xml)\n to `true` in the Settings `config.xml` (this can be done in a device\n custom overlay).\n\n - This flag is used to control whether client-mode MAC randomization is enabled.\n3. Set\n [`config_wifi_p2p_mac_randomization_supported`](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/core/res/res/values/config.xml)\n to `true` in the Settings `config.xml` (this can be done in a device\n custom overlay).\n\n - This flag is used to control whether Wi-Fi direct MAC randomization is enabled.\n4. Test your implementation using the methods described in\n [Validation](#validation).\n\nThe System UI must:\n\n- Have an option to enable or disable randomization for each SSID.\n- Have MAC randomization enabled by default for all newly added networks.\n\nUse the\n[reference implementation](https://cs.android.com/android/platform/superproject/+/android-latest-release:packages/apps/Settings/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java)\nof Settings UI to implement new prompts.\n\nDevices running Android 9 or lower might not have\nsupport for Wi-Fi MAC randomization. When upgrading such devices to Android\n10, the Wi-Fi MAC randomization feature can be disabled\nby setting the `WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION` flag to true in\nthe Wi-Fi vendor HAL make file.\n\nValidation\n----------\n\nTo validate that the feature is working as intended, run a manual test:\n\n1. Verify that MAC randomization is enabled on the device by checking that `config_wifi_connected_mac_randomization_supported` is set to `true` in the device overlay.\n2. Connect to a Wi-Fi network.\n3. Tap the network to go to the Network details page. Verify that MAC randomization is turned on. Verify that the MAC address displayed is a randomized MAC, which has the locally generated bit set to 1 and the multicast bit set to 0.\n4. Turn MAC randomization off. Connect to the same network and verify that the factory MAC is being used.\n5. Delete the network by tapping **Forget** on the Network details page.\n6. Connect to the same network and verify that the **same** randomized MAC\n address is being used.\n\n | **Note:** Randomized MAC addresses are generated per SSID and are persistent.\n\nTo test MAC randomization on a pre-Android 10 device\n(capable of supporting MAC randomization) upgrading to Android\n10 or higher:\n\n1. Have at least one saved network on a device running Android 9 or lower.\n2. Flash the Android 10 system image.\n3. In the Wi-Fi picker, verify that MAC randomization is turned off for all saved networks.\n4. Turn MAC randomization on. Connect to the same network and verify that the randomized MAC is being used.\n\n| **Note:** You may experience up to a three-second delay when connecting to a network due to the driver flushing saved scan results when the interface goes down. If this is the case, check with your silicon partners to resolve the issue."]]