方法一 解压apk删除原签名再重新打包
操作步骤一:
keytool -genkey -alias hzc -keyalg RSA -validity 20000 –keystore hzc.keystore 生成证书( 推荐使用 )
jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore hzc.keystore -signedjar hzc_signed.apk hzc_unsigned.apk hzc
签名,推荐使用(注意:1.如果是先解压缩apk,再次压缩时不要压缩文件夹,直接全选里面的内容压缩 2. -sigalg MD5withRSA -digestalg SHA1这两个顺序不可颠倒,否则会报错)
jarsigner -verify -verbose hzc_signed.apk
验证签名是否成功(成功提示:jar已验证)
./zipalign -v 4 hzc_signed.apk hzc-release.apk
签名后优化(找到zipalign位置,拷贝到当前操作的文件夹)
签名也可以用:jarsigner -verbose -keystore hzc.keystore -signedjar hzc_signed.apk hzc_unsigned.apk hzc
(据说jdk1.7不可用)
以上参数解释:
-keystore hzc.keystore:(要)生成的证书
-alias hzc:证书别名
-keyalg RSA:证书算法-validity 20000:证书有效期限
-verbose:输出日志
-sigalg MD5withRSA -digestalg SHA1:签名算法,顺序不可颠倒
-signedjar hzc_signed.apk:签名后的apk
hzc_unsigned.apk:签名前的apk,可以是zip
hzc:证书别名
hzc-release.apk:优化后的apk
操作步骤二:
apk解压缩到重新签名:
1.修改 apk 后缀为 zip ,有时需要在显示简介里改
2.双击 .zip 进行解压缩3.修改你想换的内容
4.移除 META_INF 文件夹
5.选中全部文件,右键压缩,切记不要直接压缩外部文件夹
6.对生成的 .zip ,即归档 .zip 进行签名操作,即步骤一
APK文件使用ApkTool解包反编译和重新打包及签名
【准备工作】
配置JAVA环境,到http://www.java.com/下载并进行安装,如已安装的可忽略
https://ibotpeaches.github.io/Apktool/install/
Windows下只需要下载这两个文件包即可:
apktool1.5.2.tar.bz2和apktool-install-windows-r05-ibot.tar.bz2
分别解压到到一个方便操作的目录下,然后就可以通过控制台进行操作了
【解包/反编译】
把要反编译的APK文件放到跟APKTool四个文件的同一个目录(例如C:\APK);
点击“开始”--“运行”,输入cmd,然后执行:
cd C:\APK
然后执行:
apktool d apkname.apk foldername
apkname.apk 表示要进行反编译的APK文件
foldername表示反编译后文件存放的目录,即在当前目录下会自动建一个新目录存放(如:C:\APK\foldername)
执行完上面语句后,如果没有出现错误提示,则成功解包了,找到foldername目录,打开smali目录即为反编译出来的字节。
【重新打包】
修改需要改变的文件后,就要重新打包成APK文件了:
apktool b foldername new.apk
其中foldername即放反编译结果的目录,执行成功后会在该目录的dist目录下有一个重新打包后的apk文件。
到此就成功打包了一个新的apk文件了,但还不要高兴得太早,该文件是一个没有签名的apk,有了解过android的应该都知道,没有签名是无法安装的。那就要重新为该文件签一下名了。
【签名】(也可用上面一中的方法进行签名)
签名我们需要用到的工具是Auto-sign。它主要是利用批处理命令,使用signapk.jar对APK文件进行签名的。
把new.apk文件复制到签名软件的目录下,再用记事本打开Sign.bat,将其修改为如下代码:
java -jar signapk.jar testkey.x509.pem testkey.pk8 new.apk new_signed.apk
最后双击一下Sign.bat即可签名完成,
签名后的APK文件就可以在模拟器或者Android机器上安装了。
Auto-sign下载地址:
http://pan.baidu.com/share/link?shareid=60884&uk=1227037436
或者可以使用AndroidResEdit进行图形化操作的签名
http://pan.baidu.com/share/link?shareid=558520&uk=1043662865