Android系统签名生成[通俗易懂]

Android系统签名生成[通俗易懂]Android系统应用添加系统签名在开发的过程中,如果需要设置当前的应用为系统应用,需要两步:在对应的AndroidManifest.xml文件中将“android:sharedUserId”设置为”android.uid.system”。如下所示:<?xmlversion=”1.0″encoding=”utf-8″?><manifestxmlns:android=”http://schemas.android.com/apk/res/android”pack

大家好,又见面了,我是你们的朋友全栈君。

Android系统应用添加系统签名

在开发的过程中,如果需要设置当前的应用为系统应用,需要两步:

  1. 在 对应的AndroidManifest.xml文件中将“android:sharedUserId”设置为”android.uid.system”。如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.localmediaplayerdemo"
    android:sharedUserId="android.uid.system">
  1. 使用签名文件对应用进行签名
    该类App在安装到系统的时候,需要有系统签名,否则无法安装,提示下面的错误:
04/24 18:02:52: Launching 'mobile' on ×××Android Device.
Installation did not succeed.
The application could not be installed: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE

List of apks:
[0] '/**/**/APK name /mobile/build/outputs/apk/debug/mobile-debug.apk'
Installation failed due to: 'Failed to commit install session 1758990893 with command cmd package install-commit 1758990893. Error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE: Reconciliation failed...: Reconcile failed: Package com.example.apkname has no signatures that match those in shared user android.uid.system; ignoring!'
Retry

Android系统签名的生成

生成系统签名,首先需要下面的两个系统签名文件:
platform.pk8
platform.x509.pem
这两个文件可以从Android源码中获取,具体路径为:
build/target/product/security/
将上面的两个文件放到同一个文件夹,同时也将自己生成的签名文件放置在这个文件夹下,从gitHub上下载工具keytool-importkeypair
执行下面的命令就可以生成系统签名文件了。

./keytool-importkeypair -k SignDemo.jks -p 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias platform

其中:
SignDemo.jks是签名文件
123456是storePassword和keyPassword的密码
platform是别名

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

上面命令的意思也就是将签名文件转换成系统签名文件。

有时候会出现下面的错误:

Error decrypting key
139637230543296:error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag:../crypto/asn1/tasn_dec.c:1149:
139637230543296:error:0D06C03A:asn1 encoding routines:asn1_d2i_ex_primitive:nested asn1 error:../crypto/asn1/tasn_dec.c:713:
139637230543296:error:0D08303A:asn1 encoding routines:asn1_template_noexp_d2i:nested asn1 error:../crypto/asn1/tasn_dec.c:646:Field=version, Type=PKCS8_PRIV_KEY_INFO
unable to load private key
140642992083392:error:0909006C:PEM routines:get_name:no start line:../crypto/pem/pem_lib.c:745:Expecting: ANY PRIVATE KEY
Importing "platform" with SHA1 Fingerprint=57:3D:8B:63:41:84:95:29:43:CB:AD:67:7D:93:2D:03:83:D3:08:CE
正在将密钥库 /tmp/keytool-importkeypair.LHJB/p12 导入到 ./debug.keystore...
keytool 错误: java.io.FileNotFoundException: /tmp/keytool-importkeypair.LHJB/p12 (没有那个文件或目录)

是因为platform.pk8文件或者platform.x509.pem文件有问题,从源码当中copy一份就可以了。

参考文档:
https://blog.csdn.net/qq_34744658/article/details/107949895
https://www.freesion.com/article/242659750/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151961.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月21日 上午10:16
下一篇 2022年6月21日 上午10:36


相关推荐

  • 树莓派3B+ 安装系统

    树莓派3B+ 安装系统树莓派3B+安装系统对于树莓派3B+系统安装方法有很多,我就介绍比较普通的一种。适合小白操作!安装概要步骤:官网下载系统-》刷入TF卡-》设置开启显示器和SSH-》通电-》进入系统详细步骤进入官方网站下载系统镜像。https://www.raspberrypi.org/downloads/来到下面这个页面如果感觉下载速度慢,可以将下载链接放到迅雷里面下,基本可以做到满速下载!下载

    2022年6月25日
    40
  • webpack之publicPath

    webpack之publicPath前言 本文解决了 nbsp webpack 之输出路径处理 最后预留的路径问题正文 要解决 nbsp webpack 之输出路径处理 最后预留的路径问题 只需要在 webpack config js 的 output 选项中添加 publicPath 配置 执行 npmrunbuild 在浏览器打开 dist index html 文件 所有资源均正常加载 但是 现在执行 npmrundev 浏览器打开的 http loc

    2026年3月17日
    1
  • oracle客户端环境变量

    oracle客户端环境变量下载和安装也就不多说了 反正都是很简单的 安装完以后最好重新启动一次系统 要不然可能无法使用 反正我有两次都是重新启动系统后才成功的 也有可能两次都是我刚装完系统 OracleClient 在 windows 下的环境变量 括号内为说明 ORACLE HOME d winsoft Ora10Instant 客户端根目录 TNS ADMIN d winsoft O

    2026年3月16日
    2
  • LM567鉴频电路设计

    LM567鉴频电路设计LM567 概述编辑 LM567 为通用锁相环电路音调译码器 LM567 的内部电路及详细工作过程非常复杂 具体的可参考 音频 567 芯片详解 这里仅将其基本功能概述如下 当 LM567 的 脚输入幅度 25mV 频率在其带宽内的信号时 脚由高电平变成低电平 脚输出经频率 电压变换的调制信号 如果在器件的 脚输入音频信号 则在 脚输出受 脚输入调制信号调制的调频方波信号 用外接元件独立设定

    2026年3月20日
    2
  • 分析函数 ExecuteSQL

    分析函数 ExecuteSQL
    在学生管理系统中,执行sql语句时,我们用到这个函数,当时有几点不明,现在说说我的理解。
     
    PublicFunctionExecuteSQL(ByValSQLAsString,MsgStringAsString)AsRecordset
      ……
      sTokens=Split(SQL)
    ‘Split返回一个下标从0开始的一维数组,包含指定数目的子字符串。”Select”+”*”+”from”+”user_Info”+

    2022年5月11日
    48
  • R语言如何实现主成分分析(PCA),最全详细教材

    R语言如何实现主成分分析(PCA),最全详细教材R 语言也有 一步到位 的函数 如 prcomp 和 princomp 基本上都是输入数据直接出结果 为了理解 PCA 的原理 我们利用自编函数的方法进行学习 主成分分析详解主成分分析过程分解 1 数据标准化 2 计算相关系数 协方差 矩阵 3 求解特征值和相应的特征向量 4 计算主成分得分 5 绘制主成分散点图 6 自编函数实现 PCA 总代码使用现成函数完成主成分分析 1 prcomp 函数 2 princomp 函数 3 PCA 结果可视化主成分分析过程分解 1 数据标准化为了统一数据的量纲并对数据进行中心化 在主成

    2026年3月18日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号