apk为什么要签名,使用命令如何对apk执行V2、V1签名

apk为什么要签名?

 1、防止被其他apk安装替换。因为一个应用的包名是对外可见的,你可以通过工具或者在手机设置里直接查找,都可以找到你安装应用的包名。这里说的包名不是文件夹路径而是applicationId。applicationId是一个应用的唯一标识。如果没有签名认证,别人写一个和你应用一样的包名的应用。那你的应用就可以直接被替换了吧。加了不同签名的apk,如果包名相同,手机系统会提示安装失败。(现在的手机系统已经不允许安装没有签名的apk了,直接运行android studio也会用$HOME/.android/debug.keystore这个文件去默认签名,这是android studio自己创建的签名文件,如果你删掉它会再创建一个debug.keystore,所以。。我好像跑题了)。

 2、为了apk信息的安全。这么说就要提到V1和V2签名方式的区别了,不想篇幅太长,简单来说,android7.0引入了V2签名方式。最大的区别是V1是先解压存档文件,在对其中内容进行计算验证。而V2签名是在整个apk文件的二进制内容上计算和验证的,并且V2签名的apk不能再修改,比如解压,解压之后签名会失效。所以,用V2签名后,apk的安装速度会变快(省去解压过程),安全性会有保证(对整个apk验证)

使用命令如何对apk执行V2、V1签名?

请看报道:点这里

内容提要:
使用apksigner,同时支持V1与V2
//apksigner sign --ks 签名文件 --ks-key-alias 别名名称 --out 签名后的apk 原始apk

apksigner sign --ks xxx.jks --ks-key-alias xxxx --out signed.apk original.apk

回车后输入密码即可完成签名。

验证是否成功:

apksigner verify -v --print-certs signed.apk

回车后得到下面显示信息代表成功:
Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
Number of signers: 1

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值