安卓源码下apk进行platform签名的方法

article/2025/10/7 10:22:41

目录

一 任意目录下创建一个文件夹

 二 该目录下需要准备的5个文件

 三 执行命令

四 生成结果


一 任意目录下创建一个文件夹

 二 该目录下需要准备的5个文件

 

上述五个文件,

前四个可以从编译好的安卓源码工程目录下复制,

第五个是自己需要签名的apk文件

  •  ①platform.pk8

路径:DCU_CODE/buildsystem/android10/build/target/product/security/platform.pk8

文件名 platform.pk8 通常是 Android 系统中的一个签名密钥文件。在 Android 平台上,应用程序必须使用数字证书进行签名,以便系统可以验证其身份并确保它们没有被篡改。

platform.pk8 是用于签署 Android 平台核心组件的密钥文件,例如系统服务和框架应用程序。这些组件通常由设备制造商或 Android 平台开发团队签名。该文件只能由具有特定权限的人员访问和使用。

  • ② platform.x509.pem

路径:DCU_CODE/buildsystem/android10/build/target/product/security/platform.x509.pem

platform.x509.pem 文件通常是 Android 系统中用于验证应用程序身份的证书文件。在 Android 平台上,应用程序必须使用数字证书进行签名,以便系统可以验证其身份并确保它们没有被篡改。

platform.x509.pem 文件包含了一个或多个数字证书,这些证书用于验证应用程序的身份。这些证书由设备制造商或 Android 平台开发团队签名,并与 platform.pk8 中的私钥配对使用。

当用户安装一个应用程序时,Android 系统会检查该应用程序是否使用有效的证书进行签名,并且该证书是否与设备上的已知证书匹配。如果证书无效或不匹配,则系统将阻止应用程序安装或运行。

 

  • ③libconscrypt_openjdk_jni.so

路径:DCU_CODE/buildsystem/android10/out/host/linux-x86/lib64/ libconscrypt_openjdk_jni.so

libconscrypt_openjdk_jni.so 是一个用于加密和安全通信的库文件。具体来说,它是 Google Conscrypt 库的 JNI 绑定,允许 Java 应用程序使用 OpenSSL 的加密算法进行加密和解密操作。

Java 运行时环境默认使用自己的加密实现,但在某些情况下,如与其他平台(如 OpenSSL)通信或执行特定加密任务时,使用 OpenSSL 实现可能更好。此时,可以使用 libconscrypt_openjdk_jni.so 作为替代方案。

总的来说,libconscrypt_openjdk_jni.so 可以提供更高级别的加密和安全性,同时提供跨平台兼容性。

 

  • ④sign.apk.jar  
    路径:DCU_CODE/buildsystem/android10/out/host/linux-x86/framework/sign.apk.jar

签名(signing)是 Android 应用程序开发过程中的一个重要步骤。应用程序必须被签名,以验证其来源并保证应用程序没有被篡改。 APK Android Package)文件是 Android 应用程序的安装包格式,它包含了应用程序的所有组件和资源文件。在将 APK 文件部署到设备上之前,需要使用 keytool 工具生成数字证书,然后使用 jarsigner 工具对 APK 进行签名。

Android 开发中,sign.apk.jar 是一个用于签名 APK 文件的工具,它可以通过命令行或脚本调用。该工具能够将特定的数字证书信息与 APK 文件进行关联,从而确保用户下载并安装的应用程序来自可信来源,并且没有被篡改

 

  • ⑤待签名的apk文件

 

 三 执行命令

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

这是一个使用 OpenSSL 工具将 PKCS #8 格式的密钥转换为 PEM 格式的命令。其中:

  • openssl 是 OpenSSL 工具的命令行程序。
  • pkcs8 表示要转换的密钥格式是 PKCS #8。
  • -inform DER 表示输入文件的格式为 DER 编码。
  • -nocrypt 表示输出的 PEM 文件不需要加密。
  • -in platform.pk8 表示输入文件名为 platform.pk8,即要转换的 PKCS #8 格式的密钥文件。
  • -out platform.pem 表示输出文件名为 platform.pem,即转换后的 PEM 格式的密钥文件。

②openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey platform.pem -password pass:123456 -name "alias_name"

这是一个使用 OpenSSL 工具将 X.509 证书和私钥打包成 PKCS #12 文件的命令。其中:

  • openssl 是 OpenSSL 工具的命令行程序。
  • pkcs12 表示要执行 PKCS #12 相关的操作。
  • -export 表示要进行导出(打包)操作。
  • -in platform.x509.pem 表示输入文件名为 platform.x509.pem,即要打包的 X.509 证书文件。
  • -out platform.p12 表示输出文件名为 platform.p12,即打包后的 PKCS #12 文件。
  • -inkey platform.pem 表示要使用的私钥文件为 platform.pem。
  • -password pass:123456 表示设置 PKCS #12 文件密码为 123456。
  • -name "alias_name" 表示在 PKCS #12 文件中标识此证书的别名为 alias_name。

