Android APP 签名
来源:互联网 发布:网络推广的优势 编辑:程序博客网 时间:2024/05/16 15:14
把Android源码中的密码对转换为keystore的方法
如果要在Eclipse中调试Android源码中非test key签名的程序(也就是使用platform, media or shared key签名的程序),需要把Android源码中的公私钥对(build/target/product/security)转换为Eclipse能够使用的keystore。
转换步骤如下:
0. 把build/target/product/security下面的某对需要转换的key拷贝到一个你的工作目录
(下面以shared key为例:shared.pk8 & shared.x509.pem)
1. 把pkcs8格式的私钥转换为pkcs12格式:
$ opensslpkcs8 -in shared.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt
2.生成pkcs12格式的密钥文件:
$ openssl pkcs12-export -in shared.x509.pem -inkey shared.priv.pem -out shared.pk12 -nameandroiddebugkey
(注:此过程中需要输入密码:android)
3.生成keystore:
$ keytool-importkeystore -deststorepass android -destkeypass android -destkeystoredebug.keystore -srckeystore shared.pk12 -srcstoretype PKCS12 -srcstorepassandroid -alias androiddebugkey(<<特别说明:androiddebugkey为别名,在jarsigner命令签名时如下所示:
jarsigner -verbose -keystore debug.keystore -signedjar app_signed.apk app.apkandroiddebugkey
在Eclipse时如下图所示
)
至此,已经生成keystore:debug.keystore
在Eclipse的Windows/Preferences/Android/Build中设置“Custom debug keystore“为刚才生成的keystore即可。
对于其它类型的key,步骤相同。
keystore文件转换格式为pk8+x509.pem
android 一般除了使用jarsigner签名还有使用signapk后者位于android源码前者位于jdk中。两者使用的文件格式不同前者使用JKS后者使用公钥+私钥是分开的
第一步先v把keystore文件转换为pkcs12格式
keytool -importkeystore -srckeystoredebug.keystore -destkeystore tmp.p12 -srcstoretype JKS -deststoretype PKCS12
第二步将PKCS12 dump成pem这样就可以按照文本形式查看了
openssl
pkcs12 -in tmp.p12 -nodes -outtmp.rsa.pem
接下来打开文件intermediate.rsa.pem
看到 PRIVATE KEY还有CERT PS:private那边可能有RSA KEY这个不用管
Bag Attributes
friendlyName: androiddebugkey
localKeyID: 54 69 6D 65 20 31 33 38 38 39 37 38 34 32 36 38 36 39
Key Attributes: <No Attributes>
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
Bag Attributes
friendlyName: androiddebugkey
localKeyID: 54 69 6D 65 20 31 33 38 38 39 37 38 34 32 36 38 36 39
subject=/C=US/O=Android/CN=Android Debug
issuer=/C=US/O=Android/CN=Android Debug
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
复制“BEGIN CERTIFICATE”“END CERTIFICATE”之间的信息到(新建个文件) cert.x509.pem
[
pem里面内容(下的一样):
-----BEGIN CERTIFICATE-----
。。。。
-----END CERTIFICATE-----
]
复制 “BEGIN RSA PRIVATEKEY” “END RSA PRIVATE KEY”之间的信息到(新建个文件) private.rsa.pem
第三生成pk8格式的私钥
openssl
pkcs8 -topk8 -outform DER -in private.rsa.pem -inform PEM -outprivate.pk8 -nocrypt
完毕收集文件cert.x509.pem private.pk8
其余的中间文件删除即可
PS:
-nocrypt 这个参数设定key加密如果设置了这个参数下面签名只要证书+key不需要密码了如果加密应该openssl
pkcs8-topk8 -outform DER -in private.rsa.pem -inform PEM -out private.pk8接下来输入密码
用法 java -jar signapk.jar cert.x509.pem private.pk8 unsigned.apk signed.apk
bug解决:
(1)MAC verified OK Error outputting keys and certificates
http://stackoverflow.com/questions/2640691/how-to-export-private-key-from-a-keystore-of-self-signed-certificate/2641032
里面有一句话:
For
everyone getting the "Error outputtingkeys and certificates" error: try using the same password for source anddestination. – James WatkinsDec
14 '13 at 2:35
- Android App签名
- Android:app签名
- Android App 签名
- Android为App签名
- Android为APP签名
- Android签名打包APP
- 为Android App签名
- Android APP 签名
- Android app 应用签名
- Android Studio App签名
- Android app签名注意事项
- Android App签名命令
- Ionic2 签名Android APP
- Android为App签名(为apk签名)
- 生成Android App签名(为APK签名)
- android App签名(为apk签名)
- Android为App签名(为apk签名)
- android为App签名(为apk签名)
- 欢迎使用CSDN-markdown编辑器
- Android 导入项目中R文件丢失
- 近日传网易邮箱密码问题,163邮箱修改密码的简单方式
- 详细整理:UITableView优化技巧
- TestApkSign
- Android APP 签名
- 关于LINUX C中函数strtok使用要点
- nim 生成动态库(dll)
- IE浏览器如何调试
- PHP数组间隔取数的实现
- leetcode Path Sum II
- Android - Glide的使用
- Spring——jar包详解
- mysql 5.6.6 日志 文件到表格式