从而有更多的时间来针对Android的重大变化来测试其应用程序

2020-06-29 10:17:28 来源: INeng财经

在发布Android 8.0 Oreo的同时,Google推出了Project Treble:这是对Android OS框架与供应商HAL和Linux内核进行通信的主要重新配置。Treble是旨在减少Android平台版本和安全补丁碎片的一项重大举措,并且要求所有使用Android Pie启动的Android品牌设备都支持Project Treble。OEM和供应商通过启动通用系统映像(GSI)(来自AOSP的Android的纯库存版本)并通过供应商测试套件,来测试Treble兼容性。(VTS)和兼容性测试套件通用系统映像(CTS-GSI)。事实证明,GSI不仅可以帮助OEM的软件工程师测试Treble兼容性,而且还为XDA上的大型自定义ROM社区打开了大门。对于Android Q版本,Google希望使GSI对另一组有用:应用程序开发人员。

由于任何给定的Android平台版本的第一个稳定版本和源代码发布通常在八月发布,因此想要在真实设备上测试下一个Android版本的开发人员如果不想等待,通常需要访问Google智能手机。更新以达到自己的硬件。但是,Google 去年与OEM合作,将Android P beta引入了多个设备,今年他们又跟进了Android Q beta。除了正式的Android Q beta,Google今年还发布了正式的Q beta GSI因此,任何拥有与Project Treble兼容设备的开发人员都可以安装最新的Q版本,而不必等待数月的构建才可以到达他们的设备。这种测试下一个Android版本的新方法为开发人员提供了更多的机会,从而有更多的时间来针对Android的重大变化来测试其应用程序。

不幸的是,当前安装GSI的方法可能很困难。它需要解锁自举程序,该装置擦除所有用户数据和/或排尿的保修,并经由闪烁的图像FASTBOOT协议。如果应用程序开发人员的设备甚至允许解锁bootloader,那么这并不是一个快速简单的过程。这就是为什么在过去的几个月中,谷歌一直在研究一种引导GSI的新方法。输入称为动态系统更新或DSU的新功能。

(此功能以前以“实时图像”,“动态Android”和“轻按Android”的名称开发,因此,如果Google在几周或几个月内再调用其他功能,请不要感到惊讶。)

Android Q中的动态系统更新

DSU功能的目标是允许开发人员在不干扰当前安装的情况下启动到GSI中。这意味着引导加载程序无需解锁,用户数据也无需擦除。由于Google通过ADB提供了命令行界面以及可以通过意图进行控制的应用程序,因此安装过程也大大简化了。使用DSU引导GSI的外观如下:

在此视频*中,运行Android Q beta 3 的Google Pixel 3 XL重新启动为GSI。在这种环境下,应用程序开发人员可以安装和测试其应用程序的Q API兼容性。完成测试后,他们只需重新引导回设备上的常规Q beta 3软件即可。您基本上是双重引导GSI,因此可以安全地测试应用程序!

*我们在2019年Google I / O上录制了此视频,当时DSU尚未公开可用,因此Google对胶片Pixel 3 XL上构建的Q beta 3进行了稍微修改,以包括DSU支持。如果运行Q beta 4及更高版本的设备满足以下要求,则有资格支持DSU。

动态系统更新的要求

对于Google而言,获得本质上双重启动和运行的任务并非易事。Google在DSU的测试平台Pixel 3上,必须对分区的管理方式进行重大更改。因此,DSU支持的第一个主要要求是设备支持动态分区。动态分区涉及一个实际的存储分区,该分区被划分为可调整大小的逻辑分区,例如系统,供应商,odm,oem,产品等。在安装GSI期间,通过从现有分区中使用未使用的块来为新的系统分区和用户数据分区保留空间。用户数据分区。由于这些新分区的大小可能为数GB,因此DSU支持仅对逻辑分区有意义,否则设备将需要为GSI安装永久保留数GB的存储空间。

其他要求包括决定用于引导至恢复,系统还是逻辑分区的ramdisk,以及用于存储GSI元数据的元数据分区。根据Project Treble负责人Iliyan Malchev的说法,支持DSU的基本要素是Android Q的启动要求。我们不确定支持DSU所需的一切是否都是 Android Q的启动要求,但是我们可以假设大多数(如果不是全部)使用Android Q启动的设备都可以即使Google目前不要求DSU,也支持DSU。到目前为止,只有Pixel 3,Pixel 3 XL,Pixel 3a和Pixel 3a XL具有动态分区,而在这些设备中,只有Pixel 3和Pixel 3 XL在Android Q beta 4中支持DSU。 Google希望OEM能够启用该功能,因为它可以简化安全测试Treble兼容性。例如,OEM软件工程师可以将GSI 放在SD卡上,以便他们可以在多个设备上快速启动以测试Treble兼容性。

动态系统更新的安全性

由于DSU本质上引入了第二种操作系统,因此Google需要确保新安装不会被篡改以破坏设备的完整性。因此,对于GSI安装,原始安装使用了相同的基本安全保护措施:Android验证启动和SELinux策略。此外,只有具有INSTALL_DYNAMIC_SYSTEM签名|特权的应用程序才能启动GSI安装,而具有MANAGE_DYNAMIC_SYSTEM签名许可权的应用程序可以启用/禁用或擦除GSI安装。这意味着只有受信任的系统级应用程序才能与DSU一起使用。

为了确保原始用户数据受到保护,Google 在Android Q中添加了额外的保护机制。称为“ 检查点 ”,该功能通过将检查点分区恢复到原始状态来防止破坏用户数据。但是,检查点不仅对DSU有用。它们还用于防止不良的项目主线 APEX模块和A / B OTA更新。(具有A / B分区的设备已经具有回滚保护,但是这些回滚需要恢复出厂数据,而用户数据检查点则不需要。)

安装GSI

如果您的设备支持Pixel 3系列等DSU,则安装GSI很容易。您首先必须确保通过以下两种方式之一启用动态系统功能标志:

然后,从Google或设备的OEM 下载最新的Android Q beta GSI 。(DSU仅允许安装由Google或OEM签署的GSI。)下载后,使用simg2img将稀疏映像转换为原始映像。使用gzip打包原始图像,然后将生成的存档复制到设备外部存储设备(例如/ data / media / 0 / Download)或实际外部存储介质(例如物理SD卡)上的某个位置。最后,出于正确的意图启动DynamicSystemInstallationService应用程序以开始安装:

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。