Android 系统应用 pk8签名文件转jks或keystore教程

一、介绍

        签名文件对于我们在做应用开发中,经常遇到,且签名文件不仅仅是保护应用安全,还会涉及到应用与底层之间的数据共享和API文件等问题。

        在Android中,签名文件同样也存在这个问题。但是android中又区分系统应用和普通应用。系统应用可以通过android:sharedUserId="android.uid.system"同享系统uid,可以获取更高的权限。

所以在做系统应用开发的时候,经常需要使用AOSP的签名。

二、PK8签名转jks或者keystore

pk8只是aosp中的一种,编译时需要的签名文件都在build/make/target/product/security下面。在生成或者转jks的时候,需要借助openssl这个工具。

正常转有两种:window和Linux,通常,我们在window比较多,下面我将介绍window下的转jks的教程

Window环境下的教程

1.安装openssl:

Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions

根据自己的环境,选择对应的即可。安装到C盘,都是默认安装。

2.将platform.pk8和platform.x509.pem从AOSP的build下(build/target/product/security)拷贝一份出来。

需要将Java切到jdk11,

手动切Jdk版本:set path=jdk bin+&path&,例如:set path=F:\android\jdk\bin;&path&

编译步骤:

1.pk8 私钥解密pem格式

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

platform.priv.pem:为输出的pem密钥格式

2.私钥通过公钥pem加密pk12, 需要输入两次密码

openssl pkcs12 -export -in platform.x509.pem -inkey platform.priv.pem -out platform.pk12 -name  +别名

3通过java的keytool 工具生成 keystore, 别名需要跟步骤2的一致,同样输入两次密码

3.1jsk:
keytool -importkeystore -destkeystore platform.jks -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass  password-alias +别名

3.2keystore
keytool -importkeystore -destkeystore platform.keystore -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass password-alias +别名

password:生成的密码,

别名:和第二步的别名一样,保持一致

生成后会报一个warm:

uses the MD5withRSA signature algorithm which is considered a security risk and is disabled

进行第四步

4.进行迁移:需要密码,是之前输入的确定密码
 keytool -importkeystore -srckeystore platform.jks -destkeystore platform.jks -deststoretype pkcs12

接下来在bin下面platform.jks是新的秘钥文件,platform.old.jks 是第三步的文件

三、总结

1.需要JDK11,可以通过手动set,也可以改本地的

2.开发工具如果需要签名也需要JDK11

3.需要再Manifest中新增android:sharedUserId="android.uid.system",这样framework获取你的uid进行共享

4.注意:一般这种做法是针对你的app只在一个系统中使用,如果你的app是面向不同的设备,就无法使用,因为不同的设备签名文件不一样,甚至引起安装冲突等情况。这个方法是针对系统应用开发

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

汉明校验·简明教程

汉明校验 一、简介 汉明码是由 Richard Hanming 于 1950 年提出的,它具有一位纠错能力。 新增的汉明码校验位数应满足如下关系: 2 k ⩾ n k 1 2^{k}\geqslant nk1 2k⩾nk1,其中k为校验位位数,n位数据位数。 二、汉明码生成 确…

centos7 的redis的安装

文章目录 查看本机redis⾸先安装 scl 源, 再安装 redis 基本配置启动redis停止redis 查看本机redis ⾸先安装 scl 源, 再安装 redis 安装scl源 yum install centos-release-scl-rh安装redis5 yum install rh-redis5-redis安装成功 基本配置 修改etc/redis/redis.conf 文件…

代码随想录算法训练营第二十一天(二叉树VII)| 530. 二叉搜索树的最小绝对差、501. 二叉搜索树中的众数、236. 二叉树的最近公共祖先(JAVA)

文章目录 530. 二叉搜索树的最小绝对差解题思路源码 501. 二叉搜索树中的众数解题思路源码 236. 二叉树的最近公共祖先解题思路源码 530. 二叉搜索树的最小绝对差 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&a…

如何在 Ubuntu 安装桌面环境

在 Ubuntu 上安装不同的桌面环境 如果你正在使用官方的 Ubuntu 发行版,它运行在 GNOME 上,那么你可以很容易地从默认的包管理器安装其他流行的桌面环境(DE)。让我们开始吧… 在 Ubuntu 上安装 KDE Plasma 如果你正在使用 GNOME…

JAVA使用POI实现Excel单元格合并-02

JAVA使用POI实现Excel单元格合并 实现效果 解释&#xff1a;只要是遇见与前一行相同的数据就合并 引入jar <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.2</version></depe…

第114讲:Mycat实践指南:按照单位为月的日期实现水平分表

文章目录 1.按月分片的概念1.按月分片的概念 2.按照天数对某张表进行水平拆分2.1.在所有的分片节点中创建表结构2.2.配置Mycat实现字符串按月分片的水平分表2.2.1.配置Schema配置文件2.2.2.配置Rule分片规则配置文件2.2.3.配置Server配置文件2.2.4.重启Mycat 2.3.写入数据观察分…

