Android给app签上系统级签名

来源:互联网 发布:淘宝哪里编辑发货地 编辑:程序博客网 时间:2024/05/22 12:41

【转自】http://blog.csdn.net/qqxiaoqiang1573/article/details/52252843

简介

我们在做系统级的app开发时,肯定会遇到的问题就是给app签名了,像这种系统级的app开发,Android系统是没有直接给出keystore的签名文件的,那么我们要怎么给自己的app签上系统级签名呢?下面介绍两种方法。

前提

要做系统签名必须要拿到的两个文件platform.x509.pem,platform.pk8它们存放在系统的/build/target/product/security/目录下。拿到这两个文件后就可以做我们的app签名了。系统下的其他签名类似,大家可以以此类推,举一反三。

CMD命令方式

java -jar signapk.jar platform.x509.pem platform.pk8 XXX.apk XXXNew.apk
  • 1
  • 1

这样我们生成的app就是有系统签名的app了,但是我们每次都要使用命令的方式来执行给我们开发调试的app签名是不是很烦,有没有更好的方式呢?下面就重点说下keysotre的方式。

keystore方式

最前面我们说了,系统没有提供keystore的签名给我们,那这个keystore是怎么来的?看来只有自己动手生成这个文件了,来看我们怎么制作这个keystore吧。 
环境:Linux 
文件:platform.x509.pem,platform.pk8 
命令:

openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem
  • 1
  • 1
openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey platform.pem -password pass:android -name androiddebugkey`
  • 1
  • 1
keytool -importkeystore -deststorepass android -destkeystore ./platform.keystore -srckeystore platform.p12 -srcstoretype PKCS12 -srcstorepass android
  • 1
  • 1

依次执行完这3条命令后我们的签名文件platform.keystore就生成啦,接下来要做的事情就是导出app的时候使用这个签名就好了。nice~~~ 
这样一条一条命令的输入是不是很麻烦,并且可能会忘记部分参数的拼写,所以这里就要用到shell脚本了,根据这3条命令我们可以写一个小脚本,完成签名的生成。下面来看下个人写的一个脚本吧。这样就一劳永逸的解决了生成签名会忘记部分参数的问题了。 
generatesignature.sh

#!/bin/shmyFile="platform.pem"if [ -f $myFile ]then        echo "存在platform.pem platform.p12 platform.keystore,先删除!"        rm -f platform.pem platform.p12 platform.keystorefiecho "开始执行!!"openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pemecho "生成 platform.pem"openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey platform.pem -password pass:android -name androiddebugkeyecho "生成 platform.p12"keytool -importkeystore -deststorepass android -destkeystore ./platform.keystore -srckeystore platform.p12 -srcstoretype PKCS12 -srcstorepass androidecho "生成  platform.keystore 成功"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

注意:这里需要特别注意的地方就是,我这个kestore的生成是在Linux环境制作的,所以在windows环境下的朋友可能需要自己想点办法了。

参考文章

Android 生成系统签名的KeyStore


0 0
原创粉丝点击