Android简单的反编译Apk并重新打包,签名发布

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30552993/article/details/83028285

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

一、工具介绍:

在这里插入图片描述

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

二、工具使用

1. jadx-0.6.1-dev-build226

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

2. 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。

3. 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

猜你喜欢

转载自blog.csdn.net/qq_30552993/article/details/83028285