zoukankan      html  css  js  c++  java
  • Android学习第三天-签名常用命令

    由于怕篇幅过长,所以把这个打包常用命令分开成两篇博文来进行讲解,下面我们直接进入主题吧。

    8.keytool

    这是我们JDK自带的密钥和证书管理工具

    命令:
    
     -certreq            生成证书请求
     -changealias        更改条目的别名
     -delete             删除条目
     -exportcert         导出证书
     -genkeypair         生成密钥对
     -genseckey          生成对称密钥
     -gencert            根据证书请求生成证书
     -importcert         导入证书或证书链
     -importkeystore     从其他密钥库导入一个或所有条目
     -keypasswd          更改条目的密钥口令
     -list               列出密钥库中的条目
     -printcert          打印证书内容
     -printcertreq       打印证书请求的内容
     -printcrl           打印 CRL 文件的内容
     -storepasswd        更改密钥库的存储口令

    一般情况下,我们都是直接通过以下格式的命令进行证书生成:

    keytool -genkeypair -alias <整数的别名>-keyalg RSA -validity <有效天数> -keystore <keystore文件的路径+文件名>.keystore

    比如生成一个别名为 tbb 证书名字为tbb.keystore的证书:

    keytool -genkeypair -alias tbb -keyalg RSA -validity 180 -keystore d:	bb.keystore

    执行该命令后,按照提示进行密码等情况的输入即可。

    9.jarsigner

    使用这个工具我们可以给apk进行签名:

    用法: jarsigner [选项] jar文件 别名
           jarsigner -verify [选项] jar文件 [别名...]
    
    [-keystore <url>]           密钥库位置
    
    [-storepass <口令>]         用于密钥库完整性的口令
    
    [-storetype <类型>]         密钥库类型
    
    [-keypass <口令>]           私有密钥的口令 (如果不同)
    
    [-certchain <文件>]         替代证书链文件的名称
    
    [-sigfile <文件>]           .SF/.DSA 文件的名称
    
    [-signedjar <文件>]         已签名的 JAR 文件的名称
    
    [-digestalg <算法>]    摘要算法的名称
    
    [-sigalg <算法>]       签名算法的名称
    
    [-verify]                   验证已签名的 JAR 文件
    
    [-verbose[:子选项]]     签名/验证时输出详细信息。
                                子选项可以是 all, grouped 或 summary
    
    [-certs]                    输出详细信息和验证时显示证书
    
    [-tsa <url>]                时间戳颁发机构的位置
    
    [-tsacert <别名>]           时间戳颁发机构的公共密钥证书
    
    [-altsigner <类>]           替代的签名机制的类名
    
    [-altsignerpath <路径列表>] 替代的签名机制的位置
    
    [-internalsf]               在签名块内包含 .SF 文件
    
    [-sectionsonly]             不计算整个清单的散列
    
    [-protected]                密钥库具有受保护验证路径
    
    [-providerName <名称>]      提供方名称
    
    [-providerClass <类>        加密服务提供方的名称
      [-providerArg <参数>]]... 主类文件和构造器参数
    
    [-strict]                   将警告视为错误

    一般情况下,对apk文件进行签名的命令格式为:

    jarsigner -verbose -keystore <证书所在的路径> -signedjar <签名后apk的名字> <需要签名的apk> <证书别名>

    -verbose : 指定生成详细输出

    下面举一个例子,为我们前面博文中建立的xiaoxuetu.apk进行签名:

    E:Workspacesandroidxiaoxuetu>jarsigner -verbose -keystore tbb.keystore -signedjar xiaoxuetu_sign.apk xiaoxuetu.apk tbb

    终端的执行结果为:

     10 zipalign

    zipalign是Android自带的一个档案整理工具,可用于优化APK安装包,从而提升Android应用与系统之间的交互效率,提升应用程序的运行速度。

    Usage: zipalign [-f] [-v] <align> infile.zip outfile.zip
           zipalign -c [-v] <align> infile.zip
    
      <align>: alignment in bytes, e.g. '4' provides 32-bit alignment
      -c: check alignment only (does not modify file)
      -f: overwrite existing outfile.zip, 即是强制覆盖已有的文件
      -v: verbose output, 指定生成详细输出

    一般情况下,我们直接使用该命令的基本格式为:

    zipalign -f -v <档案整理所基于的字节数> <需要优化的文件> <经过优化后的文件>

    下面就针对我们的xiaoxuetu.apk进行一次优化做为例子:

    zipalign -f -v 4 xiaoxuetu.apk xiaoxuetu_zip.apk
  • 相关阅读:
    I NEED A OFFER!
    水题 Codeforces Round #303 (Div. 2) A. Toy Cars
    模拟 HDOJ 5099 Comparison of Android versions
    模拟 HDOJ 5095 Linearization of the kernel functions in SVM
    贪心 HDOJ 5090 Game with Pearls
    Kruskal HDOJ 1863 畅通工程
    Kruskal HDOJ 1233 还是畅通工程
    并查集 HDOJ 1232 畅通工程
    DFS/并查集 Codeforces Round #286 (Div. 2) B
    水题 Codeforces Round #286 (Div. 2) A Mr. Kitayuta's Gift
  • 原文地址:https://www.cnblogs.com/xiaoxuetu/p/3414979.html
Copyright © 2011-2022 走看看