前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android应用权限检查

Android应用权限检查

作者头像
岛哥的质量效能笔记
发布2021-08-18 15:06:18
8500
发布2021-08-18 15:06:18
举报
文章被收录于专栏:岛哥的质量效能笔记

阅读本文大约需要1.1分钟。

背景

现在应用市场的要求越来越高了,而且随着Android版本的升级,官方对于权限这部分的管控越来越严格,因此我们秉着最少可用原则,绝不向用户申请额外的权限,但由于团队规模越来越大,很难保证某个模块没有新增权限,所以我们需要一个工具可以简单的给出每个版本应用的权限变化信息。

方案

这里我是用Android SDK自带的aapt工具来获取应用的manifest文件信息的,有时候明明你已经配置好Android的开发环境了但还是报“Unable to find executable for: aapt” 这个错误,这时候首先看看自己Android SDK目录下的build-tools下有没有aapt可执行文件,如果没有建议下载26.0.0的版本,然后再把路径加到环境变量中。

1、在命令行中输入新旧版本的apk地址,然后过滤出权限信息到文本中:

代码语言:javascript
复制
apk_old=$1

apk_new=$2

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

2、遍历新版本权限列表,看是否有旧版本权限列表中没有的权限,如果有就是新增,将新增的权限写入新增权限文件:

代码语言:javascript
复制
for data in $(cat permission_new.txt); 
do
    count=$(cat permission_old.txt | grep -c ${data})
    if [ "$count" -eq 0 ]; then
        echo ${data} >> permission_increase.txt
    fi
done

3、遍历旧版本权限列表,看是否有新版本权限列表中没有的权限,如果有就是减少,将减少的权限写入减少权限文件:

代码语言:javascript
复制
for data in $(cat permission_old.txt); 
do
    count=$(cat permission_new.txt | grep -c ${data})
    if [ "$count" -eq 0 ]; then
        echo ${data} >> permission_decrease.txt
    fi
done

4、判断新增权限文件是否存在,如果存在,就输出新增的权限信息:

代码语言:javascript
复制
if [[ ! -f permission_increase.txt ]]; then
    echo "无权限新增"
else
    echo "新增的权限:"
    cat permission_increase.txt
    #删除新增权限文件
    rm permission_increase.txt
fi

5、判断减少权限文件是否存在,如果存在,就输出减少的权限信息:

代码语言:javascript
复制
if [[ ! -f permission_decrease.txt ]]; then
    echo "无权限减少"
else
    echo "减少的权限:"
    cat permission_decrease.txt
    #删除减少权限文件
    rm permission_decrease.txt
fi

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 岛哥的质量效能笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档