Android 反编译Apk,修改资源,重新打包,签名发布

本文简单介绍apk是如何修改logo(ic_launcher),类似的资源文件修改也可以通过此方式。不过要修改class的话就要涉及到smali的学习了,这里就暂且不谈,后续有需要再做更新。

工具介绍

在这里插入图片描述

  • apktool:用来反编译apk,apk重新打包
  • autosign:自动签名工具,将重新打包的apk进行签名,如果不签名,无法安装使用
  • jadx-0.6.1-dev-build226:查看源码及目录结构,相当于dex2jar + jd-gui
    这些工具在网上都可以下载的到,如果需要的话留下邮箱即可

工具使用

jadx-0.6.1-dev-build226

双击jadx-0.6.1-dev-build226\bin目录下jadx-gui.bat,选择test.apk即可看到源码及目录结构,如下在这里插入图片描述这只是用于查看源码,并起不到修改作用,不过可以查看要修改的东西在哪个位置,真正修改要通过apktool反编译apk的源码才可以修改。

apktool

该目录下有三个文件:aapt.exe,apktool.bat,apktool.jar ,将需要反编译的APK文件放到该目录下,如图:
在这里插入图片描述在该目录下,按住Shift,然后右键选择“在此处打开命令窗口”,输入一下命令:

apktool.bat d -f test.apk -o test

apktool -f [待反编译的apk] -o [反编译之后存放文件夹]
在这里插入图片描述如果反编译过程中遇到Exception in thread “main” 错误,可能是apktool.jar的版本太低,使用高版本不会出现异常。

请往https://ibotpeaches.github.io/Apktool/

重新下载,下载到的apktool_xxx.jar文件改名为apktool.jar,然后替换掉老版本的apktool.jar,重新执行命令应该就正常了。

反编译之后会得到test 文件夹,打开test文件夹,里边就是反编译出来的各种资源文件
在这里插入图片描述然后进行test\res目录去修改ic_launcher,这里所有的ic_launcher都要做替换。

修改成功,保存,重新打包,执行打包命令

apktool.bat b test

在test文件内会多出两个文件如下图所示:
在这里插入图片描述dist文件内就是我们需要的apk。

autosign

签名apk,重新发布

接下来就要用到签名工具了,如果不经过签名是不能正确运行的。工具: auto-sign.zip

将打包好的test.apk 拷贝到解压好的auto-sign文件夹下,执行命令:

java -jar signapk.jar testkey.x509.pem testkey.pk8 test.apk test_signed.apk

test_signed.apk就是签名后的apk

到此修改资源文件就大功告成了,也是很简单的

参考:https://blog.csdn.net/sxk874890728/article/details/80486223

坚持原创技术分享,您的支持将鼓励我继续创作!
  • 本文作者: Wynsbin
  • 本文链接: https://wynsbin.github.io/2018/12/22/decompile-apk-1/
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!