Atualizações de endereço MAC no Android 11

O Android 11 introduz as seguintes mudanças relacionadas aos endereços MAC. Essas mudanças só afetam apps destinados ao Android 11.

Ordem aleatória de MAC

Em apps direcionados ao Android 10 (API de nível 29) e versões anteriores, a ordem aleatória de MAC é por SSID, já que o Passpoint pode se conectar a SSIDs diferentes para o mesmo perfil. Em apps direcionados ao Android 11 (API de nível 30) e versões mais recentes, a escolha aleatória de MAC para redes de Passpoint é modificada para o nome de domínio totalmente qualificado (FQDN).

Em apps direcionados à API de nível 30 e mais recentes, os apps sem privilégios não poderão acessar o endereço MAC do dispositivo. apenas interfaces de rede com um endereço IP estarão visíveis. Isso afeta os métodos getifaddrs() e NetworkInterface.getHardwareAddress(), além do envio de mensagens netlink RTM_GETLINK.

Veja a seguir uma lista das maneiras que os apps são afetados por essa mudança:

  • NetworkInterface.getHardwareAddress() retorna "null" (nulo) para cada interface.
  • Os apps não podem usar a função bind() em soquetes NETLINK_ROUTE.
  • O comando ip não retorna informações sobre interfaces.

Essas mudanças impõem a orientação fornecida em Não trabalhe com endereços MAC.

A maioria dos desenvolvedores precisa usar as APIs de nível superior de ConnectivityManager em vez de APIs de nível inferior, como NetworkInterface e getifaddrs().