已开启
支持共享数据卷方式启动 #210
maoyue0730创建于 6月22日
支持共享数据卷方式启动 #210
已开启
共 2 个文件变更+9-1
| @@ -19,6 +19,8 @@ BUILD_HEIGHT=1280 | |||
| 19 | BUILD_DENSITY=320 | 19 | BUILD_DENSITY=320 |
| 20 | # 云手机屏幕刷新帧率 | 20 | # 云手机屏幕刷新帧率 |
| 21 | BUILD_FPS=30 | 21 | BUILD_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个核 |
| 24 | CPU_BIND_MODE=0 | 26 | CPU_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.prop | 615 | echo "ro.hardware.enableC2decode=0" >> $THISDIR/build.prop |
| 616 | echo "ro.hardware.omxsoftdecode=0" >> $THISDIR/build.prop | 616 | 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 | ||
| 620 | + fi | ||
| 621 | + | ||
| 617 | # 配置是否使能C2解码器 | 622 | # 配置是否使能C2解码器 |
| 618 | if lspci | grep -q "Radeon PRO W6800"; then | 623 | if lspci | grep -q "Radeon PRO W6800"; then |
| 619 | if [ ${ENABLE_AMD_C2_DECODE} -eq 1 ];then | 624 | 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 ]; then | 830 | if [ $? -ne 0 ]; then |
🟠 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,使其与函数内其他所有属性写入路径保持一致。