描述下Android数字签名

深入解析vbmeta.img:Android验证启动的核心机制 本文深入解析了Android验证启动的核心组件vbmeta.img。它作为由设备制造商签名的“元数据容器”,承载着验证boot、system等分区的具体规则,是Android Verified Boot (AVB) 2.0安全启动体系的基石。文章详细剖析了其内部结构、验证机制,并提供了查看、验证及自定义vbmeta.img的实战操作指南。 阅读详情
 

 

Android 数字签名
       在Android系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个permission的protectionLevel为signature,那么就只有那些跟该permission所在的程序拥有同一个数字证书的应用程序才能取得该权限。Android使用Java的数字证书相关的机制来给apk加盖数字证书,要理解android的数字证书,需要先了解以下数字证书的概念和java的数字证书机制。Android系统要求每一个安装进系统的应用程序都是经过数字证书签名的,数字证书的私钥则保存在程序开发者的手中。Android将数字证书用来标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定最终用户可以安装哪些应用程序。这个数字证书并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。
同一个开发者的多个程序尽可能使用同一个数字证书,这可以带来以下好处。
(1)有利于程序升级,当新版程序和旧版程序的数字证书相同时,Android系统才会认为这两个程序是同一个程序的不同版本。如果新版程序和旧版程序的数字证书不相同,则Android系统认为他们是不同的程序,并产生冲突,会要求新程序更改包名。
(2)有利于程序的模块化设计和开发。Android系统允许拥有同一个数字签名的程序运行在一个进程中,Android程序会将他们视为同一个程序。所以开发者可以将自己的程序分模块开发,而用户只需要在需要的时候下载适当的模块。
(3)可以通过权限(permission)的方式在多个程序间共享数据和代码。Android提供了基于数字证书的权限赋予机制,应用程序可以和其他的程序共享概功能或者数据给那那些与自己拥有相同数字证书的程序。如果某个权限(permission)的protectionLevel是signature,则这个权限就只能授予那些跟该权限所在的包拥有同一个数字证书的程序。
在签名时,需要考虑数字证书的有效期:
(1)数字证书的有效期要包含程序的预计生命周期,一旦数字证书失效,持有改数字证书的程序将不能正常升级。
(2)如果多个程序使用同一个数字证书,则该数字证书的有效期要包含所有程序的预计生命周期。
(3)Android Market强制要求所有应用程序数字证书的有效期要持续到2033年10月22日以后。
Android数字证书包含以下几个要点:
              (1)所有的应用程序都必须有数字证书,Android系统不会安装一个没有数字证书的应用程序
              (2)Android程序包使用的数字证书可以是自签名的,不需要一个权威的数字证书机构签名认证
              (3)如果要正式发布一个Android ,必须使用一个合适的私钥生成的数字证书来给程序签名,而不能使用adt插件或者ant工具生成的调试证书来发布。
              (4)数字证书都是有有效期的,Android只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能。

深入解析AVB 2.0:从vbmeta.img生成到Android安全启动全流程 本文深入解析Android Verified Boot (AVB) 2.0安全启动机制,详细阐述了核心校验元数据文件vbmeta.img的生成原理与结构。通过avbtool工具实战演示了从镜像生成到签名的全流程,并剖析了其在Android编译系统内的集成方式与启动时的完整校验链条,为开发者理解与定制Android安全启动提供了全面指导。 阅读详情

相关推荐

vbmeta.img 是什么

组件角色类比Bootloader保安队长他只认官方盖章的文件(能验证官方签名)OEM 私钥公司的官方印章绝对机密,只有公司高层才有Bootloader 内置的公钥保安队长持有的官方印章样本用于核对文件上的印章真伪vbmeta.img官方盖章的通行证清单清单本身由官方盖章(签名),所以保安队长信任它描述符清单上的每条通行规则写着“持A证的人可进入机房,其指纹应为XXX”(哈希描述符);“B区域需用专用指纹锁验证,根指纹是YYY”(哈希树描述符)其他分区需要进入各个区域的人和物他们的合法性由。

w2064004678的博客 1281

android 数字签名详解

在Android系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个permission的protectionLevel为signature,那么就只有那些跟该permission所在的程序拥有同一个数字证书的应用程序才能取得该权限。Android使用Java的数字证书相关的机制来给apk加盖数字证书,要理解android的数字

