美文网首页Android开发
给 APK 文件签名

给 APK 文件签名

作者: hunter886 | 来源:发表于2017-01-13 16:39 被阅读175次

下面使用的工具都在 \Java\jdk1.7.0_17\bin 下,如果你已经配置了java环境变量,就可以直接在命令行下使用了,如果没有的话,你需要在命令行下将工作目录切换到 Java\jdk1.7.0_17\bin 执行

生成证书

如果有证书可以略过这一步,直接进入下一步

keytool -genkey -v -alias CERT -keyalg RSA -keysize 2048 -validity 10000 -keystore CERT.keystore

参数说明:
CERT.keystore ---- 证书保存的文件名
CERT ---- 证书的别名
10000 ---- 10000天的有效期
2048 ---- 默认为1024 bits,Android 建议使用2048 bits或更高

证书生成后使用如下命令可以查看证书的信息:

keytool -list -alias CERT -keystore CERT.keystore

给APK文件签名

jarsigner -verbose -keystore CERT.keystore to_sign.apk CERT

参数说明:
CERT.keystore ---- 证书保存的文件名
CERT ---- 证书的别名
to_sign.apk ------待签名的apk文件

签名过程需要输入证书的密码,按要求输入即可

待签名的apk文件根根目录下如果有文件夹“META-INFO”,请先删除(重新签名就需要这样做)。
如果不想创建过程输出太多信息,可以删除“-verbose” 。
上述签名会直接覆盖原来的文件,如果不想被覆盖而签名为另外的新文件 signed.akp,只需将 to_sign.apk 改为 -signedjar to_sign.apk signed.akp 即可。

签名后可以使用如下命令验证是否签名成功:

jarsigner -verify to_sign.apk

如果需要查看更详细的验证信息,可使用:

jarsigner -certs -verbose -verify to_sign.apk

优化APK

如果不需要,这一步可以不做,但推荐执行

使用 zipalign 工具优化已签名的apk文件

zipalign -v 4 unaligned.apk aligned.apk


到此结束

相关文章

  • apk签名验证和数字签名原理

    一、Android apk的签名文件 1.1、apk 签名文件 android apk解压之后有如下几个文件 其中...

  • Android中用命令行对apk签名

    前言 本文章算是给自己的一个记录贴。 签名 ①keystore文件路径 ②签名后生成的apk路径 ③待签名的apk...

  • 给 APK 文件签名

    下面使用的工具都在 \Java\jdk1.7.0_17\bin 下,如果你已经配置了java环境变量,就可以直接在...

  • apk文件签名步骤(jdk)

    使用jdk方法给apk文件进行签名 1.使用keytool生成签名文件 使用jdk的keytool工具生成签名用的...

  • APK Signature Scheme v1 v2 v3

    v1 方案:基于 JAR 签名。APK文件可修改。 v2 方案:对APK 文件签名。APK文件不可修改。 v3 方...

  • Adb常用命令

    查看签名文件 查看第三方应用签名 给空白APK文件签名 查看应用某一标识的log 将应用日志输出到文件

  • Apk去掉签名以及重新签名的方法

    Android开发中很重要的一部就是用自己的密钥给Apk文件签名,不经过签名的Apk文件一般是无法安装的,就算装了...

  • Apk结构,签名原理

    Apk解压后的文件结构 这里主要关注未签名和签名的apk的区别未签名的apk是没有MEAT-INF文件夹的,只有签...

  • Gradle-实现一键打包

    1. 生成正式签名的APK文件 Android系统要求只有签名后的APK文件才可以安装到手机上。之所以DEBUG模...

  • Android获取App签名信息

    概述: Android对每一个Apk文件都会进行签名,在Apk文件安装时,系统会对其签名信息进行比对,判断程序的完...

网友评论

    本文标题:给 APK 文件签名

    本文链接:https://www.haomeiwen.com/subject/djysbttx.html