原理是,把打出的包apk文件,替換爲zip文件,然後解壓,找到對應目錄的對應文件,替換內容,然後改名爲apk,打簽名包
注:winRAR命令行語法可在winRar中文幫助中查看(所有程序中)
signapk.jar是Android源碼包中的一個簽名工具。
代碼位於:Android源碼目錄下,signapk.jar 可以編譯build/tools/signapk/ 得到。
使用signapk.jar簽名時需要提供簽名文件,我們可以使用安卓源碼中提供的testkey.pk8與testkey.x509.pem,他們位於Android源碼build/target/product/security目錄。
使用android自帶的簽名工具signapk.jar 以及源碼中的testkey.x509.pem,testkey.pk8 對apk進行重新簽名。
執行:java -jar signapk.jar testkey.x509.pem testkey.pk8 old.apk new.apk 執行後new.apk即爲簽名後的文件。
(注:執行命令時所有文件這裏放在同一目錄下,如果不在同一目錄請修改路徑)。
含義:通過signapk.jar這個可執行jar包,以testkey.x509.pem這個公鑰文件和testkey.pk8這個私鑰文件對old.apk進行簽名,簽名後的文件保存爲old.apk
F:
cd F:\yijie_test\Auto-sign
if exist zh2_ty_test.zip del zh2_ty_test.zip
if exist zh2_yijie.apk del zh2_yijie.apk
if exist zh2_yijie_sign.apk del zh2_yijie_sign.apk
if exist assets rmdir /s/q assets
if exist lib rmdir /s/q lib
if exist test rmdir /s/q test
if exist res rmdir /s/q res
if exist META-INF rmdir /s/q META-INF
if exist AndroidManifest.xml del AndroidManifest.xml
if exist classes.dex del classes.dex
if exist resources.arsc del resources.arsc
ren zh2_ty_test.apk zh2_ty_test.zip
WinRAR x -ibck -y -mt1 -k zh2_ty_test.zip
cd F:\yijie_test\Auto-sign\assets
dir Platform.txt
set /p channel=請輸入渠道:
echo --------------------------------------------
echo 請稍候......
echo --------------------------------------------
set /p=%channel%>F:\yijie_test\Auto-sign\assets\Platform.txt<nul
cd ..
if exist zh2_yijie.zip del zh2_yijie.zip
WinRAR a -ibck zh2_yijie.zip assets lib META-INF res AndroidManifest.xml classes.dex resources.arsc
rmdir /s/q assets lib META-INF res
del classes.dex resources.arsc AndroidManifest.xml
ren zh2_yijie.zip zh2_yijie.apk
ren zh2_ty_test.zip zh2_ty_test.apk
Echo Auto-sign Created By Dave Da illest 1
Echo Update.zip is now being signed and will be renamed to update_signed.zip
java -jar signapk.jar testkey.x509.pem testkey.pk8 zh2_yijie.apk zh2_yijie_sign.apk
Echo Signing Complete
Pause
EXIT