原创

反编译安卓APK修改文件并打包签名

1.准备工作

0.环境准备jdk

百度下载jdk,配置环境变量即可

1.下载Apktool

Apktool: 反编译apk的工具https://ibotpeaches.github.io/Apktool/install/
根据提示安装就行

2.

1.反编译apk(你也可以说这个过程是解压缩)

命令 apktool d -s {apk路径}// -s 不反编译源码 最好加上时间比较久
如果需要反编译查看源码 再用下面2个工具即可,今天我们只修改配置文件
dex2jar: 将dex转换成class文件的工具https://sourceforge.net/projects/dex2jar/files/
JD-GUI: 查看class源码的图形化工具http://jd.benow.ca/ java开发必备

ZBMAC-C02WD12BH:apktool lishihao$ ./apktool d -s longzhigu2.apk
I: Using Apktool 2.4.0 on longzhigu2.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
S: WARNING: Could not write to (/Users/lishihao/Library/apktool/framework), using /var/folders/yv/r4tqrc9s7r72_8sxc7l1vpy9vg0l_z/T/ instead...
S: Please be aware this is a volatile directory and frameworks could go missing, please utilize --frame-path if the default storage directory is unavailable
I: Loading resource table from file: /var/folders/yv/r4tqrc9s7r72_8sxc7l1vpy9vg0l_z/T/1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Copying raw classes.dex file...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...

2.修改

随便修改配置文件
这里以龙之谷手游apk为例
1.修改包里面的ip地址为外网
2.修改重点在于原来的ip地址是几位改成新的还要是几位,一般都用域名代替要保证长度不变
3.因为文件里面的所有内容只能替换,替换!不能新增和修改

3.打包apk

命令 apktool b xxx -o xxx-new.apk
你可以用压缩工具打开,不解压直接修改配置文件内容

apktool b lzg.apk -o lzg-new.apk

如何在重编译的时候 报错 brut.androlib.AndrolibException: brut.common.BrutException: could not exec:

brut.androlib.AndrolibException: brut.common.BrutException: could not exec: [/var/folders/yv/r4tqrc9s7r72_8sxc7l1vpy9vg0l_z/T/brut_util_Jar_7394139704111753423.tmp, p, --forced-package-id, 127, --min-sdk-version, 9, --target-sdk-version, 21, --version-code, 190330, --version-name, 0.1.0, --no-version-vectors, -F, /var/folders/yv/r4tqrc9s7r72_8sxc7l1vpy9vg0l_z/T/APKTOOL510195533907244612.tmp, -0, arsc, -0, assets/button_red.9.png, -0, assets/com.tencent.plus.blue_disable.png, -0, ini, -0, bank, -0, assets/.....

解决

在反编译apk的时候 命令改成apktool -r d longzhigu23.apk -o longzhigu23 加上-r参数,然后在重编译即可

4.生成keystore

-alias别名

ZBMAC-C02WD12BH:apktool lishihao$ keytool -genkey -alias lsh.keystore -keyalg RSA -validity 36500 -keystore lsh.keystore

按照提示输入各种信息 ,就会在当前目录生成lsh.keystore

5.apk签名

命令 jarsigner -verbose -keystore [keystore路径] -signedjar [签名后文件存放路径] [未签名的文件路径] [keystore别名]

ZBMAC-C02WD12BH:apktool lishihao$ jarsigner -verbose -keystore lsh.keystore -signedjar longzhigu2r-new.apk longzhigu2r.apk lsh.keystore
....
  正在签名: longzhigu22/assets/com.tencent.plus.gray_normal.png
  正在签名: longzhigu22/assets/yyb_gifts.xml
  正在签名: longzhigu22/apktool.yml
jar 已签名。
完事
正文到此结束
本文目录