问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

通用系统镜像 (GSI):Android 开发者的必备工具

创作时间:
作者:
@小白创作中心

通用系统镜像 (GSI):Android 开发者的必备工具

引用
1
来源
1.
https://android-docs.cn/topic/generic-system-image?hl=zh-cn

通用系统镜像(GSI)是Android系统的一个重要组成部分,它允许开发者在各种Android设备上运行未修改的Android开源项目(AOSP)代码。通过使用GSI,开发者可以在不同设备和Android版本上进行应用测试,从而提高应用的兼容性和质量。本文将详细介绍GSI的概念、使用方法和注意事项。

通用系统镜像 (GSI) 是一个纯 Android实现,包含未修改的 Android 开源项目 (AOSP) 代码,可在各种 Android 设备上运行。
应用开发者可以安装和运行最新的 Android GSI,以便在各种现有的 Android 设备上执行应用测试,并使用来自不同 Android 操作系统版本阶段的 GSI,包括开发者预览版和 Beta 版本。将 GSI 添加到您的验证和测试流程中可以为您带来一些额外的好处

  • 在更多真实设备上进行更广泛的测试
  • 有更多时间修复应用兼容性问题
  • 有更多机会修复应用开发者报告的 Android 兼容性问题
    GSI 项目是开源的,并通过提供更多方法来提高应用和操作系统的质量,从而帮助改善 Android 生态系统。


图 1:GSI 可安装在各种设备上,有时甚至可以安装在设备制造商未提供其自身系统镜像的 Android 版本上。

GSI 为其安装在其上的所有设备提供相同的核心系统功能。换句话说,GSI 不包含设备制造商的自定义项。因此,您可能会在以下情况下遇到行为差异

  • 涉及 UI 的交互
  • 请求更新硬件功能的工作流程

检查设备兼容性

GSI 只能在具有以下特性的设备上运行

  • 引导加载程序已解锁。
  • 完全符合 Treble。
  • 使用 Android 9(API 级别 28)或更高版本启动。从早期版本升级到 Android 9 的设备可能支持也可能不支持 GSI。

警告:尝试将 GSI 刷入不兼容的设备可能会导致您的设备无法启动。在刷入之前,务必确认您的设备兼容,并按照设备制造商提供的安装步骤操作。GSI 不支持回滚,因此您需要恢复方法和原始系统 ROM 才能恢复到原始系统。

要确定您的设备是否可以使用 GSI 以及您应该安装哪个 GSI 操作系统版本,请执行以下操作

  1. 运行以下命令检查 Treble 支持
adb shell getprop ro.treble.enabled

如果响应为
false
,则该设备与 GSI 不兼容,您不应继续。如果响应为
true
,则继续执行下一步。

  1. 运行以下命令检查跨版本支持
adb shell cat /system/etc/ld.config.version_identifier.txt \
| grep -A 20 "\[vendor\]"

注意:根据您的平台,前面命令中的配置文件中可能有也可能没有版本标识符。

在输出中,在
[vendor]
部分查找
namespace.default.isolated

如果该属性的值为
true
,则该设备完全支持供应商原生开发套件 (VNDK),并且可以使用任何高于设备上操作系统版本的 GSI 操作系统 (OS) 版本。尽可能使用最新的可用 GSI 操作系统版本。

如果该属性的值为
false
,则该设备不完全兼容 VNDK,并且该设备只能使用与设备上操作系统版本相同的 GSI。例如,不兼容 VNDK 的 Android 10(API 版本 29)设备只能加载 Android 10 GSI 镜像。

  1. GSI CPU 架构类型必须与设备的 CPU 架构匹配。要查找 GSI 镜像的正确 CPU 架构,请运行以下命令
adb shell getprop ro.product.cpu.abi

使用输出确定在刷入设备时要使用的 GSI 镜像。例如,在 Pixel 5 上,输出将指示 CPU 架构为
arm64-v8a
,因此您将使用
arm64
类型的 GSI。

下载 GSI

根据您的开发需求,有几种方法可以获取 GSI

  • 对于 Android 预览版 GSI 和包含 GMS 的 Android GSI,请从GSI 发行页面下载镜像。
  • 对于不包含 GMS 应用的预构建 GSI 镜像,请从 AOSP CI 网站下载镜像
  • 要构建不包含 GMS 的 Android GSI,请从AOSP下载源代码并构建您的 GSI。

重要:设备制造商不应使用这些版本的 GSI 来运行和提交合规性测试。相反,设备制造商应继续参考其现有的沟通渠道,例如其技术客户经理,以进行与合规性测试相关的活动。

安装 GSI

注意:如果您的设备已采用Android 验证启动 (AVB),请下载并刷入以下镜像以在刷入 GSI 之前禁用 AVB:vbmeta.img

安装 GSI 取决于设备。请参考您的设备制造商了解确切的工具和步骤。对于 Google Pixel 设备(例如 Pixel 3 及更新版本),有几种安装方法

  • 手动刷入 GSI 镜像:请参阅刷入 GSI 的要求
  • 对已运行 Android 10 或更高版本的设备使用动态系统更新 (DSU):请参阅动态系统更新页面

提供反馈

GSI 旨在帮助您在 Android 上验证您的应用。我们感谢您对镜像、工具以及在您的设备上使用 GSI 的流程的反馈。

要通知我们错误或功能请求,请使用专用的问题跟踪程序组件提交 GSI 相关问题。

其他资源

  • 了解通用系统映像 (GSI) 的影响(Android 开发者峰会 '18)
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号