Skip to content

Commit c6199a6

Browse files
committed
补回 post-fs-data.sh
1 parent ce6e198 commit c6199a6

File tree

1 file changed

+136
-0
lines changed

1 file changed

+136
-0
lines changed

exampleConfig/mod/post-fs-data.sh

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
#!/system/bin/sh
2+
# ColorOS Features Enhance - 优化配置管理模块
3+
# post-fs-data阶段:复制系统配置到临时目录,直接挂载
4+
MODDIR=${0%/*}
5+
6+
# 系统配置源路径
7+
SYSTEM_CONFIG_DIR="/my_product/etc/extension"
8+
APP_FEATURES_FILE="com.oplus.app-features.xml"
9+
OPLUS_FEATURES_FILE="com.oplus.oplus-feature.xml"
10+
11+
# 模块目录
12+
MODULE_CONFIG_DIR="/data/adb/cos_feat_e/my_product/etc/extension"
13+
MODULE_ANYMOUNT_DIR="/data/adb/cos_feat_e/anymount/my_product/etc/extension"
14+
MODULE_TEMP_DIR="/data/adb/cos_feat_e/temp_configs"
15+
16+
# 日志函数
17+
log_info() {
18+
echo "[ColorFeatureEnhance] $(date '+%Y-%m-%d %H:%M:%S') $1" >> /cache/colorfeature_enhance.log
19+
}
20+
21+
log_debug() {
22+
echo "[ColorFeatureEnhance-DEBUG] $(date '+%Y-%m-%d %H:%M:%S') $1" >> /cache/colorfeature_enhance.log
23+
}
24+
25+
# 创建必要目录
26+
mkdir -p "$MODULE_CONFIG_DIR"
27+
mkdir -p "$MODULE_ANYMOUNT_DIR"
28+
mkdir -p "$MODULE_TEMP_DIR"
29+
30+
log_info "=== 配置管理模块启动(post-fs-data阶段)==="
31+
log_debug "MODDIR: $MODDIR"
32+
log_debug "SYSTEM_CONFIG_DIR: $SYSTEM_CONFIG_DIR"
33+
log_debug "MODULE_CONFIG_DIR: $MODULE_CONFIG_DIR"
34+
log_debug "MODULE_ANYMOUNT_DIR: $MODULE_ANYMOUNT_DIR"
35+
log_debug "MODULE_TEMP_DIR: $MODULE_TEMP_DIR"
36+
37+
# 1. 复制系统配置到模块临时目录(供service脚本使用)
38+
copy_system_to_temp() {
39+
log_debug "开始复制系统配置到临时目录"
40+
41+
# 检查系统配置目录
42+
if [ ! -d "$SYSTEM_CONFIG_DIR" ]; then
43+
log_debug "系统配置目录不存在: $SYSTEM_CONFIG_DIR"
44+
return 1
45+
fi
46+
47+
local copied_count=0
48+
49+
# 复制 app-features.xml
50+
if [ -f "$SYSTEM_CONFIG_DIR/$APP_FEATURES_FILE" ]; then
51+
log_debug "源文件存在: $SYSTEM_CONFIG_DIR/$APP_FEATURES_FILE"
52+
log_debug "源文件大小: $(stat -c%s "$SYSTEM_CONFIG_DIR/$APP_FEATURES_FILE" 2>/dev/null || echo "unknown")"
53+
54+
cp "$SYSTEM_CONFIG_DIR/$APP_FEATURES_FILE" "$MODULE_TEMP_DIR/" 2>/dev/null
55+
local cp_result=$?
56+
log_debug "cp命令返回值: $cp_result"
57+
58+
if [ -f "$MODULE_TEMP_DIR/$APP_FEATURES_FILE" ]; then
59+
log_info "复制系统配置到临时目录: $APP_FEATURES_FILE"
60+
log_debug "目标文件大小: $(stat -c%s "$MODULE_TEMP_DIR/$APP_FEATURES_FILE" 2>/dev/null || echo "unknown")"
61+
copied_count=$((copied_count + 1))
62+
else
63+
log_debug "复制失败: $APP_FEATURES_FILE (cp返回值: $cp_result)"
64+
fi
65+
else
66+
log_debug "源文件不存在: $SYSTEM_CONFIG_DIR/$APP_FEATURES_FILE"
67+
fi
68+
69+
# 复制 oplus-feature.xml
70+
if [ -f "$SYSTEM_CONFIG_DIR/$OPLUS_FEATURES_FILE" ]; then
71+
log_debug "源文件存在: $SYSTEM_CONFIG_DIR/$OPLUS_FEATURES_FILE"
72+
log_debug "源文件大小: $(stat -c%s "$SYSTEM_CONFIG_DIR/$OPLUS_FEATURES_FILE" 2>/dev/null || echo "unknown")"
73+
74+
cp "$SYSTEM_CONFIG_DIR/$OPLUS_FEATURES_FILE" "$MODULE_TEMP_DIR/" 2>/dev/null
75+
local cp_result=$?
76+
log_debug "cp命令返回值: $cp_result"
77+
78+
if [ -f "$MODULE_TEMP_DIR/$OPLUS_FEATURES_FILE" ]; then
79+
log_info "复制系统配置到临时目录: $OPLUS_FEATURES_FILE"
80+
log_debug "目标文件大小: $(stat -c%s "$MODULE_TEMP_DIR/$OPLUS_FEATURES_FILE" 2>/dev/null || echo "unknown")"
81+
copied_count=$((copied_count + 1))
82+
else
83+
log_debug "复制失败: $OPLUS_FEATURES_FILE (cp返回值: $cp_result)"
84+
fi
85+
else
86+
log_debug "源文件不存在: $SYSTEM_CONFIG_DIR/$OPLUS_FEATURES_FILE"
87+
fi
88+
89+
# 记录复制时间戳
90+
date "+%Y-%m-%d %H:%M:%S" > "$MODULE_TEMP_DIR/last_copy.txt"
91+
92+
# 检查临时目录最终状态
93+
log_debug "临时目录最终状态:"
94+
ls -la "$MODULE_TEMP_DIR" 2>/dev/null | while read line; do
95+
log_debug " $line"
96+
done
97+
98+
log_info "系统配置复制到临时目录完成,成功复制 $copied_count 个文件"
99+
}
100+
101+
# 2. 确保模块目录有默认配置(如果不存在)
102+
ensure_default_configs() {
103+
# 如果模块配置目录为空,使用系统配置作为默认
104+
if [ ! -f "$MODULE_CONFIG_DIR/$APP_FEATURES_FILE" ] && [ -f "$SYSTEM_CONFIG_DIR/$APP_FEATURES_FILE" ]; then
105+
cp "$SYSTEM_CONFIG_DIR/$APP_FEATURES_FILE" "$MODULE_CONFIG_DIR/"
106+
cp "$SYSTEM_CONFIG_DIR/$APP_FEATURES_FILE" "$MODULE_ANYMOUNT_DIR/"
107+
log_info "使用系统配置作为默认: $APP_FEATURES_FILE"
108+
fi
109+
110+
if [ ! -f "$MODULE_CONFIG_DIR/$OPLUS_FEATURES_FILE" ] && [ -f "$SYSTEM_CONFIG_DIR/$OPLUS_FEATURES_FILE" ]; then
111+
cp "$SYSTEM_CONFIG_DIR/$OPLUS_FEATURES_FILE" "$MODULE_CONFIG_DIR/"
112+
cp "$SYSTEM_CONFIG_DIR/$OPLUS_FEATURES_FILE" "$MODULE_ANYMOUNT_DIR/"
113+
log_info "使用系统配置作为默认: $OPLUS_FEATURES_FILE"
114+
fi
115+
}
116+
117+
# 执行配置管理流程
118+
copy_system_to_temp
119+
ensure_default_configs
120+
121+
# 3. 执行挂载逻辑
122+
log_info "开始挂载配置文件"
123+
mount --bind $MODULE_CONFIG_DIR/$APP_FEATURES_FILE $SYSTEM_CONFIG_DIR/$APP_FEATURES_FILE
124+
mount --bind $MODULE_CONFIG_DIR/$OPLUS_FEATURES_FILE $SYSTEM_CONFIG_DIR/$OPLUS_FEATURES_FILE
125+
126+
# 挂载any目录下的其他文件
127+
# TMPDIR=${0%/*}/anymount
128+
# if [ -d "$TMPDIR" ]; then
129+
# for i in `/bin/find $TMPDIR -type f -printf "%P "`; do
130+
# mount /$TMPDIR/$i /$i
131+
# log_info $i
132+
# restorecon /$i
133+
# done
134+
# fi
135+
136+
log_info "=== post-fs-data阶段完成 ==="

0 commit comments

Comments
 (0)