合并受阻
libing-pipeline创建中,请等待……


欢迎来到 BoostKit 社区
Hey @maoyue0730 , 感谢你对社区的贡献.
机器人使用手册
有关指令的使用,可以点击 此处 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。
联系指引
有疑问可以联系 SIG: BoostCPH ,
维护者是: @lianqiye, @maoyue0730, @rebecca-liu66 ,
优秀贡献者是: @lindv, @maoyue0730 .


Ascend docs pipeline is running...


✅ 跳过 docs ci 检查,没有需要检查的文档文件


变更摘要
本次 PR 为云手机启动脚本新增"共享数据卷"启动方式的支持:在配置文件 cfct_config 中增加 START_SHARE_DATA 开关,并在 cfct_video 的 create_build_prop() 和 container_run() 中分别写入对应的 Android 属性和传递给 base_box.sh 的启动参数。
主要改动
cfct_config新增配置项START_SHARE_DATA:新增变量START_SHARE_DATA=0,用于控制启动时是否共享数据盘(1 表示共享,0 表示不共享)。container_run()传递--start_share_data参数:在调用base_box.sh启动容器时,新增--start_share_data "$START_SHARE_DATA"选项,将配置值传递到底层容器启动逻辑。create_build_prop()写入 Android 系统属性:当START_SHARE_DATA为 1 时,向build.prop写入ro.boot.start_share_data=1,以便容器内 Android 系统读取该标志。
审核结论
CloudPhoneService/VideoScripts/cfct_config:已审核,无问题。CloudPhoneService/VideoScripts/cfct_video:已审核,发现 1 个问题(见上方 finding)。


代码审查
审查总结
审查覆盖的文件
| 文件 | 审查结果 |
|---|---|
CloudPhoneService/VideoScripts/cfct_config |
无问题 — 新增的 START_SHARE_DATA=0 配置变量符合现有风格,注释清晰 |
CloudPhoneService/VideoScripts/cfct_video |
发现 1 个问题 (P1) |
问题统计
- P0: 0
- P1: 1
- P2: 0
- P3: 0
整体风险评估
中等风险。核心问题是 create_build_prop() 中 ro.boot.start_share_data=1 写入路径缺少 $THISDIR/ 前缀,导致该属性被写入到与脚本所在目录无关的 build.prop 文件中,而实际被容器挂载使用的是 $THISDIR/build.prop。当脚本执行时的当前工作目录与脚本所在目录不一致时,START_SHARE_DATA=1 的共享数据卷功能将静默失效,不会产生任何错误提示。container_run() 第827行的 --start_share_data 参数传递本身是正确的。建议修复路径后验证功能正常。
| 类型 | 数量 |
|---|---|
| 🔴 阻塞 | 1 |
| 🟡 建议 | 0 |
⛔ 需要修改


🟠 High Priority
在 create_build_prop() 函数中,所有其他属性都使用 $THISDIR/build.prop 作为写入路径(第607、609、611、613、615、616行),但第619行新增的 ro.boot.start_share_data=1 写入到了不带 $THISDIR/ 前缀的 build.prop。
这导致了两处不一致:
- 写入目标文件不同:
build.prop(相对于脚本执行时的当前工作目录)vs$THISDIR/build.prop(脚本所在目录); container_run()(第759-762行)和container_restart()(第900-903行)在调用create_build_prop前会先rm -rf $THISDIR/build.prop,随后各属性通过>>重新创建$THISDIR/build.prop。但ro.boot.start_share_data=1被写入到另一个build.prop文件中,不会进入最终被容器挂载使用的$THISDIR/build.prop。
触发器:当脚本执行时的 CWD 与 $THISDIR(脚本所在目录)不同时,ro.boot.start_share_data=1 属性将丢失,共享数据卷功能实际上不会生效。
失败模式:即使 START_SHARE_DATA=1,容器启动时也不会获得 ro.boot.start_share_data=1 的 build property,共享数据卷功能静默失效。
建议:将 build.prop 改为 $THISDIR/build.prop,使其与函数内其他所有属性写入路径保持一致。
| 619
| - echo "ro.boot.start_share_data=1" >> build.prop |
|
619 | + echo "ro.boot.start_share_data=1" >> $THISDIR/build.prop |


支持共享数据卷方式启动