zhang1314wen2008的专栏 989

C++手写泡泡堂:SFML游戏开发实战与性能优化

游戏开发中,2D网格化动作游戏是理解实时渲染、输入响应与物理碰撞的基础范式。C++凭借零成本抽象和内存可控性,成为高帧率、低延迟、嵌入式部署场景下的首选语言。结合SFML多媒体库,开发者可绕过引擎黑盒,亲手实现地图管理、玩家状态机、爆炸BFS传播与帧同步碰撞检测等核心机制。本文聚焦于标准C++17工程实践,覆盖静态链接避坑、constexpr地图编译期验证、std::deque高性能对象池等关键技术点,适用于教学验证、HMI移植及性能敏感型小游戏开发。

weixin_33912246的博客 335

根据自己的理解描述下Android数字签名?

(1) 所有的应用程序都必须有数字证书。Android系统不会安装一个没有数字证书的应用程序。 (2) Android程序包使用的数字证书可以是自签名的,不需要一个权威的数字证书机构签名认证。 (3) 如果要正式发布一个Android,必须使用一个合适的私钥生成的数字证书来给程序签名,而不能使用adt插件或者ant工具生成的调试证书来发布。 (4)数字证书都是有有效期,Android只是在应

maizangxiangwang的博客 2314

张量分解浅谈(四 Tucker 分解)

学完了SVD算法之后,我们继续回到张量几大分解的学习上来,本期学习的主要内容是张量的 Tucker 分解 以及 前面的CP分解还留下一点没有说完,正好一并补齐!后面的公式我将采用颜色标记,红色代表必须掌握,蓝色尽量掌握! 在这之前先附一张图,包含了各种运算符号的名称含义,大部分是前面说过或者使用过的: Tensor decomposition一 . Tucker 分解公式介绍和原理二 . 张量的 n-Rank 一 . Tucker 分解公式介绍和原理 我们先来看一张被使用过很多次的Trucker 分解图

欢迎来到 豪哥 的博客 1万+

CSP-J 初赛模拟卷1 题解

只有一棵子树有后继,其他的都是叶结点才能保证树的深度最大,此时还剩(n-5)个结点,最后加上2,得到(n-3),即为答案。题解:先修改p的指针域,让它的左指针域指向q,然后再让q的右指针域赋值给p的右指针域,再然后修改q的右指针域使其指向p,最后需要改变的指针域就是原先q结点的后继节点的左指针域内容。设n个元素的入栈序列是1,2,3,...,n,出栈序列为p1,p2,...,pn,若p1=n,则pi(1≤i≤n)的值为(1)输入的三个数中,第二个数应是[0,11]上的整数,否则会出现数组越界的问题。

Sat77GryHp_Pro的博客 2805

Android Studio下的"数字签名"

数字签名

农展飞的博客 2375

从内外参推导IPM变换方程及代码实现(生成AVM环视拼接图)

最近想实现AVM拼接,看了不少博客和论文,不过比较愚钝,一直没能很好理解原理,尤其是怎么在实现时把下文中Z1和Z2消除的,所以严谨的推导了一下对应的公式,如有不对,水平有限,烦请指出~IPM变换(逆透视变换),顾名思义,即将正常透视效应消除的变换,变换结果为鸟瞰图BEV(俯视图);AVM环视拼接一般是将车身前后左右的四个鱼眼相机拼接成环视图(也是俯视),其使用的单应矩阵将四个相机转到同一个俯视坐标系。

mxdsdo09的博客 4172

Android --- 第八期面试题

每日分享面试题 1、横竖屏切换时候 activity 的生命周期? 1、不设置 Activity 的 android:configChanges 时,切屏会重新调用各个生命周期, 切横屏时会执行一次,切竖屏时会执行两次 2、设置 Activity 的 android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次 3、设置 Act...

王号伦-WZL 206

raw (R/G, B/G) 色度域从白点筛选到 mired 直方图的完整构建流程

raw 域用draw​δraw​筛出白点后,。,与 CIE uv 域流程逐步对应。

大熊 39

Joule 终于会说 ABAP 了:从 ADT 提效到 ABAP AI SDK + ISLM 自建企业级 AI 场景的落地路线

