平方X 发表于 2014-12-28 11:07:32

让eclipse和signapk.jar使用相同的证书。

这个问题很绕啊。感谢
android签名机制(3)——如何制作签名http://my.oschina.net/blackylin/blog/194612#OSC_h1_2
Eclipse ADT的Custom debug keystore所需证书规格http://blog.k-res.net/archives/1229.html
如何创建自己的证书文件,如何为apk以及zip文件签名 http://bbs.angeeks.com/thread-1836955-1-1.html
有时候使用eclipse调试,有时候使用signapk.jar签名,如果签名不一致就必须卸载才能装 ,
想解决这个问题,因此有了下面一堆探索,也可能是弯路,没办法,就是任性。O(∩_∩)O~
我在尝试的过程中发现的问题
1不清楚参数的意思,不能随意更改
2作者没说嘛哪些可以更改,唉。
原文内容请点击查看

平方X整理如下:不知道对不对,参数没仔细看

一、制作android签名公钥/密钥
1.生成长度为1024位的RSA私钥
openssl genrsa -out xxkey.pem 1024

2.配置
openssl req -new -key xxkey.pem -config E:\xxunpack\OpenSSL\openssl.cnf -out xxkey.cof.pem
使用1中的xxkey.pem,生成xxkey.cof.pem

3.生成x509格式的公钥证书
openssl x509 -req -days 9999 -in xxkey.cof.pem -signkey xxkey.pem -out xxkey.x509.pem
使用1中的xxkey.pem和2中的xxkey.cof.pem,生成xxkey.x509.pem

4.生成符合PKCS8标注的私钥文件
openssl pkcs8 -topk8 -outform DER -in xxkey.pem -inform PEM -out xxkey.pk8 -nocrypt
使用1中的xxkey.pem,生成xxkey.pk8,

此时生成的xxkey.x509.pem和xxkey.pk8 可以用来给signapk.jar签名用

后来检查的时候我发现,这一步生成的证书前面,
和eclipse调试的签名已经不冲突了,可以不进行下面一步了。
不冲突的原因,我想可能是eclipse和openssl生成证书都是以本电脑信息生成的,所以不冲突,不知道了。


二、将signapk.jar前面转eclipse签名
即将xkey.x509.pem和xxkey.pk8转为xxkeystore.keystore
原文中用ls我也是醉了,一直在想这是什么呀什么呀,后来一百度,原来是dir,就是列出文件,根本不用理会,我真笨O(∩_∩)O~

5.把pkcs8格式的私钥转换成pkcs12格式:
openssl pkcs8 -in xxkey.pk8 -inform DER -outform PEM -out xxkey.pkcs12.pem -nocrypt
使用4中的xxkey.pk8,生成xxkey.pkcs12.pem

6.把x509.pem公钥转换成pkcs12格式:
openssl pkcs12 -export -in xxkey.x509.pem -inkey xxkey.pkcs12.pem -out xxkey.pk12 -name androiddebugkey
Enter Export Password: (密码android)
Verifying - Enter Export Password: (密码android)
使用3中的xxkey.x509.pem和5中的xxkey.pkcs12.pem,生成xxkey.pk12
此处的输入密码是不显示字母的,也不显示*,直接获取,我一开始怎么输都输不进去,怎么回事呀,哈哈,后来想起来笑死。
注意:这里的name必须是androiddebugkey,密码必须是android,不可以修改,因为eclipse导入的时候必须是这样的。

7.生成debug.keystore
keytool -importkeystore -deststorepass android -destkeypass android -destkeystore xxkeystore.keystore -srckeystore xxkey.pk12 -srcstoretype PKCS12 -srcstorepass android -alias androiddebugkey
使用6中的xxkey.pk12,生成xxkeystore.keystore
注意:此处的deststorepass和destkeypass必须是android,alias必须是androiddebugkey,不仅是和6中相对应,也是eclipse的要求

8.eclipse 的Windows/Preferences/Android/Build中设置"Custom debug keystore"为7中的xxkeystore.keystore即可
如果前面都对,可以选择。否则会提示什么store密码不正确,name不存在呀,等等,因为必须使用eclipse的要求配置

页: [1]
查看完整版本: 让eclipse和signapk.jar使用相同的证书。