反編譯修改Android apk的版本號

最近遇到一種突發(fā)情況,cp那邊的游戲打包后沒改版本號,上傳不了gp,今天又恰巧是周末,cp那邊沒上班,項目很趕,無奈之下,想到了直接使用反編譯改完之后再回編的方式,修改一下版本號。這篇文章主要是記錄一下整個流程。

準(zhǔn)備工作

  1. 官網(wǎng)下載apktool,Apktool是一個逆向android非常有用的工具,可以用來反編譯apk文件,并且能在修改部分文件后,重新打包成一個新的apk,首選我們需要下載一個apktool的jar包
  2. 下載完后,把名稱改成apktool.jar(沒有梯子的同學(xué)可以看下這里),然后新建一個bat腳本,內(nèi)容如下:
if "%PATH_BASE%" == "" set PATH_BASE=%PATH%
set PATH=%CD%;%PATH_BASE%;
chcp 65001 2>nul >nul
java -jar -Duser.language=en -Dfile.encoding=UTF8 "%~dp0\apktool.jar" %* 

反編譯apk

準(zhǔn)備工作完畢后,開始反編譯apk。
1.將你要反編譯的apk放到apktoo.bat的同一文件夾下,然后cd到這個目錄,執(zhí)行以下命令:

apktool.bat d -o apk.out debug.apk

其中debug.apk為你要反編譯的apk的名字,替換一下即可

  1. 反編譯之后生成一個apk.out文件夾,其目錄如下:


    apk.out文件夾目錄.png
  2. 找到apktool.py文件,打開后,最下面的versionCodeversionName就是我們要修改的部分,這里直接改動成最新的版本號和code就行。
    apktool.py.png

回編譯apk

  1. 改完versionCodeversionName后,我們要把apk重新打包還原,執(zhí)行以下命令:
apktool.bat b -o dst.apk apk.out

其中dst.apk為打包后生成的apk。

  1. 拿到新的apk之后,最后還需要兩步,一是重簽名,直接把簽名的keystore拷貝到當(dāng)前的文件夾下,執(zhí)行下面的命令:
jarsigner -verbose -keystore debug.keystore -signedjar dst_signed.apk dst.apk debug

其中debug.keystore為你自己的簽名文件,debug為簽名文件的keyAlias。
然后輸入密碼就行,dst_signed.apk為簽名后生成的apk文件

  1. 最后通過zipalign.exe工具對dst_signed.apk進行文件對齊,這個工具在sdk的build-tools的版本下面
    zipalign.exe.png

    dst_signed.apk復(fù)制到zipalign.exe工具的文件夾下,cd進入該文件夾,然后執(zhí)行以下命令:
zipalign -v 4 dst_signed.apk dst_signed_align.apk

執(zhí)行完后,出現(xiàn)如下命令即代表成功

執(zhí)行成功.png

這樣就是文件對齊之后的正確版本,一整套的流程基本就結(jié)束了,可以反編譯驗證一下是否成功。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容