执行该命令时,会提示您输入 PKCS #12 密码两次以确认。

③keytool -importkeystore -deststorepass 123456 -destkeystore platform.jks -srckeystore platform.p12 -srcstoretype PKCS12 -srcstorepass 123456

这是一个使用 keytool 工具将 PKCS #12 文件中包含的证书和私钥导入到 JKSJava KeyStore)文件中的命令,其中:

  • keytool 是 Java 提供的管理密钥和证书的工具。
  • -importkeystore 表示要执行导入操作。
  • -deststorepass 123456 表示设置目标 JKS 文件的密码为 123456。
  • -destkeystore platform.jks 表示指定目标 JKS 文件的名称为 platform.jks。
  • -srckeystore platform.p12 表示指定源 PKCS #12 文件的名称为 platform.p12。
  • -srcstoretype PKCS12 表示指定源 PKCS #12 文件的类型为 PKCS #12。
  • -srcstorepass 123456 表示指定源 PKCS #12 文件的密码为 123456。

执行该命令时,会提示您输入源 PKCS #12 文件的密码和确认是否信任证书等信息。成功导入后,在 platform.jks 文件中就可以访问 PKCS #12 文件中包含的证书和私钥了。

④java -Djava.library.path=. -jar signapk.jar platform.x509.pem platform.pk8 app-NeedSign.apk app-SignFinish.apk

这是一个使用 Java 程序运行一个名为 signapk.jar JAR 文件进行 APK 签名的命令,其中:

  • java 表示启动 Java 运行环境。
  • -Djava.library.path=. 表示将当前目录作为本地库文件的加载路径。
  • -jar signapk.jar 表示要执行的 JAR 文件为 signapk.jar。
  • platform.x509.pem 和 platform.pk8 分别是包含签名证书和私钥的文件,用于对 APK 进行签名。
  • app-NeedSign.apk 是待签名的 APK 文件名。
  • app-SignFinish.apk 是签名后生成的新 APK 文件名。

执行该命令时,会通过 signapk.jar 程序读取 platform.x509.pem platform.pk8 文件中的证书和私钥,对 app-debug.apk 文件进行签名,并将签名后的结果保存到 app-debug_sign.apk 文件中。完成签名后,您可以将 app-debug_sign.apk 安装到设备上或发布给用户。

命令效果如下:

 

四 生成结果

生成的 app-SignFinish.apk 即为签名完成的文件


http://chatgpt.dhexx.cn/article/0q5brDEx.shtml

相关文章

通过.pk8及.pem文件生成Android studio使用的keystore文件。

一、工具准备:OpenSSL、Android studio。 目录 一、准备工具: 二、使用OpenSSL生成key.pem及platform.p12 1. 找到OpenSSL安装路径C:\OpenSSL-Win64\bin,点击文件路径,输入cmd并回车。 2. 在cmd中输入指令将platform.pk8生成…

BeyondCompare4

将以下操作保存为bat文件(新建txt,然后将后缀改为bat),然后双击运行即可。 reg delete "HKEY_CURRENT_USER\Software\Scooter Software\Beyond Compare 4" /v CacheID /f 这个操作是删除BeyondCompare4注册表里CacheID的值; 另外…

Android签名机制-签名过程详解

目录 一、前言 二、准备知识 1、数据摘要 2、签名文件和证书 3、jarsign和signapk工具 4、keystore文件和pk8,x509.pem文件的区别 5、手动的签名Apk包 三、分析Android中签名流程机制 1、MANIFEST.MF 2、下面再来看一下CERT.SF文件内容 3、最后我们在来看…

Android系统证书 platform.x509.pem platform.pk8转换为.keystore文件

我们在进行Android开发的时候,如果开发的是系统应用,都需要系统的签名才能正常运行。而系统应用一般是把代码统一放到系统代码库中跟随系统一起编译。而如果我们想用Android Studio单独开发某个应用而使用系统签名的时候,有两种开发的方式,一…

android 通过platform.pk8,platform.x509.pem生成jks签名文件

用途:通过系统签名文件生成android studio调试用的jks签名文件 1.将keytool-importkeypair-master文件(见附件)放系统源码下,拷贝源码下的platform.pk8,platform.x509.pem,signapk.jar到此文件根目录下 build/make/target/product/security/…

pem与.pk8转platform.keystore方法

拿到系统签名通常是这样的 或者是(当然是删减版核心版了) 那我们想要 怎么办???? 首先得有linux环境吧,这个要求一点都不过分呢! 如果你电脑本身就是linux,我想下面的步骤都得心应…

pk8/x509.pem转换为keystore

背景 我们都知道AndroidManifest.xml配置如下属性 android:sharedUserId"android.uid.system"复制代码 直接运行是跑不起来的,我们只有拿到了平台的pk8/x509.pem文件通过如下签名命令: java -jar signapk.jar platform.x509.pem platform.…

