利用jdk打包,可以替换资源文件
首先打包生成apk文件和签名文件test.keystore文件
打包步骤
1.解压apk文件,将后缀改成zip解压,得到资源包,这里用mac的注意一下,mac直接解压会出现cpgz文件,解压cpgz的话会无限循环,最好用第三方工具,或者终端jar -xvf xxxx.apk 进行解压缩
2.删除得到的资源包下面的MATE-INF文件夹,删除旧的apk文件
3.根据需求替换资源文件,我只需要换图标
4.对替换好的资源文件包大包 jar -cvf ../xxxx.apk ./ 打包后的apk在上层目录
5.对重新打包的apk进行签名
jarsigner -verbose -keystore 签名文件(注意路径) -storepass 你的密码 -keypass 密码 -signedjar 签名后的apk文件 -digestalg SHA1 -sigalg MD5withRSA 用来签名apk文件 签名文件别名
例如:
jarsigner -verbose -keystore ../test.keystore -storepass 123456 -keypass 123456 -signedjar ../Test_signed.apk -digestalg SHA1 -sigalg MD5withRSA ../appTest.apk test
说明一下jdk1.7一下版本不加-digestalg SHA1 -sigalg MD5withRSA也是可以的,以上的必须添加,不然的话打包签名出来是不能安装的
shell 脚本
jar -xvf xxxx.apk
rm -rf MATE-INF
rm -rf xxxx.apk
#替换资源文件
cp -rf zhiyuan/* test/res/
# 打包apk文件
cd test
jar -cvf ../linshi/xxxxx.apk ./
cd ../
#签名apk文件
jarsigner -verbose -keystore test.keystore -storepass 123 -keypass 123 -signedjar download_apk/xxxxx_sign.apk -digestalg SHA1 -sigalg MD5withRSA linshi/xxxxx.apk test
#删除临时apk文件
rm -rf linshi/xxxxx.apk
rm -rf zhiyuan/*