一份安装包丢进检测工具,跑出来的问题能拉到几十条,往下翻你会发现大半都绕回同一份文件——权限清单。所以做 app隐私合规检测 的时候,我不太看报告第一页那个总分,先看清单。工具能告诉你哪里像违规,说不清你为什么违规。

app隐私合规检测,卡点常在权限清单
检测报告里那些词看着花,采集频率过高、超范围收集个人信息、后台静默申请权限、没同步告知目的,顺着往下查,根子常常就落在 AndroidManifest.xml 那几行 uses-permission 上:你声明了哪些权限、什么时候申请、申请来干什么、隐私政策里有没有一句能对得上,这四样有一处对不齐,整包就得打回去改。这条链不长,可每一环都有人栽过。
清单不会说谎。
别的项呢,像人脸、通讯录、剪贴板,说到底还是权限的延伸——你有没有拿到这个能力,拿到之后又干了什么。工具查的是有没有,人查的是该不该,后面这半截只能自己看。
工具只看有没有。
解包之后,先把权限列清楚
我一般这么干:拿到包先跑一句 aapt dump permissions app.apk,安卓这边声明的权限原样列出来;新版工具链换成 apkanalyzer manifest permissions 结果也一样,对着看就行。别急着翻代码,先把这张表拿到手上呗,后面所有核对都围着它转。
容易翻车的地方在构建产物。你在 gradle 里写的依赖,带进来的每个 SDK 都自带一份 manifest,构建时被 manifest merger 合进主工程,所以仓库里全局搜不到的权限,很可能就躺在里面;路径大概在 app/build/intermediates/merged_manifests/ 下面,按 variant 分目录,打开 merged manifest 慢慢看就好。
仓库干净,包里不一定。
声明了不用、用了不声明,两种都够呛
头一类是清单里躺着一堆用不上的高危权限,READ_CONTACTS、READ_PHONE_STATE、ACCESS_FINE_LOCATION 这些,功能上根本用不到,历史遗留或者抄模板带进来的,审核那边一问你要通讯录干嘛,当场答不上来嘛。另一类是代码里动态申请了、清单里没声明,跑起来直接崩或者静默失败,用户那边表现成点了没反应,你查日志还查半天。
历史包袱也挺冤的:早期版本为某个功能申请过 READ_SMS、WRITE_EXTERNAL_STORAGE,功能下线了权限还留着,代码里没人删,翻版本记录的时候留意一下就好。
对得上的办法土,但有效——把权限表和产品功能列表并排放,每条权限后面写清楚是哪个页面、哪个功能、什么场景下用的,写不出来就删呗。删权限比解释权限省事多了,我一般直接动手删,不然审核一问就露馅。
写不出用途的,就该删。
第三方 SDK 合并进来的权限,最容易漏
SDK这块坑最多。真的。推送、统计、广告、分享、地图,一家一份隐私政策,一家一套权限,集成的时候没人细看,出了事全算在你头上;我做检查会把每个SDK的初始化时机、收集的字段、申请的权限单独记一行。尤其是那种在Application的onCreate里就初始化的——用户还没点同意呢,它已经把设备标识读走了。这类是通报里的常客,也最难跟产品解释,因为代码不是你写的。
Android 11 往后还有个 QUERY_ALL_PACKAGES,干什么用的?查手机里装了哪些应用。不少 SDK 默认就带着,商店对这条卡得挺严,不是非用不可的场景就别声明。SDK 的隐私政策链接也别省,集成文档里一般都给。很少有人真点开看它到底收集什么,等通报下来了再拆?得改代码啊。
能不开的口子,别开。
iOS 那边是另一套账
苹果不看你的 manifest,它看 Info.plist 里那几句用途说明。NSCameraUsageDescription、NSLocationWhenInUseUsageDescription 这些,文案得跟实际功能对上,写“为了更好的体验”这种话没用,审核直接打回,得说清楚拍这张照片干什么用。还有个 PrivacyInfo.xcprivacy 隐私清单,苹果对提交 App Store 的包有要求,具体范围和生效时间以苹果官方公告为准,别照着几年前的文章抄。
涉及广告跟踪的还得单说一句,苹果这几年要求先拿到用户许可才能用广告标识符,没拿到就只能走非个性化,这跟权限清单是两码事,审核常常一起看。
用途要写得像人话。
权限申请的时机,比数量更容易被挑
一进首页连弹三个授权框,用户最烦这个,检测里也最容易记一笔。定位、通知、相机的正常做法是等用户点到对应功能再申请,拒了以后给条能走下去的路,比如手动选城市、用相册选图顶替拍照,而不是弹个不授权就退出。
后台权限另说。后台定位、后台读取、自启动,申请理由要更硬,很多包就因为一个保活把后台位置权限加上了,值不值自己掂量。
用户没点,就别弹。
我一般这么走一遍
顺序大致是:解包列权限,拉合并后的 manifest 看第三方带进来什么,权限和功能逐条对,隐私政策文本再对一遍,抓一次冷启动看有没有提前初始化,真机上把主流程走一遍看弹窗时机。这套走完,剩下的多半是文案和流程细节,改起来不费劲。
检测报告是体检单,不是判决书。分数低不等于一定出事,分数高也不代表就干净——权限清单这东西,哪条是什么时候加的、谁加的、现在还用不用,只有自己团队清楚。下次被卡住,先别急着改代码,把那张表拉出来对着功能念一遍,当场就能看出问题在哪。
【版权声明】:本站内容若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!