生成结构化摘要(故障现象、初步原因、处理动作、备件消耗)自动给出建议分类(电气、机械、软件、网络)把摘要回写到工单抬头,方便后续统计与知识沉淀如果你用 CAP 来做这类服务,通常会在 Node.js 层封装一个对 AI Hub 的调用,再通过 OData 或 Event 把结果写回 SAP。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 342

Android 数字签名

按照自己的理解,写下总结。 1.  数字证书      正常是由数字证书管理心发给个人或者组织的证书,相当于身份证,用来唯一识别一个发送者,这点在通过网络签署合同时很重要,避免对方抵赖合同不是他发送的。但是android 上证书是自己生成的,因为不管是谁开发的应用,默认都是允许安装的。 2. 数字签名    数字签名是用来确认发送者身份和发送信息完整性的。发送者将把原始数据摘要信息用私有进

学无止境,静下心来! 944

YOLO11涨点优化:卷积魔改 | 可变形条带卷积(DSCN),魔改轻量DCNv3二次创新

如何跟YOLO11结合:1)和C3k2创新性结合

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 987

关于Android数字签名的描述

(1) 所有的应用程序都必须有数字证书。Android系统不会安装一个没有数字证书的应用程序。 (2) Android程序包使用的数字证书可以是自签名的,不需要一个权威的数字证书机构签名认证。 (3) 如果要正式发布一个Android,必须使用一个合适的私钥生成的数字证书来给程序签名,而不能使用adt插件或者ant工具生成的调试证书来发布。 (4)数字证书都是有有效期,Android只是在应用程序安

hzy670800844的博客 1310

AI测试:手把手教你用AI生成测试用例并支持导出Excel「喂饭教程」

如果我告诉你,有一种方法,你只需要输入需求内容,AI就能自动帮你设计出结构清晰、覆盖全面的测试用例,并直接生成一份精美的Excel表格,你会不会心动?

blues_C的博客 3885

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

如何发布你的Android应用程序

中文原文连接:http://www.aqee.net/some-things-to-know-about-publishing-android-apps/ 到目前为止,在Android交易市场(Android Market)里,已经有我的2个应用程序了,所以,我想写出一点关于Android应用程序发布过程的东西,用来告诉那些想发布自己的应用程序的朋友们,在发布过程中会遇到哪些的事情。

harry_helei的专栏 1493

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

如何发布Android应用程序

本文是从 Some Things To Know About Publishing Android Apps 这篇文章翻译而来。 到目前为止,在Android交易市场(Android Market)里,已经有我的2个应用程序了,所以,我想写出一点关于Android应用程序发布过程的东西,用来告诉那些想发布自己的应用程序的朋友们,在发布过程中会遇到哪些的事情。   在发布你的应用程序之前,你首先

306

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

如何发布android 应用程序

到目前为止,在Android交易市场(Android Market)里,已经有我的2个应用程序了,所以,我想写出一点关于Android应用程序发布过程的东西,用来告诉那些想发布自己的应用程序的朋友们,在发布过程中会遇到哪些的事情。 在发布你的应用程序之前,你首先要做的事情是为你的应用做数字化签名认证。在Google的Android开发者网站上,有一个整版都是介绍签名问题页面,但如果你使用的是

spftay的专栏 327

“.NET研究”如何发布你的Android应用程序

  本文是从 Some Things To Know About Publishing Android Apps 这篇文章翻译而来。     到目前为止,在Android交易市场(Android Market)里,已经有我的2个应用程序了,所以,我想写出一点关于Android应用程序发布过程的东西,用来告诉那些想发布自己的应用程序的朋友们,在发布过程中会遇到哪些的事情。   在发布...

weixin_34049948的博客 81

android面试题总结加强再加强版(三)

26.如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态? 当你的程序中某一个Activity A 在运行时中,主动或被动地运行另一个新的Activity B  这个时候A会执行 Java代码 public void onSaveInstanceState(Bundle outState) {          super.onSav...

洪斌的博客 145

android面试题

转自:http://hongqiang.iteye.com/blog/1630857,尊重原创 26.如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态? 当你的程序中某一个Activity A 在运行时中,主动或被动地运行另一个新的Activity B 这个时候A会执行 Java代码 public void onSaveInstanceState(Bun...

weixin_30716725的博客 129
上一篇: IntentService 的好处
xiaoj13
博客等级 码龄18年 4粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值