已开启
支持共享数据卷方式启动 #210
支持共享数据卷方式启动 #210
已开启
maoyue0730创建于 6月22日
2 个文件变更+9-1
@@ -19,6 +19,8 @@ BUILD_HEIGHT=1280
19BUILD_DENSITY=32019BUILD_DENSITY=320
20# 云手机屏幕刷新帧率20# 云手机屏幕刷新帧率
21BUILD_FPS=3021BUILD_FPS=30
22+# 是否启动时共享数据盘,1表示共享,0表示不共享,其他值默认不共享
23+START_SHARE_DATA=0
22 24 
23# 云手机绑核方式 0:2容器2核(默认);1:绑NUMA,每NUMA空前2个核25# 云手机绑核方式 0:2容器2核(默认);1:绑NUMA,每NUMA空前2个核
24CPU_BIND_MODE=026CPU_BIND_MODE=0
@@ -614,6 +614,11 @@ create_build_prop() {
614 LOG_INFO "ro.hardware.fps=${BUILD_FPS}"614 LOG_INFO "ro.hardware.fps=${BUILD_FPS}"
615 echo "ro.hardware.enableC2decode=0" >> $THISDIR/build.prop615 echo "ro.hardware.enableC2decode=0" >> $THISDIR/build.prop
616 echo "ro.hardware.omxsoftdecode=0" >> $THISDIR/build.prop616 echo "ro.hardware.omxsoftdecode=0" >> $THISDIR/build.prop
617+ 
618+ if [ $START_SHARE_DATA -eq 1 ]; then
619+ echo "ro.boot.start_share_data=1" >> build.prop
atomgit-bot
atomgit-botatomgit-bot6月22日

🟠 High Priority

create_build_prop() 函数中,所有其他属性都使用 $THISDIR/build.prop 作为写入路径(第607、609、611、613、615、616行),但第619行新增的 ro.boot.start_share_data=1 写入到了不带 $THISDIR/ 前缀的 build.prop

这导致了两处不一致:

  1. 写入目标文件不同:build.prop(相对于脚本执行时的当前工作目录)vs $THISDIR/build.prop(脚本所在目录);
  2. 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
应用建议
likedislike
不准确?
620+ fi
621+ 
617 # 配置是否使能C2解码器622 # 配置是否使能C2解码器
618 if lspci | grep -q "Radeon PRO W6800"; then623 if lspci | grep -q "Radeon PRO W6800"; then
619 if [ ${ENABLE_AMD_C2_DECODE} -eq 1 ];then624 if [ ${ENABLE_AMD_C2_DECODE} -eq 1 ];then
@@ -818,7 +823,8 @@ container_run() {
818 --enable_f2fs "$ENABLE_F2FS"\823 --enable_f2fs "$ENABLE_F2FS"\
819 --system_size_mb "$SYSTEM_PARTITION_SIZE_MB" \824 --system_size_mb "$SYSTEM_PARTITION_SIZE_MB" \
820 --enable_nfs "$enable_nfs" \825 --enable_nfs "$enable_nfs" \
821- --nfs_dir "$NFS_DIR"826+ --nfs_dir "$NFS_DIR" \
827+ --start_share_data "$START_SHARE_DATA"
822 828 
823 # 新增拦截逻辑,判断上方base_box是否执行成功 829 # 新增拦截逻辑,判断上方base_box是否执行成功
824 if [ $? -ne 0 ]; then830 if [ $? -ne 0 ]; then