android 利用shell指令碼重新打包簽名

weixin_34365417發表於2017-04-13

利用jdk打包,可以替換資原始檔

首先打包生成apk檔案和簽名檔案test.keystore檔案


打包步驟

1.解壓apk檔案,將字尾改成zip解壓,得到資源包,這裡用mac的注意一下,mac直接解壓會出現cpgz檔案,解壓cpgz的話會無限迴圈,最好用第三方工具,或者終端jar -xvf xxxx.apk  進行解壓縮

2.刪除得到的資源包下面的MATE-INF資料夾,刪除舊的apk檔案

3.根據需求替換資原始檔,我只需要換圖示

4.對替換好的資原始檔包大包 jar -cvf ../xxxx.apk ./ 打包後的apk在上層目錄

5.對重新打包的apk進行簽名

jarsigner -verbose -keystore 簽名檔案(注意路徑) -storepass 你的密碼 -keypass 密碼 -signedjar 簽名後的apk檔案 -digestalg SHA1 -sigalg MD5withRSA  用來簽名apk檔案  簽名檔案別名

例如:

jarsigner -verbose -keystore ../test.keystore -storepass 123456 -keypass 123456 -signedjar ../Test_signed.apk -digestalg SHA1 -sigalg MD5withRSA  ../appTest.apk test

說明一下jdk1.7一下版本不加-digestalg SHA1 -sigalg MD5withRSA也是可以的,以上的必須新增,不然的話打包簽名出來是不能安裝的

shell 指令碼

jar -xvf xxxx.apk

rm -rf MATE-INF

rm -rf xxxx.apk

#替換資原始檔

cp -rf zhiyuan/* test/res/ 

# 打包apk檔案

cd test

jar -cvf ../linshi/xxxxx.apk ./

cd ../

#簽名apk檔案

jarsigner -verbose -keystore test.keystore -storepass 123 -keypass 123 -signedjar download_apk/xxxxx_sign.apk -digestalg SHA1 -sigalg MD5withRSA linshi/xxxxx.apk test

#刪除臨時apk檔案

rm -rf linshi/xxxxx.apk

rm -rf zhiyuan/*

相關文章