Windows下使用platform.pk8 和platform.x509.pem生成jks签名文件

Windows下使用platform.pk8 和platform.x509.pem生成jks签名文件 文章目录 Windows下使用platform.pk8 和platform.x509.pem生成jks签名文件前言一、环境配置二、使用步骤 前言 平常工作中用android studio开发系统app需要用到系统签名,但是直接用 java -jar signa…

【Android】Android签名:pem和pk8转化为keystore,jks

Android签名,pem和pk8转化为jks Android签名证书Android签名JKSJKS签名生成How to use扩展 jks 转pem/pk8 Android签名证书 前因 最近更换了硬件设备,硬件厂商给了签名的pem,pk8,最新的版本没有给keystore,虽然现在使用jks了,实在没办法,就自己生成吧在AndroidMenifest.xml配…

Android签名文件platform.pk8 和platform.x509.pem转换

在Android开发中,打包apk之后就是给apk进行签名,如果我们只有platform.pk8 和platform.x509.pem文件的话,那么签名就比较麻烦,签名的步骤是这样的: java -jar E:\signapk\signapk.jar -w platform.x509.pem platform.p…

platform.pk8 和platform.x509.pem转jks

/** OpenSSL */ 下载地址:http://slproweb.com/products/Win32OpenSSL.html 安装教程(OpenSSL安装教程_香辣奥利奥的博客-CSDN博客) 环境配置: openssl 安装后查看是否安装成功,需要以管理员身份运行cmd查看 cmd输入…

.pem和.pk8是什么文件?(转载)

.pem和.pk8是什么文件? 原文地址: http://blog.csdn.net/lewif/article/details/49177653 在给android的apk签名的时候,需要用到一个扩展名为.pem和.pk8的文件,我第一反应,这啥啊,英文缩写?反正…

keystore签名文件与platform.pk8、platform.x509.pem之间的相互转换

文章目录 一. platform.pk8、platform.x509.pem转成keystore1.下载keytool-importkeypair工具 二. keystore转成platform.pk8、platform.x509.pem文件1. 先把keystore文件转换为pkcs12格式2. 将PKCS12 dump成pem3. 生成pk8格式的私钥 一. platform.pk8、platform.x509.pem转成k…

【STM32F407的DSP教程】第14章 DSP统计函数-最大值,最小值,平均值和功率

完整版教程下载地址:http://www.armbbs.cn/forum.php?modviewthread&tid94547 第14章 DSP统计函数-最大值,最小值,平均值和功率 本期教程主要讲解统计函数中的最大值,最小值,平均值和功率的计算。 目录 …

【STM32H7的DSP教程】第7章 ARM DSP源码和库移植方法(IAR8)

完整版教程下载地址:http://www.armbbs.cn/forum.php?modviewthread&tid94547 第7章 ARM DSP源码和库移植方法(IAR8) 本期教程主要讲解ARM官方DSP源码和库的移植以及一些相关知识的介绍。 目录 第7章 ARM DSP源码和库移植方法&a…

【STM32H7的DSP教程】第14章 DSP统计函数-最大值,最小值,平均值和功率

完整版教程下载地址:http://www.armbbs.cn/forum.php?modviewthread&tid94547 第14章 DSP统计函数-最大值,最小值,平均值和功率 本期教程主要讲解统计函数中的最大值,最小值,平均值和功率的计算。 目录 …

【STM32F429的DSP教程】第14章 DSP统计函数-最大值,最小值,平均值和功率

完整版教程下载地址:http://www.armbbs.cn/forum.php?modviewthread&tid94547 第14章 DSP统计函数-最大值,最小值,平均值和功率 本期教程主要讲解统计函数中的最大值,最小值,平均值和功率的计算。 目录 …

(十)DSP28335基础教程——ECAP实验(超声波测距)

0 前言 这一节我们来学习DSP的ECAP模块的功能。实验目标:通过超声波测距模块,将采集所测量距离显示在电脑串口助手上。 本节将分为硬件部分、软件部分和实验展示三个方面进行介绍,不清楚的欢迎留言。 1 硬件部分 需要四个硬件如图1所示&a…

【STM32F407的DSP教程】第13章 DSP快速计算函数-三角函数和平方根

完整版教程下载地址:http://www.armbbs.cn/forum.php?modviewthread&tid94547 第13章 DSP快速计算函数-三角函数和平方根 本期教程开始,我们将不再专门的分析DSP函数的源码,主要是有些DSP函数的公式分析较麻烦,有兴…

【STM32H7的DSP教程】第18章 DSP控制函数-更好用的SIN,COS计算

完整版教程下载地址:http://www.armbbs.cn/forum.php?modviewthread&tid94547 第18章 DSP控制函数-更好用的SIN,COS计算 本期教程主要讲解控制函数中的cos和sin函数数值的获取,这里使用的函数比起第13章中使用的sin和cos函数数值…