A partir de 27 de março de 2025, recomendamos usar android-latest-release em vez de aosp-main para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
A partir do Android 8.0, os dispositivos Android usam endereços MAC aleatórios ao
procurar novas redes enquanto não estão associados a uma rede. No
Android 9, é possível ativar uma opção para desenvolvedores (que está
desativada por padrão) para fazer com que o dispositivo use um endereço MAC aleatório
ao se conectar a uma rede Wi-Fi.
No Android 10, a ordem aleatória de MAC é ativada por padrão
para o modo cliente, SoftAP e Wi-Fi Direct.
A aleatoriedade de MAC impede que os listeners usem endereços MAC para criar um histórico
da atividade do dispositivo, aumentando a privacidade do usuário.
Além disso, os endereços MAC são aleatórios como parte das operações
Wi-Fi Aware e
Wi-Fi RTT.
Para implementar a ordenação aleatória de MAC no seu dispositivo:
Trabalhe com um fornecedor de chips Wi-Fi para implementar os seguintes métodos HAL:
IWifiStaIface#setMacAddress: configura o endereço MAC da
interface. A implementação padrão desativa a interface, muda
o endereço MAC e a ativa novamente.
IWifiStaIface#getFactoryMacAddress: recebe o MAC de fábrica de wlan0
usando uma chamada ioctl.
ISupplicantP2pIface#setMacRandomization: ativa ou desativa a ordenação aleatória de MAC P2P
no solicitante.
Dispositivos com o Android 9 ou versões anteriores podem não ter
suporte para a randomização de MAC do Wi-Fi. Ao fazer upgrade desses dispositivos para o Android
10, o recurso de ordenação aleatória de MAC do Wi-Fi pode ser desativado
definindo a flag WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION como verdadeira no
arquivo de criação HAL do fornecedor do Wi-Fi.
Validação
Para validar se o recurso está funcionando conforme o esperado, execute um teste manual:
Verifique se a randomização de MAC está ativada no dispositivo, verificando se
config_wifi_connected_mac_randomization_supported está definido como true na
sobreposição do dispositivo.
Conecte seu dispositivo a uma rede Wi-Fi.
Toque na rede para acessar a página de detalhes dela. Verifique se a
geração aleatória de MAC está ativada. Verifique se o endereço MAC exibido é um
MAC aleatório, que tem o bit gerado localmente definido como 1 e o
bit de multicast definido como 0.
Desative a escolha aleatória de MAC. Conecte-se à mesma rede e verifique
se o MAC de fábrica está sendo usado.
Exclua a rede tocando em Esquecer na página "Detalhes da rede".
Conecte-se à mesma rede e verifique se o mesmo endereço MAC
aleatório está sendo usado.
Para testar a escolha aleatória de MAC em um dispositivo anterior ao Android 10
(com suporte à escolha aleatória de MAC) que está sendo atualizado para o Android
10 ou mais recente:
Ter pelo menos uma rede salva em um dispositivo com
Android 9 ou versões anteriores.
Atualize a imagem do sistema Android 10.
No seletor de Wi-Fi, verifique se a ordem aleatória de MAC está desativada para todas
as redes salvas.
Ative a ordem aleatória de MAC. Conecte-se à mesma rede e verifique
se o MAC aleatório está sendo usado.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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."]]