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

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

输入的主密码[img][/img]
(如果和 keystore 密码相同,按回车):

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

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

第二步

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

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

附上keytool参数以及jarsigner参数:

keytool用法:

-certreq [-v] [-protected]
[-alias ] [-sigalg ]
[-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 ] [-keysize ]
[-sigalg ] [-dname ]
[-validity ] [-keypass ]
[-keystore ] [-storepass ]
[-storetype ] [-providername ]
[-providerclass[-providerarg ]] ...
[-providerpath ]

-genseckey [-v] [-protected]
[-alias ] [-keypass ]
[-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 ] 密钥库位置
[-storepass ] 用于密钥库完整性的口令
[-storetype ] 密钥库类型
[-keypass ] 专用密钥的口令(如果不同)
[-sigfile ] .SF/.DSA 文件的名称
[-signedjar ] 已签名的 JAR 文件的名称
[-digestalg ]摘要算法的名称
[-sigalg ] 签名算法的名称
[-verify] 验证已签名的 JAR 文件
[-verbose]签名/验证时输出详细信息
[-certs]输出详细信息和验证时显示证书
[-tsa ]时间戳机构的位置
[-tsacert ] 时间戳机构的公共密钥证书
[-altsigner ] 替代的签名机制的类名
[-altsignerpath ] 替代的签名机制的位置
[-internalsf] 在签名块内包含 .SF 文件
[-sectionsonly] 不计算整个清单的散列
[-protected]密钥库已保护验证路径
[-providerName ]提供者名称
[-providerClass 加密服务提供者的名称
[-providerArg ]] ... 主类文件和构造函数参数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值