如果想修改apk文件中的某些文件,如图片、动画资源等,需要首先将apk文件反编译,然后修改想要修改的内容,再将文件签名就OK了。
下面以修改‘金山手机毒霸’为例,说明修改apk文件的步骤:
2、进入文件夹,修改文件
例如修改
AndroidManifest.xml
中的版本号
将版本号3.3.1改成3.3.0,保存退出。
运行命令行,进入到D:\ProgramFiles\apktool1.5.2路径,输入命令:
apktool.bat b 金山手机毒霸_com.ijinshan.duba_30311521
没有成功,抛出异常,原因是由于反编译后生成的apktool.yml这个文件中包含中文。
编辑文件,将apkFileName 的中文去掉即可
再次运行命令行:apktool.bat b 金山手机毒霸_com.ijinshan.duba_30311521
这次成功了。进入文件夹发现多出了2个文件夹:
新的apk文件在dist中,这样就得到了修改后的apk文件,但是此时文件是未签名的。
首先得是未签名的apk文件,否则运行时会报错,重新签名失败。
将未签名的apk文件复制到某路径下,如‘D:\’,将签名文件也复制过来。
我们使用的工具是jarsigner,这个命令位于JDK中,所以如果没有配置环境变量,还要先配置一下。下图是我的电脑中jarsigner路径:
输入命令:
jarsigner -digestalg SHA1 -sigalg MD5withRSA -verbose -keystore distributor.keystore -signedjar jinshanduba.apk com.ijinshan.duba_30311521.apk distributor.keystore
运行成功后安装到手机,可以看到版本号已经被修改成3.3.0
下面是jarsigner 使用说明: