有時(shí)候,我們?cè)跊]有源碼的情況下拿到APK,而且需要修改一下APK中的資源,例如:包名、應(yīng)用名稱、圖片等,那么,我們就需要對(duì)APK進(jìn)行解包,然后修改資源,再重新打包和重新簽名等一系列的操作,本文章就是對(duì)這些步驟進(jìn)行簡(jiǎn)單介紹。
環(huán)境搭建
- JDK 安裝:安裝JDK
- Android 開發(fā)環(huán)境搭建:安裝Android studio
- apktool的使用以及安裝:https://ibotpeaches.github.io/Apktool/
步驟
解包:
apktool d <apk文件絕對(duì)路徑> -o <解包后輸出的文件目錄路徑>重新打包APK:
apktool b <解包后輸出的文件目錄路徑> -o <新apk文件絕對(duì)路徑>重新簽名:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <簽名文件名路徑> -storepass <簽名密碼> <待簽名apk文件絕對(duì)路徑> <簽名的別名>簽名完成后,建議對(duì)APK文件進(jìn)行一次對(duì)齊操作:(該命令位于:../Android/sdk/build-tools/build-tools-version/ 目錄下面):
zipalign 4 <已簽名apk文件絕對(duì)路徑> <對(duì)齊apk文件絕對(duì)路徑>驗(yàn)證簽名是否成功:
jarsigner -verify -verbose -certs <對(duì)齊apk文件絕對(duì)路徑>
FQ
- 如果以上的命令找不到,請(qǐng)根據(jù)系統(tǒng)(Window、Mac)配置環(huán)境變量;
- 如果在Mac系統(tǒng)下,運(yùn)行腳本提示:permission denied: apktool,則需要使用:sudo chmod +x /usr/local/bin/apktool來(lái)給apktool 添加可執(zhí)行權(quán)限;
- 如果在Mac系統(tǒng)下,運(yùn)行腳本提示:command not found: zipalign,則需要使用命令進(jìn)入到 ../Library/Android/sdk/build-tools/build-tools-version/ 目錄中,然后使用 ./zipalign 方式運(yùn)行對(duì)齊腳本。