zoukankan      html  css  js  c++  java
  • Android测试之 APK重签名方法

    方法一:命令行重签名

    D:>keytool -help
    keytool 用法:

    -certreq [-v] [-protected]
    [-alias <别名>] [-sigalg <sigalg>]
    [-file <csr_file>] [-keypass <密钥库口令>]
    [-keystore <密钥库>] [-storepass <存储库口令>]
    [-storetype <存储类型>] [-providername <名称>]
    [-providerclass <提供方类名称> [-providerarg <参数>]] ...
    [-providerpath <路径列表>]

    -changealias [-v] [-protected] -alias <别名> -destalias <目标别名>
    [-keypass <密钥库口令>]
    [-keystore <密钥库>] [-storepass <存储库口令>]
    [-storetype <存储类型>] [-providername <名称>]
    [-providerclass <提供方类名称> [-providerarg <参数>]] ...
    [-providerpath <路径列表>]

    -delete [-v] [-protected] -alias <别名>
    [-keystore <密钥库>] [-storepass <存储库口令>]
    [-storetype <存储类型>] [-providername <名称>]
    [-providerclass <提供方类名称> [-providerarg <参数>]] ...
    [-providerpath <路径列表>]

    -exportcert [-v] [-rfc] [-protected]
    [-alias <别名>] [-file <认证文件>]
    [-keystore <密钥库>] [-storepass <存储库口令>]
    [-storetype <存储类型>] [-providername <名称>]
    [-providerclass <提供方类名称> [-providerarg <参数>]] ...
    [-providerpath <路径列表>]

    -genkeypair [-v] [-protected]
    [-alias <别名>]
    [-keyalg <keyalg>] [-keysize <密钥大小>]
    [-sigalg <sigalg>] [-dname <dname>]
    [-validity <valDays>] [-keypass <密钥库口令>]
    [-keystore <密钥库>] [-storepass <存储库口令>]
    [-storetype <存储类型>] [-providername <名称>]
    [-providerclass <提供方类名称> [-providerarg <参数>]] ...
    [-providerpath <路径列表>]

    -genseckey [-v] [-protected]
    [-alias <别名>] [-keypass <密钥库口令>]
    [-keyalg <keyalg>] [-keysize <密钥大小>]
    [-keystore <密钥库>] [-storepass <存储库口令>]
    [-storetype <存储类型>] [-providername <名称>]
    [-providerclass <提供方类名称> [-providerarg <参数>]] ...
    [-providerpath <路径列表>]

    -help

    -importcert [-v] [-noprompt] [-trustcacerts] [-protected]
    [-alias <别名>]
    [-file <认证文件>] [-keypass <密钥库口令>]
    [-keystore <密钥库>] [-storepass <存储库口令>]
    [-storetype <存储类型>] [-providername <名称>]
    [-providerclass <提供方类名称> [-providerarg <参数>]] ...
    [-providerpath <路径列表>]

    -importkeystore [-v]
    [-srckeystore <源密钥库>] [-destkeystore <目标密钥库>]
    [-srcstoretype <源存储类型>] [-deststoretype <目标存储类型>]
    [-srcstorepass <源存储库口令>] [-deststorepass <目标存储库口令>
    [-srcprotected] [-destprotected]
    [-srcprovidername <源提供方名称>]
    [-destprovidername <目标提供方名称>]
    [-srcalias <源别名> [-destalias <目标别名>]
    [-srckeypass <源密钥库口令>] [-destkeypass <目标密钥库口令>]]
    [-noprompt]
    [-providerclass <提供方类名称> [-providerarg <参数>]] ...
    [-providerpath <路径列表>]

    -keypasswd [-v] [-alias <别名>]
    [-keypass <旧密钥库口令>] [-new <新密钥库口令>]
    [-keystore <密钥库>] [-storepass <存储库口令>]
    [-storetype <存储类型>] [-providername <名称>]
    [-providerclass <提供方类名称> [-providerarg <参数>]] ...
    [-providerpath <路径列表>]

    -list [-v | -rfc] [-protected]
    [-alias <别名>]
    [-keystore <密钥库>] [-storepass <存储库口令>]
    [-storetype <存储类型>] [-providername <名称>]
    [-providerclass <提供方类名称> [-providerarg <参数>]] ...
    [-providerpath <路径列表>]

    -printcert [-v] [-file <认证文件>]

    -storepasswd [-v] [-new <新存储库口令>]
    [-keystore <密钥库>] [-storepass <存储库口令>]
    [-storetype <存储类型>] [-providername <名称>]
    [-providerclass <提供方类名称> [-providerarg <参数>]] ...
    [-providerpath <路径列表>]


    keytool -genkey -v -alias nuomidebug -keystore nuomidebug.keystore -keyalg RSA -keysize 2048 -validity 365

    输入keystore密码:
    再次输入新密码:
    您的名字与姓氏是什么?
    [Unknown]: dtest
    您的组织单位名称是什么?
    [Unknown]: dumts
    您的组织名称是什么?
    [Unknown]: dumts
    您所在的城市或区域名称是什么?
    [Unknown]: shen zhen
    您所在的州或省份名称是什么?
    [Unknown]: guang dong
    该单位的两字母国家代码是什么
    [Unknown]: CN
    CN=dtest, OU=dumts, O=dumts, L=shen zhen, ST=guang dong, C=CN 正确吗?
    [否]: y

    正在为以下对象生成 2,048 位 RSA 密钥对和自签名证书 (SHA1withRSA)(有效期为 365
    天):
    CN=dtest, OU=dumts, O=dumts, L=shen zhen, ST=guang dong, C=CN
    输入<nuomidebug>的主密码
    (如果和 keystore 密码相同,按回车):
    [正在存储 nuomidebug.keystore]

    D:>jarsigner -h
    用法:jarsigner [选项] jar 文件别名
    jarsigner -verify [选项] jar 文件

    [-keystore <url>] 密钥库位置
    [-storepass <口令>] 用于密钥库完整性的口令
    [-storetype <类型>] 密钥库类型
    [-keypass <口令>] 专用密钥的口令(如果不同)
    [-sigfile <文件>] .SF/.DSA 文件的名称
    [-signedjar <文件>] 已签名的 JAR 文件的名称
    [-digestalg <算法>] 摘要算法的名称
    [-sigalg <算法>] 签名算法的名称
    [-verify] 验证已签名的 JAR 文件
    [-verbose] 签名/验证时输出详细信息
    [-certs] 输出详细信息和验证时显示证书
    [-tsa <url>] 时间戳机构的位置
    [-tsacert <别名>] 时间戳机构的公共密钥证书
    [-altsigner <类>] 替代的签名机制的类名
    [-altsignerpath <路径列表>] 替代的签名机制的位置
    [-internalsf] 在签名块内包含 .SF 文件
    [-sectionsonly] 不计算整个清单的散列
    [-protected] 密钥库已保护验证路径
    [-providerName <名称>] 提供者名称
    [-providerClass <类> 加密服务提供者的名称
    [-providerArg <参数>] ... 主类文件和构造函数参数

    jarsigner -keystore nuomidebug.keystore -verbose -certs jar f: esignaidunuomidebug.apk f: esignaidunuomi.apk nuomidebug

    jarsigner -keystore nuomidebug.keystore -verbose -certs -signedjar f: esignaidunuomidebug.apk f: esignaidunuomi.apk nuomidebug


    方法二:resign.jar工具重签名
    1、进入resign.jar所在的目录,执行java -jar resign.jar
    2、在需要重签名的apk应用拖进到弹出的窗口中既可以

  • 相关阅读:
    安卓开发遇到的报错信息
    工作记录
    答辩系统问题
    DWR
    前端vue 里的tab切换 减少dom操作
    前端拖动div 效果
    vue 点击按钮弹窗,点击关闭按钮关闭弹窗。
    前段开发 jq ajax数据处理详细讲解。
    vue计算属性computed和methods的区别
    前段开发 react native tab功能
  • 原文地址:https://www.cnblogs.com/dtest/p/4527933.html
Copyright © 2011-2022 走看看