一个用于 可视化编辑与管理 ColorOS 特性开关(如 com.oplus.app-features.xml
与 com.oplus.oplus-feature.xml
)的开源工具,使用 Kotlin + Jetpack Compose 开发,遵循 Material 3 Expressive 设计规范。
⚠️ 本应用 需要 Root 权限 才能正常读写系统配置文件,请确保目标设备已 Root。
- 双模式编辑:一键在 App-Features 与 Oplus-Features 模式之间切换
- 智能配置管理:支持模块化配置文件管理,兼容 OTA 更新,采用基线+补丁架构
- 实时可视化:按照「描述 → 分组 → 开关」层级展现所有特性,所见即所得
- 搜索 & 高亮:支持按名称/描述高速模糊搜索并自动高亮匹配关键字
- 分组折叠:同一描述的特性自动归为同组,可展开/折叠查看
- 补丁状态显示:直观显示特性的修改状态(新增/修改/删除)
- 快速增删改:长按列表项可删除,悬浮按钮(FAB)可新增,开关即改值
- 复杂特性支持:支持带参数和子节点的复杂特性配置
- 文本编辑模式:内置纯文本编辑器,可直接查看/编辑原始 XML
- 配置合并:智能合并系统基线配置与用户自定义补丁
- 统一日志系统:内置 CLog 日志管理,支持日志导出和调试
- 国际化:内置简体中文、英语双语支持
- 数据持久化:用户自定义描述映射持久保存
- 模块集成:内置 Magisk 模块,支持系统级配置应用
- 示例配置:仓库
exampleConfig/
提供参考 XML 和模块文件
com.itosfish.colorfeatureenhance/
├── config/ # 配置管理核心
│ └── ConfigMergeManager.kt # 配置合并与补丁管理
├── data/
│ ├── model/ # 数据模型(AppFeature、OplusFeature 等)
│ └── repository/ # XML 读写仓库实现
│ ├── XmlFeatureRepository.kt # App-Features 仓库
│ └── XmlOplusFeatureRepository.kt # Oplus-Features 仓库
├── domain/
│ └── FeatureRepository.kt # 领域层接口,抽象数据操作
├── ui/
│ ├── components/ # 可复用 UI 组件
│ │ ├── SearchBar.kt # 搜索栏组件
│ │ ├── HighlightedText.kt # 高亮文本组件
│ │ └── TopAppBarComponent.kt # 顶部应用栏
│ ├── search/ # 搜索逻辑
│ │ └── SearchLogic.kt # 搜索算法实现
│ ├── theme/ # Material 3 主题定义
│ ├── FeatureConfigScreen.kt # 主配置界面
│ └── TextEditorActivity.kt # 内置文本编辑器
├── utils/
│ ├── ConfigUtils.kt # 配置文件工具类
│ ├── DialogUtil.kt # 对话框工具
│ └── CSU.kt # Shell 命令工具
├── FeatureMode.kt # 编辑模式枚举
└── MainActivity.kt # 应用入口
Layer | 关键职责 | 代表文件/目录 |
---|---|---|
UI Layer | Compose 渲染、用户交互、状态管理 | ui/ MainActivity.kt |
Domain Layer | 业务规则、接口定义 | domain/FeatureRepository.kt |
Data Layer | 数据获取、XML 解析与持久化 | data/ config/ |
Utils Layer | 工具类、系统集成 | utils/ConfigUtils.kt utils/CSU.kt |
- 协程异步:所有 I/O 操作均通过
Dispatchers.IO
调度,避免阻塞主线程 - 依赖倒置:UI 层仅依赖接口,不直接依赖数据实现,便于测试与扩展
- 配置分离:系统基线配置与用户补丁分离管理,支持 OTA 更新
- 模块化设计:内置 Magisk 模块,实现系统级配置应用
- 系统配置复制:从系统路径复制基线配置到应用目录 (
system_baseline/
) - 用户补丁生成:根据用户修改生成增量补丁文件 (
user_patches/
) - 配置合并:将基线配置与用户补丁合并生成最终配置 (
merged_output/
) - 模块同步:将合并后的配置同步到 Magisk 模块目录
- 权限设置:自动设置模块目录权限为 644
- 基线+补丁模式:系统配置与用户修改分离,支持 OTA 更新
- 智能合并:自动检测配置变更,仅在必要时执行合并操作
- 多级回退:支持系统基线 → 直接系统路径的多级配置源回退
- 日志追踪:完整的配置管理操作日志,便于问题排查
- 系统: 支持任何基于 ColorOS 14/15 的系统,需要 Root 权限
- Root 管理器: 支持多种 Root 管理器,不支持 overlayfs 挂载
-
克隆仓库
git clone https://github.com/ItosFish/ColorFeatureEnhance.git cd ColorFeatureEnhance
-
导入项目
- 使用 Android Studio 打开项目根目录
- 等待 Gradle 同步完成
-
准备设备
- 连接已 Root 的 Android 设备
- 启用 USB 调试模式
- 确保设备已安装 Magisk/KernelSU/APatch(不支持 overlayfs 挂载)
-
安装运行
- 点击 Run
▶️ 按钮编译并安装应用 - 首次运行时应用会自动安装配套的 Magisk 模块
- 重启设备以激活模块功能
- 点击 Run
应用支持多种配置文件来源:
- 自动获取:应用会自动从系统路径复制配置文件
- 示例配置:使用
exampleConfig/
中的示例文件快速体验 - 手动导入:将配置文件放置到应用的外部存储目录
- 开发语言: Kotlin 2.0.21 (100% Kotlin)
- UI 框架: Jetpack Compose + Material 3 Expressive
- 架构模式: Repository Pattern + Domain Layer + 分层架构
- 序列化: Kotlinx Serialization JSON
- 日志系统: 统一 CLog 日志管理,支持内存存储和导出
- 最低 SDK: Android 14 (API 34)
- 目标 SDK: Android 16 (API 36)
- 版本号: v0.83 (Build 25072302)
- Compose BOM: 2025.06.01
- Navigation: Compose Navigation 2.9.1
- 生命周期: Lifecycle Runtime KTX 2.9.1
- 权限管理: Root 权限 (通过 su 命令)
- 模块系统: Magisk 模块集成,不支持原版 KernelSU
- 文件操作: XML Pull 解析 + 文件 I/O
- 数据持久化: SharedPreferences + JSON 配置文件
- 国际化: 支持中文/英文双语界面
- 构建工具: Android Gradle Plugin 8.10.1
- 代码混淆: ProGuard + R8 优化
- 多架构支持: ARM64-v8a
- 切换模式:点击顶部标签在 App-Features 和 Oplus-Features 模式间切换
- 搜索特性:使用搜索栏快速定位特定功能
- 编辑特性:点击开关切换功能状态,长按可删除特性
- 添加特性:点击悬浮按钮添加新的功能配置
- 文本编辑:通过菜单进入文本编辑模式直接修改 XML
- 配置同步:修改会自动同步到 Magisk 模块
- OTA 兼容:系统更新后会自动重新合并配置
- 批量操作:支持批量启用/禁用相关功能
- 配置备份:用户修改以补丁形式保存,便于恢复
欢迎提交 Issue、Pull Request 或功能建议!
- 代码规范:遵循 Kotlin 官方代码风格
- 注释完整:新功能需要中英文注释
- 向下兼容:不破坏现有功能
- 文档更新:重要改动需同步更新文档
- 使用最新版 Android Studio
- 确保有已 Root 的且搭载基于 ColorOS 14/15 的系统的设备用于测试
- 熟悉 Magisk 模块开发(如需修改模块部分)
- Shizuku - 提供 关于弹窗 布局文件