ora-00314 00312

背景&#xff1a;某医院数据库打不开&#xff0c;alter database open报错&#xff08;跟我说是被勒索了。。&#xff09; 查看日志组信息&#xff1a; select group#,sequence#,archived,status from v$log;处理方法&#xff1a; 若该组是非当前状态&#xff0c;而且未归档&…

Kubernetes Pod深度解析:构建可靠微服务的秘密武器(上)

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Kubernetes航线图&#xff1a;从船长到K8s掌舵者》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、Kubernetes概述 2、Pod概述 二、Po…

FastAPI+React全栈开发02 什么是FARM技术栈

Chapter01 Web Development and the FARM Stack 02 What is the FARM stack and how does it fit together? FastAPIReact全栈开发02 什么是FARM技术栈 It is important to understand that stacks aren’t really special, they are just sets of technologies that cover…

Python学习:条件控制

Python条件控制概念 条件控制是编程中的一个重要概念&#xff0c;用于根据不同情况执行不同的代码逻辑。在Python中&#xff0c;条件控制通常使用if语句来实现。if语句的基本语法如下&#xff1a; if 条件:执行语句 elif 其他条件:执行语句 else:执行语句其中&#xff0c;if…

2016年认证杯SPSSPRO杯数学建模C题(第二阶段)如何有效的抑制校园霸凌事件的发生全过程文档及程序

2016年认证杯SPSSPRO杯数学建模 C题 如何有效的抑制校园霸凌事件的发生 原题再现&#xff1a; 近年来&#xff0c;我国发生的多起校园霸凌事件在媒体的报道下引发了许多国人的关注。霸凌事件对学生身体和精神上的影响是极为严重而长远的&#xff0c;因此对于这些情况我们应该…

网络七层模型之网络层:理解网络通信的架构(三)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

基于傅里叶描述子和HSV颜色特征的KNN水果类型识别,Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…

【物联网】Qinghub Kafka 数据采集

基础信息 组件名称 &#xff1a; kafka-connector 组件版本&#xff1a; 1.0.0 组件类型&#xff1a; 系统默认 状 态&#xff1a; 正式发布 组件描述&#xff1a;通用kafka连接网关&#xff0c;消费来自kafka的数据&#xff0c;并转发给下一个节点做相关的数据解析。 配置文…

【智能算法】乌鸦搜索算法(CSA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2016年&#xff0c;Askarzadeh等人受到乌鸦觅食自然行为启发&#xff0c;提出了乌鸦搜索算法&#xff08;Crow Search Algorithm, CSA&#xff09;。 2.算法原理 2.1算法思想 CSA模拟了乌鸦进行觅…

CUDA从入门到放弃(四):CUDA 编程模式 CUDA Programming Model

CUDA从入门到放弃&#xff08;四&#xff09;&#xff1a;CUDA 编程模式 CUDA Programming Model 1 Kernels CUDA C 扩展了 C&#xff0c;允许定义名为内核的函数&#xff0c;这些函数可以被不同的 CUDA 线程并行执行多次&#xff0c;而不是像普通 C 函数那样只执行一次。内核…

Python数据结构实验 递归算法设计

一、实验目的 1&#xff0e;掌握递归程序设计的基本原理和方法&#xff1b; 2&#xff0e;熟悉数据结构中顺序表和单链表下的递归算法设计思想&#xff1b; 3&#xff0e;掌握并灵活运用递归算法解决一些较复杂的应用问题。 二、实验环境 1&#xff0e;Windows操作系统的计…

使用JMeter进行梯度压测

使用JMeter进行梯度压测 梯度压测配置如下&#xff1a; 使用线程:5&#xff0c;然后循环5000次&#xff0c;共2.5万个样本使用线程:10&#xff0c;然后循环5000次&#xff0c;共5万个样本使用线程:15&#xff0c;然后循环5000次&#xff0c;共7.5万个样本使用线程:20&#xff…

投资现货黄金有持仓时间限制吗?

投资现货黄金是否有持仓时间限制&#xff1f;这是许多投资者在进入黄金市场前都想要了解的一个问题。实际上&#xff0c;现货黄金交易并没有严格的持仓时间限制。换句话说&#xff0c;投资者可以按照个人的投资策略和市场情况自由决定持有黄金的时间长度。 以下是影响现货黄金持…

数据结构(四)顺序表与链表的深层次讲解

我们在数据结构&#xff08;二&#xff09;&#xff0c;对链表和顺序表已经讲解过了。但很多同学表示有点晦涩难懂那我就出一篇深层次讲解&#xff0c;一步一步来带领大家学习。 我们从头&#xff08;数据结构&#xff09;开始完整的来为大家讲解&#xff0c;大家好好看好好学。…