Android开发 使用platform.pk8和platform.x509.pem文件生成platform.jks文件

news2024/9/30 11:58:59

文章目录

  • Android开发 使用platform.pk8和platform.x509.pem文件生成platform.jks文件
    • 环境准备
    • 使用OpenSSL工具进行格式转换
      • 1.将platform.pk8转换为PEM格式:
      • 2.使用platform.pem和platform.x509.pem生成PKCS#12格式的PFX文件(platform.p12):
    • 使用Keytool工具进行密钥导入
      • 3.使用Keytool导入密钥库:
    • 在Android Studio的build.gradle文件中进行配置

Android开发 使用platform.pk8和platform.x509.pem文件生成platform.jks文件

使用platform.pk8和platform.x509.pem生成platform.jks文件的过程涉及多个步骤,主要包括使用OpenSSL和Keytool工具进行格式转换和密钥导入。‌

环境准备

编译过AOSP源码,执行过source build/envsetup.sh命令

在aosp build/target/product/security目录下查看key:

在这里插入图片描述

**.pk8代表私钥,.x509.pem公钥,它们都是成对出现。**将platform.pk8和platform.x509.pem文件放在aosp根目录下,在在aosp根目录下执行以下命令:

使用OpenSSL工具进行格式转换

首先,你需要将platform.pk8和platform.x509.pem文件转换为PKCS#8格式的PEM文件(platform.pem)和PKCS#12格式的PFX文件(platform.p12)。这可以通过使用OpenSSL命令行工具完成,具体命令如下:

1.将platform.pk8转换为PEM格式:

openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem
  • openssl pkcs8: 这是 OpenSSL 命令行工具中用于处理 PKCS#8 格式私钥的命令。
  • -inform DER: 这个选项指定输入文件的编码格式为 DER(Distinguished Encoding Rules)。DER 是一种用于编码 ASN.1 数据的二进制格式。
  • -nocrypt: 这个选项表示私钥是不加密的。如果私钥是加密的,你需要提供密码来解密它。
  • -in platform.pk8: 指定输入私钥文件的路径和名称。在这个例子中,输入文件是 platform.pk8,它应该是一个 DER 编码的 PKCS#8 格式私钥文件。
  • -out platform.pem: 指定输出私钥文件的路径和名称。在这个例子中,输出文件是 platform.pem,它将是一个 PEM 编码的私钥文件。

执行这个命令后,你会得到一个名为 platform.pem 的文件,其中包含了从 platform.pk8 文件中提取并转换为 PEM 编码的私钥。这个 PEM 编码的私钥可以用于需要私钥的任何应用程序或服务,例如 SSL/TLS 通信、代码签名等。

2.使用platform.pem和platform.x509.pem生成PKCS#12格式的PFX文件(platform.p12):

openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey platform.pem  -name keyAlias -password pass:keyPassword
  • openssl pkcs12: 这是 OpenSSL 命令行工具中用于处理 PKCS#12 格式密钥库的命令。
  • -export: 这个选项表示要导出一个 PKCS#12 密钥库。
  • -in platform.x509.pem: 指定输入证书文件的路径和名称。在这个例子中,证书文件是 platform.x509.pem
  • -out platform.p12: 指定输出 PKCS#12 密钥库文件的路径和名称。在这个例子中,输出文件是 platform.p12
  • -inkey platform.pem: 指定输入私钥文件的路径和名称。在这个例子中,私钥文件是 platform.pem
  • -name keyAlias: 设置密钥库中条目的别名。在这个例子中,别名是 keyAlias。别名是在导入密钥库到 Java 或其他平台时用于引用密钥的标识符。
  • -password pass:keyPassword: 设置 PKCS#12 密钥库的密码。在这个例子中,密码是 keyPassword。这个密码用于保护密钥库文件,确保只有知道密码的人才能访问其中的密钥和证书。

执行这个命令后,你会得到一个名为 platform.p12 的 PKCS#12 密钥库文件,其中包含了从 platform.x509.pem 证书和 platform.pem 私钥导入的密钥和证书。你可以将这个密钥库文件用于需要证书和私钥的任何应用程序或服务,例如 SSL/TLS 通信、代码签名等。

使用Keytool工具进行密钥导入

接下来,使用Keytool将PFX文件转换为JKS文件(platform.jks):

3.使用Keytool导入密钥库:

