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_INCOMPATIBLEList 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/

Android系统签名生成相关推荐

  1. Android系统签名生成Studio导入系统keystore

    一.Android签名文件简述 为什么要签名? 任何一个安装包都需要有签名.为App签名的本质是说明这个App是我开发的,不是别人.通过签名可以在应用和开发者之间建立可信任的关联. 通过签名,Andr ...

  2. Android系统签名生成,在AndroidStudio中使用

    1.首先找到以下文件 build/target/product/security/platform.pk8 build/target/product/security/platform.x509.pe ...

  3. android系统签名app自动更新,【Android 进阶】Apk 使用系统签名

    刚入职的时候,固件中 app 需要在源码中编译,不是很理解,为什么不使用 IDE 编译,然后 copy 到 /system/app/*,咨询导师,得到反馈 app 需要使用系统的权限 在 Androi ...

  4. Android系统签名简介

    apk的签名,简单说开发者可以通过签名 对应用进行标识和更新.包名在一个设备上是唯一的,这样可以避免被相同包名应用随意覆盖安装.这是一个非常重要的安全功能. 系统中的签名文件,也是对系统中应用进行签名 ...

  5. Android系统签名jks文件

    Android Studio普通应用->系统应用 在android framework开发过程中,通常使用系统应用在验证某些功能,(系统功能权限大,可以通过反射获取hide接口,便于功能调试). ...

  6. android 签名报错,Android系统签名报错 no conscrypt_openjdk_jni in java.library.path

    1.Android 7.1之前,系统签名如下: java -jar signapk.jar platform.x509.pem platform.pk8 source.apk target.apk 2 ...

  7. 微信开放平台 安卓Android 应用签名生成

    拿到开发给的文件: 查询keystore的MD5 可以在运行窗口,定位到keystore所在的路径,执行下面这条语句后就能显示Key的所有信息 keytool -list -v -keystore x ...

  8. android系统签名

    1.在系统源码下找到signapk.jar platform.x509.pem platform.pk8三个文件,一般在build或prebuilt目录下 2.在AndroidManifest.xml ...

  9. android支付宝签名生成工具,Android支付宝支付的示例代码

    上一篇,我们已经详细讲解了Android微信支付,今天接着为大家带来支付宝支付,支付宝支付相对微信支付要简单一些,吐槽一下,而且支付宝文档确实比微信的文档好了不少,下面开始讲解支付流程. 1.首先给出 ...

  10. Android使用keytool-importkeypair生成一个系统签名,只要打包的时候使用该签名,便可以获得系统所有权限

    Android系统源码中提供了platform.x509.pem .platform.pk8等签名文件例如: 这个是不能直接在调试的时候使用的,如果要用,需要先转换为android studio调试用 ...

最新文章

  1. 3分钟看完一篇论文,这个AI文本生成模型把今年NeurIPS 2300+篇总结了个遍
  2. 深度学习在超市商品识别中的解决方案分享
  3. 我来阅读lodash源码——Math(一)
  4. python的质量控制模块_10.11. 质量控制
  5. 苹果企业证书_今日更新:丨企业证书已更新丨苹果丨安卓软件下载说明丨
  6. nginx稳定版本_Nginx简介
  7. DataGridView中获取与设置当前选中行以及SelectedRows和CurrentRow注意区分
  8. [转]TCP协议中的三次握手和四次挥手(图解)
  9. python线程问题_Python线程问题
  10. WordPress主题:自媒体二号大前端模板
  11. ES6之let能替代var吗?
  12. windows phone7 学习笔记06——数据绑定
  13. 使用分治思想求解最大子序列
  14. python2项目出现的错误(UnicodeDecodeError)
  15. 这样投简历,HR一定会看
  16. 德州农工大学计算机专业如何,德州农工大学美国排名
  17. 微软员工和 GitHub 员工宣布支持 996.ICU 运动,来签个名呗?
  18. 证件照分辨率350dpi怎么调?怎么调照片dpi?
  19. VS2008下水晶报表之简单示例
  20. java如何实现系统定位_如何快速定位到系统中某一功能的具体实现

热门文章

  1. 电脑硬件故障维护小全
  2. 国内外学术期刊的一些基本常识情况--A类B类--核心期刊普刊--分区等
  3. 考勤机信息同步不到服务器,考勤机实时同步功能上线啦
  4. 手机linux服务器控制,手机上如何远程控制Linux服务器?
  5. 阿里云播放器组件 vue-aliplayer
  6. 记静下心来从头学习PLC编程以及用C#开发OPC client 与PLC 交互
  7. 了解无线安全前置准备(一)
  8. 勤哲excel服务器自动计算工资,勤哲Excel服务器软件实现财务自动化管理系统
  9. AD7327 AD芯片使用记录
  10. IDEA快捷键大全及修改IDEA快捷键