如今 Google Play 对应用权限的管理很是严格,以前公司内有个版本就是由于新增了四个权限致使停灰处理。因此,在每一个版本发布以前颇有必要检查一下是否有新增权限。bash
安卓应用请求的全部权限能够经过 aapt 命令查看:
微信
在拿到应用的权限列表后,便可对比两个版本的权限是否有变化,新增长或者新减小。测试
脚本以下:google
#!/usr/bin/env bash #清空上次运行后产生的文件 if [[ -f permission_old.txt ]]; then rm permission_old.txt permission_new.txt fi #读取apk文件地址 read -p "请输入上个版本apk文件存放地址:" apk_old read -p "请输入最新版本apk文件存放地址:" apk_new #aapt命令解析apk,输出权限到文件 aapt d badging ${apk_old} | grep "uses-permission:" | awk -F "'" '{print $2}' > permission_old.txt aapt d badging ${apk_new} | grep "uses-permission:" | awk -F "'" '{print $2}' > permission_new.txt #遍历新版本权限列表,对比旧版本权限列表是否相同,不一样则为新增 for x in $(cat permission_new.txt); do if cat permission_old.txt | grep ${x} > /dev/null; then echo "hello, world" > /dev/null else echo ${x} >> permission_increase.txt fi done #遍历旧版本权限列表,对比新版本权限列表是否相同,不一样则为新减小 for y in $(cat permission_old.txt); do if cat permission_new.txt | grep ${y} > /dev/null; then echo "hello, world" > /dev/null else echo ${y} >> permission_decrease.txt fi done #判断permission_increase.txt是否存在:存在,输出新增权限提醒;不存在,输出无新增权限 if [[ ! -f permission_increase.txt ]]; then echo "无新增权限" else echo "新增权限:" cat permission_increase.txt #删除新增权限文件 rm permission_increase.txt fi #判断permission_decrease.txt是否存在:存在,输出新减小权限提醒;不存在,输出无新减小权限 if [[ ! -f permission_decrease.txt ]]; then echo "无新减小权限" else echo "新减小权限:" cat permission_decrease.txt #删除新减小权限文件 rm permission_decrease.txt fi
运行示例:
code
欢迎关注微信公众号"测试开发Stack"blog