keytool -importkeystore -destkeystore platform.jks -deststoretype JKS -deststorepass storePassword -srckeystore platform.p12 -srcstoretype PKCS12 -alias keyAlias -srcstorepass keyPassword
  • keytool: 这是 Java 提供的密钥和证书管理工具。
  • -importkeystore: 这个选项表示要执行导入密钥库的操作。
  • -destkeystore platform.jks: 指定目标密钥库的路径和名称。在这个例子中,目标密钥库是 platform.jks
  • -deststoretype JKS: 指定目标密钥库的类型。在这个例子中,类型是 JKS(Java KeyStore)。
  • -deststorepass storePassword: 设置目标密钥库的密码。在这个例子中,密码是 storePassword。这个密码用于保护密钥库文件,确保只有知道密码的人才能访问其中的密钥和证书。
  • -srckeystore platform.p12: 指定源密钥库的路径和名称。在这个例子中,源密钥库是 platform.p12,它是一个 PKCS#12 格式的密钥库。
  • -srcstoretype PKCS12: 指定源密钥库的类型。在这个例子中,类型是 PKCS#12。
  • -alias keyAlias: 设置导入条目在目标密钥库中的别名。在这个例子中,别名是 keyAlias。别名是在引用密钥库中的条目时使用的标识符。
  • -srcstorepass keyPassword: 设置源密钥库的密码。在这个例子中,密码是 keyPassword。这个密码用于访问源密钥库中的密钥和证书。

执行这个命令后,你会得到一个名为 platform.jks 的 Java 密钥库文件,其中包含了从 platform.p12 密钥库中导入的密钥和证书。你可以将这个 Java 密钥库文件用于需要证书和私钥的任何 Java 应用程序或服务。

在Android Studio的build.gradle文件中进行配置

    signingConfigs {
        main {
            storeFile file('./platform.jks')
            storePassword "123456"
            keyAlias "platform"
            keyPassword "123456"
        }
    }

如果对你有帮助,就一键三连呗(关注+点赞+收藏),我会持续更新更多干货~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2179556.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

k8s部署考试系统

一、配置nfs 二、配置前端 1.部署deployment清单 2.补充: 3.访问测试pod 三、后端 1.在pes目录中找到docker文件,创建镜像 从nfs服务器上复制一个pes/java/目录到一个有docker环境的主机(master)上生成java镜像 [rootnfs ~]# scp -r pes/java root192…

废品回收小程序/环保垃圾回收/收二手垃圾小程序/分类资源回收系统/独立版系统源码

>>>系统简述: 1.以微信小程序为基础进行开发,体验好,操作方便 2.从用户下单到回收员接单,在到回收站接收,在到代理全流程通过手机端管理 3.支持废品分类下单,并支持分类数据统计 4.独创回收员多个…

mysql—半同步模式

mysql的并行复制 在172.25.254.20(slave)主机上 默认情况下slave中使用的是sql单线程回放 在master中时多用户读写,如果使用sql单线程回放那么会造成组从延迟严重 开启MySQL的多线程回放可以解决上述问题 mysql> show processlist; 在配置文件中进行编辑 [root…

LVS+keepalived整合负载均衡配置

准备三台服务器;负载均衡服务器192.168.45.136,后端机器1,92.168.45.135,后端机器2,192.168.45.138 在两台后端机器上安装nginx服务,yum install -y nginx,并且启动nginx服务,systemctl start …

【Linux学习】【Ubuntu入门】2-1 Linux系统下运行C语言输出hello word

1.双击打开VMware软件,点击开启此虚拟机后,等待点击头像输入密码进入 2.“CtrlAltt”调出命令行终端,输入命令sudo apt-get install vim安装vim,输入命令sudo apt-get install gcc安装gcc 3.输入命令vi hello.c进入C语言编写环境&…

【漏洞复现】VEXUS多语言货币交易所存在未授权访问漏洞

漏洞描述 java后端,非常完整的一套交易所,UI前端做的也很漂亮,新增了交易跟单功能,前端pc+wap都是uniapp纯源码,前端源码node_modules环境已经安装好了,拿去直接编译就可以. 后端 前端 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共…

订餐点餐|订餐系统基于java的订餐点餐系统小程序设计与实现(源码+数据库+文档)

订餐点餐系统小程序 目录 基于java的订餐点餐系统小程序设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布…

qt使用QDomDocument读写xml文件

在使用QDomDocument读写xml之前需要在工程文件添加: QT xml 1.生成xml文件 void createXml(QString xmlName) {QFile file(xmlName);if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate |QIODevice::Text))return false;QDomDocument doc;QDomProcessin…

