Android 6.0 的硬件信息保护

一直以为 Android 6.0 的变化不大的,结果今天发现并非如此。事实是,新功能性的扩展并不大,但是在保守主义的路上却很有成效。

对硬件信息的访问,其管控更加严格。SD 卡的读写,除了权限声明之外,还应该动态请求,否则就会被禁止。读取设备的 IMEI 也一样,这下子,不知道数据统计那些公司会怎么办。至于 MAC 网络地址和蓝牙地址的获取,相应的 API 返回的最新结果都是 02:00:00:00:00:00 这个固定值。可以参见 http://stackoverflow.com/questions/33159224/getting-mac-address-in-android-6-0。按照官方解释,这是为了“更好的数据保护”,可以参见 Android 6.0 变化一文(https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-hardware-id)中 Access to Hardware Identifier 一节。

当然,从目前来看,似乎有些地方还没有完全封禁严实,但是这个方向一旦确立并迈出了步伐,估计也就是个时间问题。

获取 MAC 的传统方法:

稍微不那么专业点的方法则是查看文件 “/sys/class/net/” + networkInterfaceName + “/address”,接口名可以是 wlan0 或者 eth1 之类的。

看上去比较专业的是这个:

来源:http://stackoverflow.com/questions/31329733/how-to-get-the-missing-wifi-mac-address-on-android-m-preview。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注