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