自2015年8月以来,谷歌每月发布安全公告。这些安全公告包含一系列已修复和已公开的安全漏洞,这些漏洞将影响安卓框架、Linux内核和其他封闭源代码供应商组件。公告中的每个漏洞都被谷歌发现或披露给了公司。每个列出的漏洞都有一个通用漏洞和披露(CVE)号,以及相关参考、漏洞类型、严重性评估和受影响的AOSP版本(如果适用)。不过安卓安全补丁的工作原理虽然看似简单,其实背后有一些复杂的来回操作,让你的手机每个月或者(希望)能拿到近一个月的补丁。
安全补丁的实际构成是什么?
您可能已经注意到,每个月实际上有两个安全补丁级别。这些补丁的格式是YYYY-MM-01或YYYY-MM-05。虽然YYYY和MM分别代表年份和月份,“01”和“05”实际上并不代表安全补丁级别发布的月份。相反,01和05实际上是每月同一天发布的两个不同的安全补丁级别——末尾有01的补丁级别包含了对安卓框架的修复,但不包括厂商补丁或上游的Linux内核补丁。如上所述,厂商补丁指的是封闭源组件的修复,比如Wi-Fi和widcomm。由-05指示的安全补丁级别包括这些供应商补丁和Linux内核中的补丁。请看下表,可能有助于你理解。
当然,一些原始设备制造商也可能选择将其补丁和更新打包为安全更新。大多数原始设备制造商在安卓上都有自己的功能,所以只有当你可能有华为手机上不存在的三星手机漏洞时,这才有意义。许多原始设备制造商也发布了自己的安全公告。
谷歌像素
华为
水平规水准仪(Level Gauge)
摩托罗拉公司
HMD环球
猎户座腰带
从谷歌到手机的安全补丁时间表
安全补丁的时间表跨度约为30天,尽管并非每个原始设备制造商都能利用时间表的全部长度。例如,让我们看看2019年5月的安全补丁,我们可以细分创建此补丁的整个时间表。像Essential这样的公司试图在谷歌Pixel发布安全更新的同一天发布,那么他们应该怎么做呢?简单明了的回答是,他们是安卓合作伙伴。2019年5月的安全公告在5月6日发布,谷歌Pixels和Essential Phone都将很快更新。
成为安卓合作伙伴意味着什么?
不仅每个公司都能成为安卓合作伙伴,虽然大家公认每个主要的安卓OEM都是一样的。安卓合作伙伴是被授权在营销材料中使用安卓品牌的公司。只要它们满足兼容性定义文件中概述的要求(CDD)并通过兼容性测试套件(CTS)、供应商测试套件(VTS)、谷歌测试套件(GTS)和其他测试。在安全补丁的过程中,公司和是否是安卓合作伙伴有明显的区别。
发布安全公告前1-2天,合并到AOSP后,可以使用安卓框架补丁。
一旦可用,您可以选择上游的Linux内核补丁。
根据与SoC供应商的协议,是否有SoC供应商提供的闭源组件维修计划。请注意,如果供应商已授予OEM对封闭源组件源代码的访问权限,则OEM可以自行解决问题。如果原始设备制造商不能访问源代码,他们必须等待供应商发布修复。
如果你是安卓合作伙伴,马上就会轻松很多。至少在公告发布前30天,安卓合作伙伴将被告知所有安卓框架问题和Linux内核问题。谷歌为原始设备制造商合并和测试的所有问题提供补丁,尽管供应商组件的补丁取决于供应商。比如早在2019年3月20日*,安卓合作伙伴就获得了2019年5月安全公告中披露的安卓框架问题补丁。那是很多额外的时间。
*注意:在公开发布之前,谷歌总是可以(并且经常)更新补丁以获得最新的安全公告。如果发现新的漏洞和错误,由于关键组件被破坏,谷歌会决定从每月公告中删除一些补丁,谷歌会更新补丁来解决以前版本的补丁所产生的错误,那么这些更新可能会发生。其他原因。
为什么我要等很久才能收到手机上的安全补丁?
尽管安卓合作伙伴(阅读:所有主要原始设备制造商)在发布前确实收到了安全补丁,但许多人痛苦地意识到,他们可能在发布后的几个月内都不会收到安全更新。这通常归结为四个原因之一。
原始设备制造商可能需要进行重大的技术更改来适应安全补丁,因为它可能与现有代码冲突。
供应商很少为封闭源代码组件提供更新的源代码。
操作员可能需要一些时间来验证。
公司可能不希望在不同时发布功能的情况下发布安全更新。
虽然所有这些都是企业不发布安全补丁的正当理由,但最终用户并不总是关心它们。诚然,最终用户并不总是关心安全补丁。
尽管它们应该这样做。诸如Project Treble,扩展的Linux LTS和Project Mainline之类的举措正在帮助消除合并这些安全补丁的技术难题,但这不足以使OEM厂商始终如一地努力发布更新。借助通用内核映像或GKI,SoC厂商和OEM厂商可以更轻松地合并上游Linux内核补丁,尽管我们可能要等到明年才能看到第一批具有GKI的设备。但是,一个有趣的信息(大多数人不知道)是,主要的OEM 必须在设备启动后的一年之内提供“至少四个安全更新”,而总体上要进行两年的更新。Google尚未确认这些特定条款,但该公司确实确认它们“致力于在[OEM]协议中建立安全补丁”。对于Android企业推荐(AER)设备,要求这些设备在发布后的90天内(三年内)获得安全更新。坚固的AER设备需要获得 5年的安全更新。Android One设备应该每月获得3年的安全更新。
安全补丁中包含什么?
安全补丁只是另一个更新,尽管通常会因对单个框架和系统模块的更改而变小得多,而不是对整个系统进行改进或更改。Google每月向设备OEM提供一个zip文件,其中包含当前仍支持的所有主要Android版本的补丁程序以及一个安全测试套件。该测试套件可帮助OEM弥补安全补丁的不足,以确保他们不会错过任何东西,并确保补丁已正确合并。随着月份的继续,Google可能会进行较小的修订,例如确定一个特定的补丁是可选的,尤其是在实施该补丁时遇到麻烦时。
定制ROM呢?
如果您的智能手机没有获得很多安全更新,则不一定意味着您最好切换到自定义ROM。确实会获得本来不会得到的安全更新,但这只是故事的一半。解锁引导加载程序会使您容易受到设备的物理攻击,即使在软件方面,安全性也得到了增强。这并不是说您不应该使用自定义ROM,只是在使用其他ROM时,如果引导加载程序保持锁定状态,这些问题将不适用。如果您更担心软件方面的问题,那么使用获得频繁安全补丁程序的自定义ROM还是更好。
但是还记得我们曾经讨论过YYYY-MM-01和YYYY-MM-05补丁之间的区别吗?-05补丁程序级别包含Linux内核补丁程序以及供应商补丁程序-适用于封闭源代码软件的补丁程序。这意味着定制ROM开发人员将不受他们所开发的OEM的支配,并且无论OEM是否发布更新的Blob。这对于仍由制造商更新的设备来说是很好的,但是对于没有更新的设备,所应用的补丁程序只能应用于Android框架和Linux内核。这就是为什么LineageOS的信任界面显示了两个安全补丁程序级别-一个是平台,另一个是供应商。即使不支持设备的自定义ROM不能完全集成所有最新的修补程序,它们也将比旧的,过时的ROM更安全。