动态系统更新 (DSU) 是 Android 10 中引入的一项系统功能,具有以下用途
- 将新的 GSI(或其他 Android 系统映像)下载到您的设备上。
- 创建一个新的动态分区。
- 将下载的 GSI 加载到新分区上。
- 将 GSI 作为访客操作系统引导到设备上。
DSU 还可让您轻松在当前系统映像和 GSI 之间切换,以便您在不损坏当前系统映像的前提下试用 GSI。
DSU 要求
DSU 依赖于 Android 动态分区功能,并要求 GSIs 已由 Google 或您的 OEM 厂商签名,作为可信的系统映像。
DSU 是您的设备制造商提供的一项功能。请参阅您的设备制造商的支持页面了解可用性。自 Android 10 Beta 4 版本发布以来,Google 已在 Pixel 3 及更新设备上启用了 DSU。
使用 DSU 和命令行安装 GSIs
本部分介绍了如何使用 DSU 和命令行安装 GSI。
启动 DSU
使用 adb
工具启动 DSU。
从GSI 发布页面或另一个 GSI 映像服务器下载 GSI。
使用 gzip 压缩 GSI。
gzip -c system_raw.img > system_raw.gz
将 GSI 推送到设备。
adb push system_raw.gz /storage/emulated/0/Download/
使用
adb
启动 DSU。adb shell am start-activity \ -n com.android.dynsystem/com.android.dynsystem.VerificationActivity \ -a android.os.image.action.START_INSTALL \ -d file:///storage/emulated/0/Download/system_raw.gz \ --el KEY_SYSTEM_SIZE $(du -b system_raw.img|cut -f1) \ --el KEY_USERDATA_SIZE 8589934592
类似这样的通知会显示安装状态。
启动到 GSI

DSU 安装 GSI 后,系统通知抽屉中会显示一个 DSU 菜单作为持久通知(见图 1)。
此时,您可以执行以下操作之一
- 点按 Restart 启动到 GSI。
- 点按 Discard 清理 GSI。
切换回设备的原始系统映像
使用 GSI 测试完应用后,您可以执行冷启动,将系统引导回其原始系统映像。
在设置下次重新启动使用 GSI 时,您可以通过启用 Sticky 模式让 GSI 在多次启动周期内保持安装状态(直到丢弃),或者通过停用 Sticky 模式让它仅用于一个启动周期。
以下命令启用 Sticky 模式
adb shell gsi_tool enable
以下命令停用 Sticky 模式
adb shell gsi_tool disable
adb shell gsi_tool enable -s
adb shell gsi_tool disable
使用 DSU 和 DSU Loader 安装 GSIs
Android 11 引入了 DSU Loader,这是一个可在设备开发者选项中使用的工具,可让您完全通过系统界面下载、安装和管理 GSIs。
要在运行 Android 11 或更高版本的设备上使用 DSU Loader 安装 GSI,请按以下步骤操作
- 在您的设备上启用开发者选项。
- 打开设备的“设置”应用,然后依次点按 开发者选项 > DSU Loader。
选择要在设备上安装的 GSI。
同意 GSI 条款和条件。
同意条款和条件后,您选择的 GSI 开始下载。您可以通过 DSU 通知查看下载状态。
下载完成后,点按 Restart 以启动 GSI。
如果您想切换回设备的原始系统映像,请在 DSU 系统通知中点按 Restart。
提供反馈
您的反馈有助于我们改进 DSU 和其他 GSI 功能。您可以通过提交GSI bug并在 Stack Overflow 上讨论相关主题来分享您的想法并报告 GSI 问题。