隆道携手黑龙江省中小企业协会助力区域企业数字化转型

9月28日,隆道公司总裁吴树贵出席“2024年黑龙江省中小企业协会副会长扩大会议暨数字化转型专题报告会”并做主题发言,分享了龙江惠企商城建设情况和供应链数字化转型实践经验。会上,隆道公司与黑龙江省中小企业协会签订了战略合作协议&#x…

SOLIDWORKS 2025基于浏览器角色的新功能:如何简化设计流程?

在2025版本中,SOLIDWORKS引入了一系列基于浏览器角色的新功能,本文将深入探讨SOLIDWORKS 2025的这些新增功能,看看它们是如何帮助工程师简化工作流程、增强用户体验的。 SOLIDWORKS 2025 1从多方面定义工作流程 • 根据您的需求使用全新的…

ACM MM 2024中有哪些值得关注的Diffusion Models相关的论文?

Diffusion Models专栏文章汇总:入门与实战 前言:ACM MM 2024作为多模态领域的顶级会议,已经放出所有接受的论文。这次的MM又是Diffusion Models的盛会,非常多值得关注的最新论文,这篇博客将一一介绍。 COMD: Training-free Video Motion Transfer With Camera-Object Moti…

Redis哨兵模式的搭建以及配置参数简介

原理 Redis哨兵模式是一种用于在Redis主从复制环境中进行高可用性监控和故障恢复的机制。该模式引入了一个或多个哨兵节点,这些节点负责监控Redis服务器的状态,并在主节点发生故障时切换为新的主节点。 哨兵节点的工作原理如下: 1、哨兵节点…

基于SpringBoot的诗词学习网站的设计与实现

目录 毕设制作流程功能和技术介绍系统实现截图开发核心技术介绍:使用说明开发步骤编译运行代码执行流程核心代码部分展示可行性分析软件测试详细视频演示源码获取 毕设制作流程 (1)与指导老师确定系统主要功能; (2&am…

通信工程学习:什么是GOCC地面操作控制中心、SOCC卫星操作控制中心

GOCC地面操作控制中心&SOCC卫星操作控制中心 GOCC(Ground Operation Control Center,地面操作控制中心)和SOCC(Satellite Operations Control Center,卫星操作控制中心)是卫星通信系统中至关重要的组成…

GitHub下载MY-SITE

1、GitHub下载my-site 解压 打开项目 ApiOperation swagger日志的 七牛云-云平台 dao和model统称为pojo--实体类 删除docker 2、创建数据库 执行sql 3、链接数据库 扫描dao曾的包 46、鸡汤分析开源项目_哔哩哔哩_bilibili 修改yaml 启动 http://localhost:8089/a…

如何在 Kubernetes 上部署和配置开源数据集成平台 Airbyte?

在 Kubernetes 上部署和配置 Airbyte 是一个复杂但非常有价值的过程,特别是对于需要强大数据集成和数据处理能力的企业或团队。Airbyte 是一个开源的数据集成平台,允许用户从各种来源提取数据并加载到目标存储中。其强大的插件系统支持多种数据源与目标&…

FPGA实现PCIE视频采集转SDI输出,基于GTX+XDMA中断架构,提供2套工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的PCIE方案本博已有的 SDI 编解码方案 3、PCIE基础知识扫描4、工程详细设计方案工程设计原理框图电脑端视频QT上位机XDMA配置及使用XDMA中断模块FDMA图像缓存SDI视频编码之-->RGB转BT1120SDI视频编码之-->SMPTE SD/HD…

python5_basecurd

基础增删改查 # 定义一个字典来存储数据 data {}def add(key, value):"""添加数据:param key: 键:param value: 值"""if key not in data:data[key] valueprint(f"添加成功:{key} -> {value}")else:print(f"键已…

【12月IEEE出版* 镇江 】第九届清洁能源与发电技术国际学术会议(CEPGT 2024)

2024 9th International Conference on Clean Energy and Power Generation Technology (CEPGT 2024) 第九届清洁能源与发电技术国际学术会议(CEPGT 2024),将于2024年12月27-29日在江苏镇江举办。高效清洁新能源的研究和应用是我国现阶段最主…

非关键尺寸的失效模式和效应分析(FMEA)是否有必要进行?

在追求极致的过程中,一个看似不起眼的细节——非关键尺寸的失效模式和效应分析(FMEA),却常常被忽视或低估其重要性。本文,深圳天行健企业管理咨询公司旨在分享为何在非关键领域,FMEA同样不可或缺&#xff0…