Android隐私合规检测方法

本文介绍了一款APP因违规获取用户MAC地址及过度获取定位信息而被工信部通报的事件。作者通过排查业务代码和使用Xposed工具进行hook系统方法的方式,定位到问题是由第三方SDK引起,并详细记录了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:

公司的APP被工信部通报:1.在用户确认隐私权限以前会获取用户的mac地址。2.在app内频繁的获取定位,超过了场景所必须的频次。

排查过程

收到通报我们一脸懵,我们排查业务代码中没有获取mac地址,并且我们的定位sdk只定位一次,于是想到了可能是三方sdk在获取mac地址。

于是我们电话工信部下的全国APP技术检测平台 咨询到他们是通过getHardwareAddress方法的调用来检测MAC地址的获取。至于第2条没有给出确切的回复,他们说可能是接口里频繁的带有用户位置信息,超出了业务场景必须的频次,也可能是在频繁的调用LocationManager#getLastKnownLocation方法。

于是反编译了自己项目中的apk,全局搜索查询到有三方sdk在调用getHardwareAddress和getLastKnownLocation方法。于是首次安装采取了延迟初始化的策略,把相关的三方sdk的初始化延迟到了用户同意隐私权限之后。但是我们想知道这些方法的调用时机和调用频次。因此我们需要用AOP或者hook系统方法的方式来查看他们的调用时机。我采用的是Xposed工具hook的系统底层方法以达到检测调用时机。

检测方法

使用VirtualXposed在手机上装了一下虚拟系统。https://github.com/android-hacker/VirtualXposed
 sherlock: 这是一个用来拦截方法的程序,具体是你需要拦截那些方法,可以在 https://github.com/hauler1/sherlock 下载源码并自定义。

使用方法:
1)安装两个App到你的手机(不需要root)

安装VirtualXposed App,可以拉取GitHub代码自己运行安装,也可以下载现成VirtualXposed App。

此处需要注意,你的待检测app是32位的就应该使用VirtualXposed32位APK,是64位的就应该使用VirtualXposed64位,不然会出现无法安装 待检测app的问题。


2)打开VirtualXposed 点击添加应用,选择你要监控的应用和sherlock安装到VirtualXposed中

3)点击模块管理,勾选你要sherlock,然后退到VirtualXposed首页,向上滑动,先打开sherlock模块,再启动你要检测的app。在logcat中就能看到调用的日志输出了。

评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值