美文网首页
反编译修改Android apk的版本号

反编译修改Android apk的版本号

作者: 所幸时光未苍凉 | 来源:发表于2019-12-02 11:06 被阅读0次

    最近遇到一种突发情况,cp那边的游戏打包后没改版本号,上传不了gp,今天又恰巧是周末,cp那边没上班,项目很赶,无奈之下,想到了直接使用反编译改完之后再回编的方式,修改一下版本号。这篇文章主要是记录一下整个流程。

    准备工作

    1. 官网下载apktool,Apktool是一个逆向android非常有用的工具,可以用来反编译apk文件,并且能在修改部分文件后,重新打包成一个新的apk,首选我们需要下载一个apktool的jar包
    2. 下载完后,把名称改成apktool.jar(没有梯子的同学可以看下这里),然后新建一个bat脚本,内容如下:
    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

    准备工作完毕后,开始反编译apk。
    1.将你要反编译的apk放到apktoo.bat的同一文件夹下,然后cd到这个目录,执行以下命令:

    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重新打包还原,执行以下命令:
    apktool.bat b -o dst.apk apk.out
    

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

    1. 拿到新的apk之后,最后还需要两步,一是重签名,直接把签名的keystore拷贝到当前的文件夹下,执行下面的命令:
    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复制到zipalign.exe工具的文件夹下,cd进入该文件夹,然后执行以下命令:
    zipalign -v 4 dst_signed.apk dst_signed_align.apk
    

    执行完后,出现如下命令即代表成功

    执行成功.png
    这样就是文件对齐之后的正确版本,一整套的流程基本就结束了,可以反编译验证一下是否成功。

    相关文章

      网友评论

          本文标题:反编译修改Android apk的版本号

          本文链接:https://www.haomeiwen.com/subject/ckggbctx.html