隐私:随机选择 MAC 地址

从 Android 8.0 开始,Android 设备在未连接到网络的情况下探测新网络时会使用随机 MAC 地址。

在 Android 9 中,您可以启用开发者选项(默认处于停用状态),使设备在连接到 WLAN 网络时使用随机选择的 MAC 地址。系统会对每个 SSID 使用随机选择的 MAC 地址。

随机选择 MAC 地址可防止监听器使用 MAC 地址来生成设备活动的历史记录,从而加强对用户隐私的保护。

此外,随机选择 MAC 地址也是 WLAN 感知和 WLAN RTT 操作的一部分。

实现

要在设备上实现随机选择 MAC 地址,请执行以下操作:

  1. 与 WLAN 芯片供应商合作实现 IWifiStaIface.setMacAddress() HAL 方法。

    • AOSP 参考实现会关闭接口、更改 MAC 地址并备份接口。这种参考实现行为可能不适用于某些芯片供应商。
  2. 在“设置”config.xml 中,将 config_wifi_support_connected_mac_randomization 设置为 true(该步骤可在设备自定义叠层中完成)。

    • 此标记用于控制参考“设置”实现的开发者选项中是否显示“连接时随机选择 MAC 网址”切换开关。如果设置为 true,则显示该切换开关;如果设置为 false,则不显示该切换开关。
  3. 使用验证中所述的方法测试实现。

系统界面必须:

  • 在开发者菜单中有一项可启用或停用该功能的设置。
  • 如果启用了随机选择 MAC 地址功能,则在系统显示 WLAN 接口 MAC 地址时显示生成的随机 MAC 地址。

使用设置界面的参考实现来实现新提示。

验证

要验证该功能是否如期正常运行,请同时运行集成测试 (ACTS) 和手动测试。

要运行集成测试,请使用位于 tools/test/connectivity/acts/tests/google/wifi 中的 ACTS 文件 WifiConnectedMacRandomizationTest.py,验证设备是否使用随机选择的 MAC 地址,以及是否正确存储为每个网络随机选择的 MAC 地址。

要运行手动测试,请执行以下操作:

  1. 开启该功能并验证设备是否能够连接到 WLAN 网络。
  2. 验证 WLAN 设置中显示的 MAC 地址是否与设备正在使用的 MAC 地址(通过 ifconfig 确定)相符。
  3. 执行数据包捕获来验证设备是否使用随机选择的 MAC 地址(而非出厂 MAC 地址)。
  4. 检查设备是否会在连接到同一网络时使用同一 MAC 地址,验证设备是否存储了基于网络随机选择的 MAC 地址。
  5. 验证忘记网络并重新连接到同一 SSID 后是否会生成新的随机 MAC 地址。

在连接到网络时,您可能会遇到长达 3 秒的延迟,这是因为只要设置了新的 MAC 地址,系统就会清除扫描结果。在连接到网络并验证互联网连接时,也可能会出现其他延迟。

如果 WLAN 驱动程序或固件未正确同步 MAC 地址状态与主机内核,则互联网连接检查将会失败。如果出现这种情况,请咨询您的芯片合作伙伴,确保驱动程序或固件已根据新的 MAC 地址进行了相应更新。

