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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章