Od 27 marca 2025 r. zalecamy używanie android-latest-release zamiast aosp-main do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Od Androida 8.0 urządzenia z Androidem używają losowych adresów MAC podczas wyszukiwania nowych sieci, gdy nie są powiązane z siecią. W Androidzie 9 możesz włączyć opcję dla deweloperów (domyślnie wyłączona), aby urządzenie używało losowego adresu MAC podczas łączenia się z siecią Wi-Fi.
W Androidzie 10 randomizacja adresu MAC jest domyślnie włączona w trybie klienta, SoftAp i Wi-Fi Direct.
Losowanie adresów MAC uniemożliwia odbiorcom wykorzystanie adresów MAC do tworzenia historii aktywności urządzenia, co zwiększa prywatność użytkownika.
Dodatkowo adresy MAC są losowo generowane w ramach operacji Wi-Fi Aware i Wi-Fi RTT.
Urządzenia z Androidem 9 lub starszym mogą nie obsługiwać losowania adresów MAC Wi-Fi. Podczas aktualizacji takich urządzeń do Androida 10 można wyłączyć funkcję losowania adresu MAC Wi-Fi, ustawiając flagę WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION na „Prawda” w pliku make dostawcy HAL Wi-Fi.
Weryfikacja
Aby sprawdzić, czy funkcja działa zgodnie z oczekiwaniami, przeprowadź test ręczny:
Sprawdź, czy na urządzeniu włączone jest losowanie adresów MAC. Aby to zrobić, sprawdź, czy w nakładce urządzenia opcja config_wifi_connected_mac_randomization_supported ma wartość true.
Połącz się z siecią Wi-Fi.
Kliknij sieć, aby otworzyć stronę z informacjami o niej. Sprawdź, czy włączona jest losowa generacja adresów MAC. Sprawdź, czy wyświetlany adres MAC jest losowym adresem MAC, w którym bit generowany lokalnie ma wartość 1, a bit multicast ma wartość 0.
Wyłącz losowe generowanie adresu MAC. Połącz się z tą samą siecią i sprawdź, czy używany jest fabryczny adres MAC.
Usuń sieć, klikając Zapomnij na stronie Szczegóły sieci.
Połącz się z tą samą siecią i sprawdź, czy jest używany ten sam losowy adres MAC.
Aby przetestować losowanie adresów MAC na urządzeniu z Androidem 10 lub starszym (obsługującym losowanie adresów MAC), zaktualizuj je do Androida 10 lub nowszego:
mieć co najmniej 1 zapisanej sieci na urządzeniu z Androidem 9 lub starszym;
Flashowanie obrazu systemu Android 10.
W selektorze sieci Wi-Fi sprawdź, czy randomizacja adresu MAC jest wyłączona we wszystkich zapisanych sieciach.
Włącz randomizację adresu MAC. Połącz się z tą samą siecią i sprawdź, czy używany jest losowy adres MAC.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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."]]