隐私:随机选择 MAC 地址的更多相关文章

  1. uboot生成随机的MAC地址

    转载:http://blog.chinaunix.net/uid-25885064-id-3303132.html 在使用U-boot时,有个问题就是MAC地址的设置,如果MAC地址相同的两块开发板在 ...

  2. 分享一个随机更改 MAC地址 软件

    有些软件 是根据 MAC地址 来判断 是不是 已经 安装过 这个 软件 (针对 有些软件是 可以 免费 使用的 ) 要想 一直 使用 的话 只需要 修改一下 mac地址 就可以 继续 使用! 在百度中 ...

  3. 运营商挂时长神器,批量导入账号,导出账号状态,随机修改MAC地址

    话不多说,直接上图 可批量导入账号,同时修改广域网口MAC地址 导出账号状态,包括在线时长,MAC,IP地址等等

  4. kernel随机生成MAC地址的接口

    /**  * eth_random_addr - Generate software assigned random Ethernet address * @addr: Pointer to a si ...

  5. 伪装MAC地址

    一.界面操作法 打开"网上邻居",右键属性"本地连接",点击配置 选择"高级",再选"网路卡位址"(不同系统名字略不同) ...

  6. MAC地址欺骗(原理及实验)

    MAC地址欺骗 MAC地址欺骗(或MAC地址盗用)通常用于突破基于MAC地址的局域网访问控制,例如在交换机上限定只转发源MAC地址修改为某个存在于访问列表中的MAC地址即可突破该访问限制,而且这种修改 ...

  7. Linux 生成随机mac地址,并固化到本地

    前言: 将Mac地址随机化并固化到本地可以有效避免同一个网络内,mac地址冲突导致的网络阻塞问题. 以下是有关的方法: 1.使用$RANDOM和md5sum(嵌入式无需移植其他软件的优秀可选方案) M ...

  8. 获取设备信息——获取客户端ip地址和mac地址

    1.获取本地IP(有可能是 内网IP,192.168.xxx.xxx) /** * 获取本地IP * * @return */ public static String getLocalIpAddre ...

  9. dSploitzANTI渗透教程之修改MAC地址与Wifi监听器

    dSploitzANTI渗透教程之修改MAC地址与Wifi监听器 dSploitzANTI基本配置 渗透测试是一种安全性较大的工作.所以,在实施渗透测试之前进行一些简单设置.如修改MAC地址.了解网络 ...

随机推荐

  1. Windows 10 秋季更新错误

    uefi 启动丢失修复 bcdboot c:\windows /s y: /f uefi /l zh-cn 0x80240034 你尝试安装的内部版本是有签名的外部测试版.若要继续安装,请启用外部测试 ...

  2. 有关马氏距离和hinge loss的学习记录

    关于度量学习,之前没有看太多相关的文献.不过南京的周老师的一篇NIPS,确实把这个问题剖析得比较清楚. Mahalanobis距离一般表示为d=(x-y)TM(x-y),其中x和y是空间中两个样本点, ...

  3. NEC芯片特别说明

    NEC芯片注意点: 1.堆栈和RAM共用,而且是程序中自定义堆栈的空间,堆栈是向下递减堆栈. 2.中断中标志位的清除可以不用手动清除,在中断服务程序中运行任何一条指令后自动清除. 3.中断服务程序有且 ...

  4. 为什么maven 创建web工程不自动生成Deployment Descriptor:工程名

    上面图切换成下面图: 点击eclipse右上角,如下图红圈,然后在选择javaEE这样就切换成javaEE视图了 如果还是不能解决,相信这个链接对你有所帮助:https://www.cnblogs.c ...

  5. Python数据分析前提-----pandas

    1.read_csv(url):读取数据 2.help(read_csv):打印函数相关用法 3.数据名.dtypes:读取数据的类型(int.float……) 4.type(数据名):读取所有数据的 ...

  6. 多任务-进程之PID

    1.进程pid,如何在程序中获取我们的进程号,从而查看当前的进程 # -*- coding:utf-8 -*- from multiprocessing import Process import o ...

  7. HDU-1215 七夕节 数论 唯一分解定理 求约数之和

    题目链接:https://cn.vjudge.net/problem/HDU-1215 题意 中文题,自己去看吧,懒得写:) 思路 \[ Ans=\prod \sum p_i^j \] 唯一分解定理 ...

  8. luogu P2117 小Z的矩阵(结论题)

    题意 题解 这题有点水. 我们发现对答案有贡献的实际上只有左上到右下的对角线上的数. 因为不在这条对角线上的乘积都要计算两遍,然后%2就都没了... 然后就做完了. #include<iostr ...

  9. C语言运行时数据结构

    段(Segment): 对象文件/可执行文件: SVr4 UNIX上被称为ELF(起初"Extensible Linker Format", 现在"Executable ...

  10. Linux命令之bc - 浮点计算器、进制转换

    用途说明 Bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下.手册页上说bc是An arbitrary precision calcu ...