一、前言

goolge为我们提供了4个标准的key,以签名测试程序:

testkey -- a generic key for packages that do not otherwise specify a key.

platform -- a test key for packages that are part of the core platform.

shared -- a test key for things that are shared in the home/contacts process.

media -- a test key for packages that are part of the media/download system. 它们位于Android源码的以下目录

android\build\target\product\security

注意,这些key只是用于工程版的Android系统.在编译时android源码时,使用eng选项即表示编译生成工程版的Android系统,

而使用user选项时表示编译用户版(即正式版)的Android系统。

二、使用key生成keystore文件

使用google的标准key生成keystore文件。我们需要2个工具,openssl  (cryptography and SSL/TLS toolkit) and keytool。

openssl是Linux上的一个工具,keytool则是JDK的一个工具,它位于JDK\bin目录。在此假设你已经把JDK\bin添加到了window的path环境变量中。因为一般用户使用的是window系统,

所以我这里把Cygwin安装在window上来模拟Linux环境,在Cygwin上使用opnssl.

关于Cygwi的详细内容请参考《cygwin安装详解》。

2.1、命令行方式

在这里我将以platform为例进行讲解。

通过“Cygwin Terminal”的进入Cygwin的命令行,然后切换到key所在的目录。即security目录.

输入以下命令:

openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem

执行该命令,将在目录下生成platform.pem文件

接着输入以下命令:

openssl pkcs12 -export -in  platform.x509.pem -out platform.p12 -inkey  platform.pem -password pass:android -name androiddebugkey

执行该命令,将在目录下生成platform.p12文件,它本质上应该就是一个数字证书。

进入DOS命令行,切换到key所在的目录。即security

然后输入命令:

keytool -importkeystore -deststorepass android -destkeystore ./platform.jks -srckeystore ./platform.p12 -srcstoretype PKCS12 -srcstorepass android

执行该命令,将在目录下生成platform.jks文件,它就是我们需要的keystore文件。它的后缀本身是没有关系。如果你更喜欢其后缀名为keystore。

上面的命令改成这样就行了。

keytool -importkeystore -deststorepass android -destkeystore ./platform.keystore -srckeystore ./platform.p12 -srcstoretype PKCS12 -srcstorepass android

另外,我方便我们可以使用批处理来进行处理。

通过“Cygwin Terminal”的进入Cygwin的命令行,然后切换到key所在的目录。即security目录.

使用sh ./export.sh命令运行export.sh文件.

export.sh文件如下:

#!/bin/sh

FILES=`find . -name "*.pk8"`

cat > generateKeystore.bat << END

rem autogenerated file

END

for FILE in $FILES

do

FILE_NAME=`echo $FILE | awk -F.pk8 '{print $1}'`

if [ -f ${FILE_NAME}.pem ]

then

echo "file ${FILE_NAME}.pem exists"

else

`openssl pkcs8 -inform DER -nocrypt -in ${FILE} -out ${FILE_NAME}.pem`

fi

`openssl pkcs12 -export -in ${FILE_NAME}.x509.pem -out ${FILE_NAME}.p12 -inkey ${FILE_NAME}.pem -password pass:android -name androiddebugkey`

cat >> generateKeystore.bat << END

keytool -importkeystore -deststorepass android -destkeystore ${FILE_NAME}.jks -srckeystore ${FILE_NAME}.p12 -srcstoretype PKCS12 -srcstorepass android

END

done

在运行完成后,将在当前目录看到若干*pem文件,*.p12文件及一个generateKeystore.bat文件,window中直接双击运行它。这时你将看到生成的*.jks文件,它们就是我们需要得keystore文件。

generateKeystore.bat文件如下:

rem autogenerated file

keytool -importkeystore -deststorepass android -destkeystore ./media.jks -srckeystore ./media.p12 -srcstoretype PKCS12 -srcstorepass android

keytool -importkeystore -deststorepass android -destkeystore ./platform.jks -srckeystore ./platform.p12 -srcstoretype PKCS12 -srcstorepass android

keytool -importkeystore -deststorepass android -destkeystore ./shared.jks -srckeystore ./shared.p12 -srcstoretype PKCS12 -srcstorepass android

keytool -importkeystore -deststorepass android -destkeystore ./testkey.jks -srckeystore ./testkey.p12 -srcstoretype PKCS12 -srcstorepass android

