`
zengyan2012
  • 浏览: 410207 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

apk签名 keytool

阅读更多

转自:http://www.android123.com.cn/androidkaifa/173.html

 

 

 Android程序的签名和Symbian类似都可以自签名(Self-signed),但是在Android平台中证书初期还显得形同虚设,平时开发时通过ADB接口上传的程序会自动被签有Debug权限的程序。需要签名验证在上传程序到Android Market上时大家都已经发现这个问题了。Android signed制作方法

首先在Android开发时没有安装JDK的网友在Sun官方网站下载JDKhttp://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe,其实仅需要中的Keytool和Jarsigner。

 详细的签名步骤:

 第一步

C:\Program Files\Java\jdk1.6.0_10\bin>keytool -genkey -alias android123.keystore
 -keyalg RSA -validity 20000 -keystore android123.keystore

输入keystore密码:[密码不回显]
再次输入新密码:[密码不回显]
您的名字与姓氏是什么?
  [Unknown]:  android123
您的组织单位名称是什么?
  [Unknown]:  www.android123.com.cn
您的组织名称是什么?
  [Unknown]:  www.android123.com.cn
您的组织名称是什么?
  [Unknown]:  www.android123.com.cn
您所在的城市或区域名称是什么?
  [Unknown]:  New York
您所在的州或省份名称是什么?
  [Unknown]:  New York
该单位的两字母国家代码是什么
  [Unknown]:  CN
CN=android123, OU=www.android123.com.cn, O=www.android123.com.cn, L=New York, ST
=New York, C=CN 正确吗?
  [否]:  Y

输入<android123.keystore>的主密码
        (如果和 keystore 密码相同,按回车):

 其中参数-validity为证书有效天数,这里我们写的大些20000天。还有在输入密码时没有回显,只管输入就可以了,一般位数建议使用20位,最后需要记下来后面还要用,整个过程如图:

android keytool

  接下来我们开始为apk文件签名了。

 第二步

  执行下面这句jarsigner -verbose -keystore android123.keystore -signedjar android123_signed.apk android123.apk android123.keystore 就可以生辰签名的apk文件,这里输入文件android123.apk,最终生成android123_signed.apk为Android签名后的APK执行文件。下面提示输入的密码和keytool输入的一样就行了,如图:

 android jarsigner

  有关Android程序发布和签名可以查看SDK中 http://code.google.com/android/devel/sign-publish.html 一文.

  附上keytool参数以及jarsigner参数:

  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 <路径列表>]

 

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 <参数>]] ... 主类文件和构造函数参数

 

 

分享到:
评论

相关推荐

    Android签名用keytool和jarsigner制作apk文件.doc

    Android签名用keytool和jarsigner制作apk文件

    keytool查询apk证书指纹.zip

    keytool 查看apk 的签名信息(如MD5、SHA1、SHA256)

    Android Studio自动生成带系统签名的apk

    如果你需要开发一个带有系统...给apk加上开发者签名(jks文件),使用keytool-importkeypair 对jks文件进行系统签名,在出包的时候,直接使用带有系统签名的jks对apk进行签名,这样编译生成的apk文件就自带系统签名了

    android apk 签名

    1)keytool:生成数字证书,即密钥,也就是上面说到的扩展名为.keystore的那类文件;

    解决在eclipse中将android项目生成apk并且给apk签名的实现方法详解

    生成apk最懒惰的方法是:只要你运行过android项目,到工作目录的bin文件夹下就能找到与项目同名的apk文件,这种apk默认是已经使用debug用户...具体操作方法一: 命令行下对apk签名(原理)创建key,需要用到keytool.exe

    Android获取apk签名指纹的md5值(防止重新被打包)的实现方法

    本文实例讲述了Android获取apk签名指纹的md5值以防止重新被打包的实现方法。分享给大家供大家参考,具体如下: 做个记录(这里只是Java层的签名校验,java层容易被破解,我建议apk加固下) 获取md5值来进行Apk签名校验...

    Android apk获得系统权限签名工具

    Android apk获得系统权限签名工具

    apk工具包附带反编译apk完整步骤

    工具清单: apktool_2.3.3.jar 打包/解包APK程序 smali.xml Notepad++ smali...7.apk签名 jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore "xxx.jks" -signedjar abc_signed.apk ".\abc.apk" "xxx

    keytool.exe

    apk签名用的签名资源文件,基于keytool -genkey -alias abc.keystore -keyalg RSA -validity 20000 -keystore abc.keystore 可生成密钥

    android 系统签名platform.pk8 platform.x509.pem keytool-importkeypair

    Android 资源 platform.pk8 platform.x509.pem signapk.jar keytool-importkeypair (debug-apk.jks 密码:123456)

    查看apk签名信息方法

    用shell写了一个查看apk签名的脚本。代码很少也很简单 代码如下: #!/bin/bash mkdir .temp_for_certificate cd .temp_for_certificate count=0 while [ -n “$1” ] do count=$[$count+1] echo “(#$count) “`...

    android应用签名详细步骤

    给apk签名一共要用到3个工具,或者说3个命令,分别是:keytool、 jarsigner、 zipalign,下面是对这3个工具的简单介绍: 1)keytool:生成数字证书,即密钥,也就是上面说到的扩展名为.keystore的那

    keytool-importkeypair.zip

    给apk加上开发者签名(jks文件),使用keytool-importkeypair 对jks文件进行系统签名,使apk获取系统最高权限,使用详情请查看:https://blog.csdn.net/onlySound/article/details/115010529

    odex2dex合并odex和 少dex的apk 为完整的apk文件

    odex和apk合成dex 一、APK生成odex文件方法: 编译开源GIT上的build/tools/dexpreopt/dexopt-wrapper这个,使用dexopt-wrapper即可,操作步骤 ...5. 不要忘记了签名,使用jdk中的arsigner和keytool打包重新签名即可。

    android 打包带有系统签名的apk所需文件

    资源内有文件 platform.pk8 platform.x509.pem signapk.jar keytool-importkeypair 以及使用 keytool-importkeypair来运行命令得到的带有系统签名的jks(需要在linux下运行命令 得到的jks用于debug模式下的程序带有...

    Android项目 打包签名 从生成keystore到完成签名.rar

    在这个过程中,您将学会如何导入keystore文件、选择签名配置以及生成已签名的APK文件。 通过本资源的学习,您将能够轻松地为您的Android项目生成keystore并进行签名。这将确保您的应用程序在发布时具有更高的安全性...

    android反编译工具

    4、本工具提供apk签名【用signapk或(JarSigner在tools包中)】 signapk基于android默认签名,JarSigner基于自己的xxx.keystore签名 请自行修改 APKTool.cmd的批处理命令 5、本工具提供给喜欢个性化自己apk的网友,...

    Android APK+Dex文件反编译及回编译工具v2.0.2

    新增,Keytool签名包制作工具,推荐使用JAVA8 *.新增,极限压缩优化APK内图片功能 *.新增,PNG图片优化工具OptiPNG v0.7.6 *.新增,设定默认Apktool版本(回车键直接执行) *.新增,ShakaApktool自定义操作 *.新增,...

    ionic混合开发APP

    1 简介 1、Native APP(原生)...3.1.4.2 apk签名 jarsigner -verbose -keystore testapp.keystore -signedjar app-release-signed.apk app-release-unsigned.apk testapp.keystore 3.1.5 安装 安卓手机安装使用

    ODEX文件转换成DEX文件工具

    一、APK生成odex文件方法: 编译开源GIT上的build/tools/dexpreopt/dexopt-wrapper这个,使用dexopt-... 不要忘记了签名,使用jdk中的arsigner和keytool打包重新签名即可。 主意:1.2.2版本的用不起的,会报错。

Global site tag (gtag.js) - Google Analytics