Shell腳本 | 安卓應用權限檢查

如今 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

相關文章
相關標籤/搜索