类型
状态
日期
链接
描述
图标
密码
分类
标签
DSU的初衷是为了让开发者可以便捷运行不同系统版本的GSI,以便执行应用测试等开发工作。该文章面向有一定刷机基础知识和动脑能力的普通用户,对其两大用途:无损体验新的Rom、无损提取boot镜像——进行尽量高效的指导并总结经验。如有错误敬请评论指出。
基础知识
使用Treble信息来查看自己的设备对DSU的支持情况
DSU:动态系统更新,Android 10中引入的一项系统功能,可以在设备上将GSI作为来宾操作系统启动,使设备能在不破坏原系统和数据的情况下运行任意Android镜像
GSI:通用系统映像,一个zip或gz格式的Rom包,像Windows可以安装在任何x86平台一样,GSI可在各种Android设备上安装并运行,因此它通常是原生或类原生系统,且指纹,通话等依赖厂商驱动的功能会无法工作。GSI既能被DSU侧载,也能直接刷入设备
📝GSI安装指南
原生方案-快速尝鲜
想要在大多数设备上快速体验原生Android?只需3步即可完成
需求:
支持DSU的设备,无需解锁BL
设备剩余空间≥40%
步骤:
- 激活开发者选项, 从中找到DSU Loader
- 选择一个GSI即可自动下载并安装,带GMS即为含Gapps
- 安装完毕后顶部出现通知,点击重启进入安装好的GSI
进阶方案-任意刷入
原生方案只提供了原生的GSI, 想要体验类原生或其它Rom就要使用第三方软件
刷入三方GSI必须解锁BL。如果你不解锁,可能会损坏设备,也可能出现其它特殊情况
需求:
解锁了BL且支持DSU的设备。
设备剩余空间≥40%
自行准备的GSI包
Root或adb权限
步骤:
- 下载安装DSU Sideload并打开,选择想要刷入的GSI包
- 授予Root或根据提示执行adb命令以得到dsu的权限
- 安装完毕后顶部出现通知,点击重启进入安装好的GSI
非必要不使用-直接覆盖
在某些奇怪的旧版本安卓设备上,原厂自带的系统可能限制功能或相当拉跨。为了能更好的利用硬件设备,或仅仅为了提取boot镜像,可以选择直接刷入GSI覆盖原系统
需求:
解锁了BL的设备,无需支持DSU
自行准备的GSI包
步骤:
- 设备重启至fastboot,电脑解压GSI包,提取出img文件
- 将所有img文件刷入到对应分区
- 清除data分区数据
- 重启设备
🔍GSI获取指南
命名规则
如果手机采用AB/VAB分区,应选择A/B类型GSI;如果手机支持System as Root(SAR),也应选择A/B类型GSI。两者均不支持则应选择A_only类型GSI——这通常是Android12前的机型
VNDK:供应商原生开发套件,支持的设备可以使用比原始系统版本更高的任何GSI系统版本,否则只能使用与原系统版本相同的GSI。
VNDK lite:有些设备VNDK为lite模式(与A/B和A_only无关),此时应该选择名称中含vndklite字样的GSI。
如果GSI包有silm,vanilla,bvN这种命名,就是不含GAPPS的包,基础套件来自AOSP。其它的命名如bgN,GMS即为含Gapps,包的体积更大。根据你使用GSI的目的选择。
CPU架构:通常分ARM32位与ARM64位,依据情况选择
一些下载站点
⭐DSU尝鲜Rom:自制简易GSI包
众多的类原生Rom可谓琳琅满目,如果你希望尽快找到自己喜欢的Rom而又不希望反复清数据刷机,使用DSU无疑是最好的解决方法。
有时你能找到的类原生官方的GSI包,有时还是需要下载适合自己设备的刷机包后手动做一个GSI包:只需从中拿出下面五个img镜像,压缩为zip或gz即可。注意不要使用Windows自带压缩,压缩等级应为仅存储。打包完就是一个简单的GSI包。
- vendor.img
- system_ext.img
- system.img
- product.img
- odm.img
通常下载的刷机包有三种,获取上述img文件方法为:
- 普通Fastboot包——解压即得
- 含super.img的Fastboot包——使用MIO-KITCHEN-SOURCE解包super镜像到img文件取得
- Rec刷机包——使用payload_dumper解包payload.bin文件取得
不建议将MIUI等设备厂商高度定制的ROM按此方法制作,即使是准备安装在对应ROM的设备上。因为这可能导致系统出现严重问题,如卡logo或输入法、启动器、系统界面均无法正常运行。亦有可能设备每次重启都会回到GSI(未受粘滞模式影响且禁用粘滞模式命令不起作用),这种情况下重刷初始系统也不会解决问题,唯一的解决方案就是清除设备全部数据。
🛠️DSU提取Boot镜像以Root设备
在找不到刷机包又不方便深刷的设备上。该法是提取boot获取Root的最佳方案。这是承重墙大佬的演示:1000元的山寨机系统太难用?没关系,我会出手!
userdebug版本的GSI仅需在开发者选项开启开关即支持命令行Root权限,GSI又使用原系统的boot镜像启动,这使得DSU侧载GSI提取原系统boot变得可行。
条件:已解BL锁且支持DSU的设备
首先使用adb连接设备并进入shell,取得su权限
eMMC闪存设备提取boot
UFS闪存设备提取boot
设备采取A_only分区,需要提取boot
设备采取AB或VAB分区,需要提取boot_a与boot_b
设备出厂安卓13以上,需要提取init_boot_a与init_boot_b
提取完成后使用Magisk修补所有提取出的镜像,再使用命令把所有镜像刷回对应分区。重启进入主系统后,直接安装Magisk即可使用。
⌨️DSU相关命令
启用粘滞模式,每次重启默认进入GSI系统
禁用粘滞模式,GSI启动失败系统会自动执行
检查设备是否支持Treble
检查设备是否支持跨版本安装。需在输出的
[vendor]
部分中查找namespace.default.isolated
使用adb启用DSU,文件名system_raw.gz,用户空间设置为8GB
尾注
即使问题几率再低,也务必做好备份
没有人会为你的数据损失或机子变砖负责
- 作者:Fosvcat
- 链接:https://www.fosvcat.top/article/dsu
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。