apk从解压缩到重新签名

方法一 解压apk删除原签名再重新打包

操作步骤一:


keytool -genkey -v -keystore hzc.keystore -alias hzc -keyalg RSA -keysize 2048 -validity 20000  生成证书(官方版,多了一个参数)


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 进行签名操作,即步骤一

以上转载: http://blog.csdn.net/kaojistream/article/details/52198764
方法二 

APK文件使用ApkTool解包反编译和重新打包及签名


【准备工作】

配置JAVA环境,到http://www.java.com/下载并进行安装,如已安装的可忽略

APKTool下载地址:

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


你可能感兴趣的:(apk从解压缩到重新签名)