linux 根据.x509.pem .pk8 生成keystore相关推荐

  1. 用Android自带的signapk.jar + .x509.pem + .pk8签名应用程序

    文件位置:可以在platform/build/target/product/security/中找到platform.pk8 platform.x509.pem等签名文件,对应不同的权限. signa ...

  2. 签名证书keystore,jks,pk8,x509.pem

    .keystore,.jks本身是一个东西,没有区别:在eclipse上生成的是.keystore后缀,在andorid studio上生成的是.jks后缀: 生成.keystore http://w ...

  3. keystore文件转换格式为pk8+x509.pem

    android 一般除了使用jarsigner签名 还有使用signapk 后者位于android源码 前者位于jdk中.两者使用的文件格式不同前者使用JKS 后者使用公钥+私钥 是分开的 第一步 先 ...

  4. 关于keystore 证书转*.x509.pem 和*.pk8

    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...

  5. 创建自己的pk8, x509.pem并给app签名

    1, 生成key 命令: keytool -genkey -v -keystore app.keystore -alias gundam_wing -keyalg RSA -validity 2000 ...

  6. platform.pk8 和platform.x509.pem转jks

    /** OpenSSL  */ 下载地址:http://slproweb.com/products/Win32OpenSSL.html 安装教程(OpenSSL安装教程_香辣奥利奥的博客-CSDN博客 ...

  7. 利用platform.x509和platform.pk8生成系统签名文件

    platform.x509和platform.pk8文件是不能被Android studio直接使用的,需要转换成.jks签名文件才能使用. 生成步骤如下: 1.下载并解压keytool-import ...

  8. 生成keystore以及导出keystore公钥,私钥信息

    有时候需要做一些证书,特别是安卓接入SDK,提交包什么的需要填入公钥私钥信息,可能需要RSA 1024位或其他位数的信息. 这里提供一个能获取keystore信息和公钥私钥的命令. openssl我就 ...

  9. android studio生产签名文件,Android Studio 生成 keystore 签名文件

    Android Studio 生成 keystore 签名文件 常见 SSL 证书格式 : .DER .CER,文件是二进制格式,只保存证书,不保存私钥. .PEM,一般是文本格式,可保存证书,可保存 ...

最新文章

  1. 自动根据动态的intput计算值
  2. 全球最美的15座数据中心
  3. spring连数据库的配置文件(applicationContext.xml)
  4. 牛客 - tokitsukaze and Inverse Number(树状数组+逆序对定理)
  5. 数据报套接字服务端和客户端
  6. (转)PJAX的实现与应用
  7. iPhone 13系列或将涨价?业内人士:可能性不大,原因有这几点
  8. 一根绳子从一头烧需30时分钟_小学生一分钟跳绳满分训练指南
  9. 《Linux 就是这个范儿 - 阅读笔记2》 融于心而表于行(1)
  10. Linux中的查找命令find、which、whereis
  11. thinkphp mysql存储过程_MySql存储过程的创建与使用及在thinkphp中如何调用笔记
  12. 【超参数寻优】粒子群算法(PSO) 超参数寻优的python实现
  13. 张超超OC基础回顾01_类的创建,申明属性,以及本质
  14. Xcode包管理工具Alcatraz
  15. java .class文件和.class文件区别是什么?
  16. 材料模拟python_关于材料计算,模拟,仿真什么区别?
  17. linux 双显卡 黑屏 amd,彻底解决AMD显卡win10开机黑屏问题
  18. android项目版本,怎查看Android项目的Android版本
  19. 西游记中唐僧师徒的不同性格
  20. Flask项目之手机端租房网站的实战开发(一)

热门文章

  1. python取整的几种方法,Python中取整的几种方法小结
  2. java 独木桥_趣味算法——青蛙过河(JAVA)
  3. symbian s60 字符串操作
  4. 厌倦了SE11/SE16N? 告诉你如何在Excel中查看SAP的表数据
  5. 代码静态分析思维体操—扇入、扇出、圈复杂度
  6. 深度学习中的卷积操作
  7. ffmpeg视频模糊处理,降噪处理
  8. Android常用框架收藏!!!
  9. Java_格式化日期和时间
  10. 将UTC时间(2018-07-03T10:18:58.000Z)转换为北京时间