Skip to content

ItosEO/ColorFeatureEnhance

Repository files navigation

ColorOS Feature Enhance 可视化编辑器

一个用于 可视化编辑与管理 ColorOS 特性开关(如 com.oplus.app-features.xmlcom.oplus.oplus-feature.xml)的开源工具,使用 Kotlin + Jetpack Compose 开发,遵循 Material 3 Expressive 设计规范。

⚠️ 本应用 需要 Root 权限 才能正常读写系统配置文件,请确保目标设备已 Root。

✨ 主要功能

🎯 核心特性

  • 双模式编辑:一键在 App-FeaturesOplus-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 模块,实现系统级配置应用

配置管理流程

  1. 系统配置复制:从系统路径复制基线配置到应用目录 (system_baseline/)
  2. 用户补丁生成:根据用户修改生成增量补丁文件 (user_patches/)
  3. 配置合并:将基线配置与用户补丁合并生成最终配置 (merged_output/)
  4. 模块同步:将合并后的配置同步到 Magisk 模块目录
  5. 权限设置:自动设置模块目录权限为 644

新架构特点

  • 基线+补丁模式:系统配置与用户修改分离,支持 OTA 更新
  • 智能合并:自动检测配置变更,仅在必要时执行合并操作
  • 多级回退:支持系统基线 → 直接系统路径的多级配置源回退
  • 日志追踪:完整的配置管理操作日志,便于问题排查

🚀 编译与运行

环境要求

  • 系统: 支持任何基于 ColorOS 14/15 的系统,需要 Root 权限
  • Root 管理器: 支持多种 Root 管理器,不支持 overlayfs 挂载

快速开始

  1. 克隆仓库

    git clone https://github.com/ItosFish/ColorFeatureEnhance.git
    cd ColorFeatureEnhance
  2. 导入项目

    • 使用 Android Studio 打开项目根目录
    • 等待 Gradle 同步完成
  3. 准备设备

    • 连接已 Root 的 Android 设备
    • 启用 USB 调试模式
    • 确保设备已安装 Magisk/KernelSU/APatch(不支持 overlayfs 挂载
  4. 安装运行

    • 点击 Run ▶️ 按钮编译并安装应用
    • 首次运行时应用会自动安装配套的 Magisk 模块
    • 重启设备以激活模块功能

配置文件准备

应用支持多种配置文件来源:

  • 自动获取:应用会自动从系统路径复制配置文件
  • 示例配置:使用 exampleConfig/ 中的示例文件快速体验
  • 手动导入:将配置文件放置到应用的外部存储目录

🛠️ 技术栈

核心技术

  • 开发语言: Kotlin 2.0.21 (100% Kotlin)
  • UI 框架: Jetpack Compose + Material 3 Expressive
  • 架构模式: Repository Pattern + Domain Layer + 分层架构
  • 序列化: Kotlinx Serialization JSON
  • 日志系统: 统一 CLog 日志管理,支持内存存储和导出

Android 组件

  • 最低 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

🔧 使用说明

基本操作

  1. 切换模式:点击顶部标签在 App-Features 和 Oplus-Features 模式间切换
  2. 搜索特性:使用搜索栏快速定位特定功能
  3. 编辑特性:点击开关切换功能状态,长按可删除特性
  4. 添加特性:点击悬浮按钮添加新的功能配置
  5. 文本编辑:通过菜单进入文本编辑模式直接修改 XML

高级功能

  • 配置同步:修改会自动同步到 Magisk 模块
  • OTA 兼容:系统更新后会自动重新合并配置
  • 批量操作:支持批量启用/禁用相关功能
  • 配置备份:用户修改以补丁形式保存,便于恢复

🤝 贡献指南

欢迎提交 Issue、Pull Request 或功能建议!

贡献要求

  1. 代码规范:遵循 Kotlin 官方代码风格
  2. 注释完整:新功能需要中英文注释
  3. 向下兼容:不破坏现有功能
  4. 文档更新:重要改动需同步更新文档

开发环境

  • 使用最新版 Android Studio
  • 确保有已 Root 的且搭载基于 ColorOS 14/15 的系统的设备用于测试
  • 熟悉 Magisk 模块开发(如需修改模块部分)

🙏 致谢

  • Shizuku - 提供 关于弹窗 布局文件

Activity

Alt

Star History

Star History Chart

About

ColorFeatureEnhance

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •