android 反编译后再次打包流程

image.png

准备工作

主要使用工具:
apktool、

反编译流程:

  1. 使用apktool解包
  2. 修改代码
  3. 使用apktool重新打包
  4. 添加签名

使用apktool解包

使用命令如下:
apktool d -f [待反编译的apk] -o [反编译之后存放文件夹]
例如:

apktool d  xxx.apk 
image.png

反编译得到的文件夹内容如下:


image.png

其中smali文件夹下就是代码编译后生成的smail文件。

修改代码

修改代码也是修改smail文件。

修改smail的时候要先阅读下源码,这个时候要用到反编译。、
反编译参考文章APK逆向工程

image.png

通过GUI界面,查看到源码后,找到对应的smail文件,对应的代码位置进行修改即可。

使用apktool重新打包

重新打包最主要使用的工具还是apktool.
执行命令:

apktool b -f ./test/  -o test.apk

打包完后当前目录下会多出两个文件夹:


image.png

dist文件内就是我们需要的apk。

添加签名

如果没有签名,安装时候就会报错:
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]。

这里主要是生成自己的签名文件。

可以使用 Android Studio可视化操作界面生成一个新的签名文件,也可以直接使用 keytool 工具直接在终端工具上生成,使用时候需要先找到keytool 工具的安装路径,一般是在C:\Users\Admin\AppData\Local\Android\Sdk\build-tools\30.0.3下.

使用命令如下:

 keytool -genkey -alias abc123.keystore   -keyalg RSA -validity 40000 -keystore abc123.keystore

生成abc123.keystore 签名文件。一般需要输入秘钥,秘钥我这里直接输入123456

然后就可以使用签名文件进行签名了:

 jarsigner -verbose -keystore abc123.keystore -signedjar hello_sign123.apk hello_test.apk abc123.keystore

这样就签名完成了,安装hello_sign123.apk就可以使用了。

你可能感兴趣的:(android 反编译后再次打包流程)