系统签名文件的定义和作用

Android APK的发布是需要签名的。签名机制在Android应用和框架中有着十分重要的作用。例如,Android系统禁止更新安装签名不一致的APK;如果应用需要使用system权限,必须保证APK签名与Framework签名一致。所有的APK都是有签名的,如果没有指定签名文件,编译时会默认用SDK目录下的debug签名文件。

Android签名机制有很多的作用  :

1、应用程序升级:如果你希望用户无缝升级到新的版本,那么你必须用同一个证书进行签名。这是由于只有以同一个证书签名,系统才会允许安装升级的应用程序。如果你采用了不同的证书,那么系统会要求你的应用程序采用不同的包名称,在这种情况下相当于安装了一个全新的应用程序。如果想升级应用程序,签名证书要相同,包名称要相同。

2、应用程序模块化:Android系统可以允许同一个证书签名的多个应用程序在一个进程里运行,系统实际把他们作为一个单个的应用程序,此时就可以把我们的应用程序以模块的方式进行部署,而用户可以独立的升级其中的一个模块。

3、代码或者数据共享:Android提供了基于签名的权限机制,那么一个应用程序就可以为另一个以相同证书签名的应用程序公开自己的功能。以同一个证书对多个应用程序进行签名,利用基于签名的权限检查,你就可以在应用程序间以安全的方式共享代码和数据了。

签名文件的路径

build/target/product/security/

android默认的key主要有以下几种类型,每种key对应的权限不同:

testkey(releasekey) -- a generic key for packages that do not otherwise specify a key.  开发过程中的key,一个包的通用密钥,它不指定密钥。

 platform -- a test key for packages that are part of the core platform.   当APK 完成一些系统的核心功能时使用,这种方式编译出来的APK所在进程的UID 为system。

shared -- a test key for things that are shared in the home/contacts process. 当APK 需要和home/contacts 进程共享数据时使用。

media -- a test key for packages that are part of the media/download system. 作为media/download系统一部分的包的测试密钥。

生成签名文件的工具

Android系统中有可以生成key的工具,就在development/tools/make_key,我们直接利用这个工具就可以了,但是这个需要一条一条执行,所以我做了一个脚本工具generateKey.sh.把这个脚本放到make_key所在的路径下,直接执行就好了~,generateKey.sh的代码如下

生成签名文件的过程如下图:

注:生成新的签名文件后,需要替换掉系统的签名文件。

系统整编,烧录车机。

签名工具的使用

platform 就是 指 用 platform.pk8和platform.x509.pem两个文件 来 签名。用这两个key签名后apk才真正可以放入系统进程中。

signapk.jar:由/platform/build/tools/signapk/编译产出,可以在/out/host/linux-x86/framework/中找到。

签名:java -jar signapk.jar platform.x509.pem platform.pk8 MyDemo.apk MyDemo_signed.apk 得到具有对应权限的APK。

知识拓展

感兴趣的小伙伴可以查看以下链接:

实现签名的代码逻辑

https://www.jianshu.com/p/a5af970ca1db

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

https://www.cnblogs.com/AllenCVI/p/7650233.html

