Skip to content

新加 fetch 项:新根目录从空补全组件(命令行和补全组件.bat) - #12

Merged
qiyinxi merged 1 commit into
ModAVD:mainfrom
qiyinxi:items/fetch-from-empty
Nov 5, 2026
Merged

qiyinxi merged 1 commit into
ModAVD:mainfrom
qiyinxi:items/fetch-from-empty

Conversation

@qiyinxi

@qiyinxi qiyinxi commented Nov 5, 2026

Copy link
Copy Markdown
Member

新加一项 fetch:打完包以后用组包目录跑,在新的根目录里从空补全组件,命令行和「补全组件.bat」两条路各走一遍。

0.37.0–0.38.0 的「补全组件.bat」装系统镜像必然失败,回归一直没抓到:别的项都把 adb 和系统镜像链到官方 SDK,不走补全组件。

做什么

  • 每一路都搭一个只够补全组件用的根目录:包根的批处理、tools\、sdk\emulator 里的 emulator.exe 和 source.properties。
  • 命令行:跑 tools\modavd.exe components fetch --accept-license --keep-downloads --json。两样都要装好,而且都是这次装的。
  • 批处理:
    • 另搭一个根目录,把上一步留下的两个 zip 放进 downloads\,不再重下 1.5 GB。
    • 用重定向的输入跑「补全组件.bat」。新版批处理(tools\ 里有 components-sources.txt)先选下载源,回车是自动,再同意许可协议;老版只问许可协议。结尾的 pause 也喂一个回车。
    • 退出码要是 0;新版还要把下载源记成 auto。
  • 两个根目录最后都再跑一次 components fetch,两样都要算齐全、跳过。这里用的是 fetch 的严格规则,不是 status 的宽松规则。
  • 只有取许可协议清单要联网。-Cache(本机配置 ComponentCache)给了放着两个 zip 的目录时,一次都不下载;没给时只下载一次。
  • 不开模拟器,不起 adb server,跑完删掉根目录。
  • suites/release.psd1 的 PostPackage 加上 fetch -Package <组包目录>,所有范围都提示跑,约 1–2 分钟。README 的项目表、本机配置表和 local.example.psd1 跟着补上。

怎么验证的

用的是 Windows、pwsh 7,从网上下载(没给 -Cache):

  • 0.38.0 正式包:pass:false。
    • 命令行那遍 40 秒装好;
    • 批处理那遍退出码却是 0:老版批处理的最后一行是 pause,PowerShell 脚本的退出码被它吞了;
    • 是再跑一次 fetch 时,发现系统镜像不齐全,才判的失败。
    • 也就是说,这一项能抓住 0.38.0 这个问题,哪怕批处理自己报的是成功。
  • 模拟的 0.38.1 包:0.38.0 的 tools\modavd.exe 和 emulator.exe,配上 去掉随包的三个批处理和三个脚本,补全组件和问题反馈改由管理器和命令行做 ModAVD#119 的批处理和 components-sources.txt。结果 pass:true:命令行 42 秒、批处理 20 秒装好,下载源记成 auto。
  • 全仓库的 .ps1 / .psd1 语法解析都通过,suites/release.psd1 和 local.example.psd1 都能导入。

Refs ModAVD/ModAVD#45

0.37.0–0.38.0 的「补全组件.bat」装系统镜像必然失败,别的项都把组件链到官方 SDK,一直没测出来。
打完包用组包目录跑:命令行 components fetch 和重定向输入的批处理各一遍,两样都要装好,
再跑一次 fetch 都算齐全;新版批处理还要把下载源记成 auto。只有取许可协议清单要联网。

Refs ModAVD/ModAVD#45
@qiyinxi
qiyinxi merged commit 39788bc into ModAVD:main Nov 5, 2026
1 check passed
qiyinxi added a commit to qiyinxi/ModAVDE2E that referenced this pull request Nov 6, 2026
- upgrade.ps1:说明用「在已有测试根上做」的版本,加上 ModAVD#10 的判法;ModAVD#10 的 SDK 模式代码照搬。
- upgrade-version 测试:ModAVD#10 的新场景照搬,调用改成传已有的测试根。
- 本机配置示例、README:去掉不再用到的 OfficialSdk,留下 ModAVD#12 的 ComponentCache;README 加上 fetch 那一行。
- fetch.ps1:工作目录也不能在生产根目录下。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant