apk打包和签名

目标描述

打包,就是把文件夹打包为zip文件,一般的打包工具就可以,然后改后缀为apk即可

签名,为zip中的各个文件进行签名,生成的信息放在META-INF文件夹下


签名

签名有很多方法,可以用jdk提供的jarsigner,也可以用android源码编译生成的signapk.jar。

利用jdk工具jarsigner                                                                【1】

大致流程

签名的过程:

1.需要先有自己的密钥,没有的话用java的keytool生成一个

2.用密钥对apk文件签名

签名的意义大概是保障只有用相同密钥签名的apk才可以覆盖(待验证),安装签名不同的同名apk只能卸载后进行替换。

具体流程和注意

命令行具体使用到的命令:

1.产生keystore文件

keytool -genkey -alias [ALIAS] -keyalg RSA -validity 365 -keystore xxx.keystore

-alias,别名

-validity,有效时间

查看keystore

keytool -list -keystore xxx.keystore

2.用keystore文件签名

jarsigner -verbose -keystore [xxx.keystore] -signedjar [out.apk] [in.apk] [ALIAS]

-verbose,显示签名过程的详细信息

注,签名前可能需要把原始包中的META-INF文件夹删掉

验证已签名apk包

jarsigner -verify xxx.apk

注,这里可能会出现签名时没问题,验证却失败的情况,把jre7换位jre6可以解决这一问题,不明白具体原因。

利用android源码编译生成的signapk.jar                                            【2】

1.signapk.jar在android编译后的/out/host/linux86/framwork目录中

2.签名文件可以用android源码目录下的build/target/product/security/中的testkey.pk8testkey.x509.pem

3.java -jar signapk.jar testkey.x509.pem testkey.pk8 [in.apk] [out.apk]


参考资料:

【1】http://www.tttabc.com/android/keytool-keystore-jarsigner-apk.htm

【2】《Android软件安全与逆向分析》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值