安卓系统签名文件的使用相关推荐

  1. 安卓系统安全学习小结(二)

    提示: 文章目录 前言 一.安卓系统小结 二.检测工具的了解与学习 1.Monkeyrunner 2.重打包技术 3.检测方法 4.安卓应用攻击类型 总结 前言 随着互联网不断发展,我们每天使用的手机 ...

  2. 安装凤凰os_这些系统帮助我们实现了在PC上安装安卓系统!

    要是说在早期智能手机还不是那么的普及的时候,个人电脑应该就是我们最了解的智能设备了吧.那个时候,个人PC的上安装的操作系统就分为Windows操作系统.MAC OS操作系统.Linux 操作系统以及其 ...

  3. 华为mate30会用鸿蒙嘛,华为Mate30安卓系统再遭限制,鸿蒙系统真的要应战了

    目前三星Note10系列已经正式发布,而接下来的9月份,苹果的iPhone11定在9月10日发布,而华为Mate30虽然是最晚的一个,但也仅比iPhone11晚几天. 本来这些天关于华为Mate30的 ...

  4. 鸿蒙os电视是安卓,适配鸿蒙OS系统的机型又增加了!和安卓系统相比鸿蒙有哪些特点?...

    自从鸿蒙OS系统全面启动公测以来,不断的在更新更多适配机型,就在前不久华为鸿蒙官网又新增了不少的机型,除了之前的Mate系列和P系列外,这次更新的机型有:华为nova6.nova65G.nova75G ...

  5. 鸿蒙系统比比安卓系统好么,鸿蒙系统与安卓系统的区别 鸿蒙系统与安卓系统哪个更好...

    鸿蒙系统2.0即将要上线了,这个系统是由华为团队自发研究的,这个也是国产的操作系统,虽然在开发操作系统时面临了重重困难,但是华为从不退缩,坚持到底,国内人还是很期待它的到来,今年的12月份就可以与大家 ...

  6. ubuntu 刷 android 5.0,IT之家学院:将刷了Ubuntu Touch的魅族PRO 5恢复为安卓系统

    小编写教程时用来做演示的魅族PRO 5是管总编大人借的,不把它恢复成安卓系统,这手机也没法儿还啊-- 那么这篇教程,IT之家小编就来演示如何把刷了Ubuntu Touch的魅族PRO 5恢复为安卓(国 ...

  7. android好还是windows好,收银机操作系统哪种好?安卓系统与Windows系统区别?

    POS收银机从结构上来讲,本质就是一台PC机加上其他的外围设备,收银机的PC机我们称之为主机,内部配置跟普通的PC一样,CPU.硬盘.主板.内存一样也不能少,当然也少不了PC赖以运行的操作系统了.那么 ...

  8. 什么时候可以全面升级鸿蒙系统,华为已做好全面升级准备,鸿蒙系统将替换底层安卓系统...

    了解更多科技资讯尽在"圈聊科技". 今天跟大家聊一聊:鸿蒙传来新消息!华为已做好全面升级准备,将彻底替换底层安卓系统. 手机系统已经面临了多次的更新换代,在非智能时代的时候,诺基亚 ...

  9. 最新安卓系统细节曝光:后盖手势控制、浮雕式UI、隐私保护.....本月更新!

    贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 安卓还是那个可可爱爱的绿色小机器人吗? 最近,新的安卓12系统的细节被曝光,新的手势控制.隐私保护.UI界面--总有让人有种熟悉的感觉. ...

最新文章

  1. hibernate中inverse作用
  2. 计算机从业者的技术成长学习之路
  3. 13、MySQL比较运算符
  4. 技术人员写blog的好处
  5. 6个免费的C++图形和游戏库
  6. Software-testing-foundations-homework3
  7. RabbitMQ学习笔记-RabbitMQ的运转流程
  8. 如何将一个JavaScript数组打乱顺序?
  9. java关键字保留字_Java这个关键字
  10. 从零开始学ios开发(三):第一个有交互的app
  11. tiptop 编译运行_ERP(tiptop linux下主要命令)
  12. Python3使用bencode库解析BT种子
  13. 程序员的数学【概率论】
  14. 阿里云DataV功能及案例
  15. 模拟京东快递单号查询案例
  16. 2019世界机器人大会
  17. 删除打印机重新安装驱动
  18. (教程)教你如何自己办理商标注册事宜
  19. 多重网格法-松弛迭代法-二维泊松方程-python实现
  20. Axure8.0基础教程 一

热门文章

  1. JAVA前端与后端参数传递方法小结
  2. ImportError: cannot import name ‘MobileNetV2‘ from ‘keras.applications‘解决方法
  3. 计算机如何配置桌面显示属性,WindowsXP显示属性的设置教程
  4. git clone出现问题 GnuTLS recv error (-54): Error in the pull function
  5. HTTP协议浅析(中):请求报文和响应报文
  6. 同事不到30岁,目前已失业4个月,出路在哪里?
  7. 通过java代码连接数据库
  8. Win10安装使用Hadoop3.0.0
  9. pdflib:使用pdflib输出中文生僻字和繁体字乱码问题
  10. netstat命令 常用参数