系统签名是让客户做的系统app可以正常在我们系统上运行,你的app要写成系统app,再系统签名才有意义。
说明:固件中app需要在源码中编译,而不使用IDE编译,然后copy到/system/app/*目录,是因为app需要使用系统的权限,在AndroidManifest.xml中申明了系统权限

android:sharedUserId="android.uid.system"。

1、单独签名解决方案,文件放置在同一个文件夹signapk目录下

在Android源码目录build/target/product/security/,找到平台签名文件:platform.pk8和platform.x509.pem。

在Android根目录android/prebuilts/sdk/tools/lib找到签名工具:signapk.jar。

把签名证书“platform.pk8 ”“platform.x509.pem ”,签名工具“signapk.jar ”放置在同一个文件夹signapk;

执行命令:java -jar signapk.jar platform.x509.pem platform.pk8 Demo.apk signedDemo.apk // Demo.apk代表签名前apk,signedDemo.apk代表签名后apk

如果出现报错:

zwei@ubt144c:/work/zwei/czd/3399_qianming/security$ java -jar signapk.jar platform.x509.pem platform.pk8 BDService_17082811.apk     BDService_17082811_sign.apk
Exception in thread "main" java.lang.UnsatisfiedLinkError: no conscrypt_openjdk_jni in java.library.pathat java.lang.ClassLoader.loadLibrary(ClassLoader.java:1857)at java.lang.Runtime.loadLibrary0(Runtime.java:870)at java.lang.System.loadLibrary(System.java:1119)at org.conscrypt.NativeCryptoJni.init(NativeCryptoJni.java:25)at org.conscrypt.NativeCrypto.<clinit>(NativeCrypto.java:54)at org.conscrypt.OpenSSLBIOInputStream.<init>(OpenSSLBIOInputStream.java:34)at org.conscrypt.OpenSSLX509Certificate.fromX509PemInputStream(OpenSSLX509Certificate.java:119)at org.conscrypt.OpenSSLX509CertificateFactory$1.fromX509PemInputStream(OpenSSLX509CertificateFactory.java:220)at org.conscrypt.OpenSSLX509CertificateFactory$1.fromX509PemInputStream(OpenSSLX509CertificateFactory.java:216)at org.conscrypt.OpenSSLX509CertificateFactory$Parser.generateItem(OpenSSLX509CertificateFactory.java:94)at org.conscrypt.OpenSSLX509CertificateFactory.engineGenerateCertificate(OpenSSLX509CertificateFactory.java:272)at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339)at com.android.signapk.SignApk.readPublicKey(SignApk.java:182)at com.android.signapk.SignApk.main(SignApk.java:1087)

则找到 libconscrypt_openjdk_jni库:prebuilts/sdk/tools/linux/lib64/libconscrypt_openjdk_jni.so
把它拷贝到文件夹signapk目录下,然后执行以下语句:
java -Djava.library.path=. -jar signapk.jar platform.x509.pem platform.pk8 BDService_17082811.apk BDService_17082811_sign.apk

2、直接在Android SDK编译环境签名方案

直接在Ubuntu编译环境执行(input.apk表示签名前apk,output.apk表示签名后apk)
java -jar out/host/linux-x86/framework/signapk.jar -w build/target/product/security/platform.x509.pem build/target/product/security/platform.pk8 device/rockchip/rk3399/preinstall/input.apk device/rockchip/rk3399/preinstall/output.apk

apk与android系统签名相关推荐

  1. Android编译系统apk并进行系统签名安装

    前言 最近接到一条需求,需要调用WifiP2pManager.setWfdInfo方法进行投屏接收端功能开发,但查看此方法,发现是系统级别api,通过反射也无法调用,所以想到能否通过设置app为系统级 ...

  2. Android系统签名jks文件

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

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

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

  4. Android系统签名简介

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

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

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

  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系统签名

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

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

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

  9. 如何实现在 Android Studio 上开发系统应用(自带系统签名)

    基于Android 系统应用包名和路径的局限性,很多同僚不得不暂时放弃 Android Studio,而无奈地选择在已经停止更新的eclipse上进行系统级应用的开发,作者也是遇到了这种情况,于是探索 ...

  10. android 使用系统签名实现静默安装

    文章目录 一.准备工作 二.使用步骤 1.生成keystore文件 2.将keystore转换为jks 3.引入android studio 三.使用pm安装 1.安装方法 2.注册广播,安装成功后自 ...

最新文章

  1. 谈谈Boost网络编程(2)—— 新系统的设计
  2. LOAM_velodyne学习(三)
  3. diy直立双足机器人_Aelos Pro 机器人:让编程变得更有趣
  4. 事件查看器 无法完成应用程序上的操作,接口未知
  5. 面向对象的tab选项卡实现
  6. 让应用通过苹果审核出人头地的10个方法
  7. Python的下载安装图文教程(超详细!!!)
  8. 学汽车故障计算机排除怎么样,汽车故障清除后就没事了么?
  9. Binutils - c++filt工具
  10. 微信公众号活动策划方案怎么写?看完你也可以直接套用
  11. 网络流专题班例题和练习
  12. 人工智能的伦理和价值观——阿西洛马人工智能原则(Asilomar AI Principles )
  13. 开源在今天意味着什么?
  14. 4×30m钢筋混凝土简支T梁桥结构设计与计算
  15. 当谈到携程机票产品经理的数据意识,我们在谈什么?
  16. 开始学习Pascal语言
  17. ruby 对象转换哈希(Hash)
  18. SAR ADC系列2:DFT离散傅里叶变换
  19. 基于python的简单异或脚本
  20. TX Text Control for wpf 31 Crack

热门文章

  1. mips32和x86下的大小端模式判定
  2. 缓冲文件系统和非缓冲文件系统
  3. 不过确实setNString 也可以解决这个??问题,但是解决不了模糊匹配问题 原因不清楚...
  4. mysql的一些查询优化,count优化,limit优化
  5. day_log 12月份的
  6. 情感计算在淘宝UGC的应用
  7. 如何写论文?看下这份《科研论文撰写策略》为你指点一二
  8. PLA算法(感知机)
  9. 白板推导系列Pytorch-期望最大(EM)算法
  10. 容器技术的发展与基本原理