一、应用使用系统签名

假设我们得到了系统签名文件:platform.pk8、platform.x509.pem,还需要一个用于签名的文件:signapk.jar,这里提供了一份下载连接,可供练习使用:链接:https://pan.baidu.com/s/1OiBcVyhZVqTulb6HXwcqHA 提取码:7g81

有时候我们找系统提供商要系统签名时,可能给的文件很多,如下:

其实真正只需要用到platform.pk8、platform.x509.pem即可。

不同的系统,系统签名是不一样的,所以你们下载我的这个签名文件是用不到你的系统上的,但是signapk.jar是通用的,什么系统签名都可以使用他。

当你有你的系统签名文件时,如何把一个apk签名为系统签名呢?如下:

  1. 把platform.pk8、platform.x509.pem、signapk.jar、app.apk放到同一个目录下

  2. CMD进入到上面的目录中,然后输入如下命令:

    java -jar signapk.jar platform.x509.pem platform.pk8 app.apk app_signed.apk
    

    注:这里app.apk就是你的App,此App不论是有签名还是没签名都是可以的,通过上面的命名后,签名就会变成系统的签名了。

这有一篇文章:应该是需要在Linux系统下进行操作的:https://blog.csdn.net/georgebindragon/article/details/106253192

注:一个应用要想使用系统签名,还需要在清单文件中设置一个属性,如下:

<manifestxmlns:android="http://schemas.android.com/apk/res/android"android:sharedUserId="android.uid.system">

我们使用adb命令安装一个没有签名的apk

adb install unsigned.apk

此时会报错,如下:

Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

INSTALL_PARSE_FAILED_NO_CERTIFICATES翻译过来就是:安装解析失败,没有证书(签名)

使用adb命令安装一个有系统签名的apk,但是安装到一个不匹配的android系统上,会报错如下:

Failure [INSTALL_FAILED_SHARED_USER_INCOMPATIBLE]

INSTALL_FAILED_SHARED_USER_INCOMPATIBLE翻译过来就是:安装失败,共享用户不兼容(其实说的就是系统签名与所安装的手机不兼容)

二、把系统签名弄成jks签名文件

1、把platform.pk8、platform.x509.pem放在同一个目录下,然后cmd中进入这个目录。
2、生成platform.pem,输入如下命令:

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

如果提示没有openssl命令,则需要先安装openssl,下载地址:http://slproweb.com/products/Win32OpenSSL.html,一般我们下载64位的exe,且容量大的那个,如下:

预防下载连接失效,这里也提供一个百度网盘下载:链接:https://pan.baidu.com/s/1gFpPMwfwCTpty7xCdiEZ2A 提取码:1234

安装后之后,把安装目录下的bin目录设置到path环境变量中即中。

3、生成platform.p12,命令如下:

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

注:这里的123456为密码,key0为别名,可以自行设置。
4、生成platform.jks,命令如下:

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

注:这里有两个123456,都是密码,与前一步设置的密码保持一致。

这一步,会报出一个警告,如下:

Warning:
JKS 密钥库使用专用格式。建议使用 “keytool -importkeystore -srckeystore ./platform.jks -destkeystore ./platform.jks -deststoretype pkcs12” 迁移到行业标准格式 PKCS12。

可以忽略它,也可以按它说的输入那个命令:

keytool -importkeystore -srckeystore ./platform.jks -destkeystore ./platform.jks -deststoretype pkcs12

到这里,我们就有了一个platform.jks的系统签名文件了,以后打包apk就像平常那样打包即可,可以把debug的签名也设置为这个,这样在AndroidStudio中可以直接运行apk来调试。

把Android系统签名弄成jks相关推荐

  1. 谷歌Android系统在美成宠儿

    谷歌Android系统在美成宠儿,大部分用户为美国民众贡献. 北京时间1月28日下午消息,应用分析公司Localytics发布的最新研究报告显示,尽管iPad目前仍是全球最热门的平板电脑平台,但And ...

  2. Android系统签名jks文件

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

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

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

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

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

  5. Android系统签名简介

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

  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使用keytool-importkeypair生成一个系统签名,只要打包的时候使用该签名,便可以获得系统所有权限

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

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

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

最新文章

  1. 数据类型:Struct 和 Union区别
  2. 2018.4.2 三周第一次课
  3. python 文件操作 os.readlines()函数用法
  4. nginx源码阅读(二).初始化:main函数及ngx_init_cycle函数
  5. MySQL根据员工姓名所在部门_用一条SQL语句显示所有人员的姓名及所在部门
  6. 修改oracle重做日志文件大小
  7. 用php做一个分页显示的,php一个分页显示类
  8. CC攻击及其解决方法
  9. 【原创翻译】深入理解javascript事件处理函数绑定三部曲(一)——早期的事件处理函数...
  10. 00_51入门知识积累__焊接器件
  11. android 设置自动曝光,我应该如何设置自定义的相机,曝光和白平衡值,如果在Android定制camera.Does初始化相机参数时,相机自动处理这些我不设置曝光和白平衡或者我需要...
  12. 基于WASAPI的录音播音系统
  13. android 获取渠道信息,Android 如何获取 umeng 的 渠道信息
  14. 工厂模式,java描述
  15. jenkins的administrator权限
  16. 矩阵论(2)——线性表示及基与坐标
  17. CSS transform中的rotate设置旋转中心
  18. html怎么混合颜色,在CSS中为背景混合两种颜色
  19. 如何给apk安装包去毒,避免被识别为病毒和木马
  20. 芯片制造和芯片技术研发同时突破,中国芯片开创新道路

热门文章

  1. 比较好用的mysql可视化工具-----pycharm连接mysql图文教程
  2. OC 获取view相对位置_【黑苹果系列】小白教程之DSD补丁篇 | 7分钟教你优雅定制最关键的OC补丁(clover通用)...
  3. oracle日期加一天的函数,关于oracle日期函数的介绍和使用
  4. 读《微波工程(第三版)》笔记 (9:传输线模型)
  5. java类转为er图_ER图,以及转化成关系模式
  6. ubuntu通过命令行清除内存
  7. SQL常用替换字符串值的5种方法
  8. pioneer软件VoLTE测试步骤,Pioneer操作说明.docx
  9. 免费报表工具 - RDP报表工具
  10. CSDN2021博客之星