Asteria

一个独立的 Vector/Xposed 模块,为 ColorOS 媒体流体云追加用户配置的应用包名。主要用于让包名发生变化的共存版应用进入状态栏流体云链路。

本模块只面向明确列出的 ColorOS/OplusMediaController 版本。系统组件更新后,混淆类名或内部协议可能变化;不匹配时应停用模块并报告版本信息。

功能

  • 设置界面内添加、删除、启用或停用任意包名。
  • 默认启用 com.hihonor.cloudmusic
  • 可隐藏桌面图标;隐藏后从 Vector 模块设置入口重新打开。
  • 可在设置页热重载作用域应用,无需重启手机。
  • Hook 作用域只应选择 com.oplus.mediacontroller
  • 不修改 SystemUI,不绕过全部白名单,不做全局包名伪装。

使用方法

  1. 安装 APK,并在 Vector 中启用模块。
  2. 作用域只选择 com.oplus.mediacontroller
  3. 打开 Asteria,添加并启用需要适配的应用包名。
  4. 点击“重载作用域应用”,授予 root 权限。
  5. 暂停并重新播放媒体,检查状态栏流体云。

“重载作用域应用”只终止当前 com.oplus.mediacontroller 进程,由系统自动重新拉起,不会重启手机。

当前 ROM 适配基线

  • Android 15 / API 35
  • OplusMediaController 15.001.005 (versionCode 15001005)

该模块依赖 ColorOS 内部混淆实现。系统或 OplusMediaController 更新后,类名和字段可能变化,需要重新适配。其他 ROM 和版本未经验证。

构建

要求:

  • JDK 17
  • Android SDK 35
  • Android Gradle Plugin 8.13.1

使用 Android Studio 打开本目录,或者执行:

.\gradlew.bat assembleDebug

Xposed API 82 通过 app/libs/api-82.jarcompileOnly 方式提供,不会打包进 APK。该文件的来源和校验信息见 THIRD_PARTY_NOTICES.md

正式签名

正式 APK 必须使用长期保存的发布密钥。构建前设置以下环境变量:

ASTERIA_STORE_FILE
ASTERIA_STORE_PASSWORD
ASTERIA_KEY_ALIAS
ASTERIA_KEY_PASSWORD

然后执行:

.\gradlew.bat assembleRelease

缺少任何签名变量时,assembleRelease 会主动失败,避免误发 Debug 签名 APK。密钥、密码和 signing.properties 均被 Git 忽略,禁止提交到仓库。

完整发布流程和公开证书指纹见 RELEASING.md

安全边界

  • Hook 仅在 com.oplus.mediacontroller 中加载。
  • 状态栏宿主放行只对设置页中已启用的包名生效。
  • root 命令的目标包名固定,界面输入不会拼接到 root 命令中。
  • 模块不包含设备日志、反编译的 OEM 源码或签名材料。
  • 模块不联网,不收集或上传应用列表、媒体信息和设备信息。
  • “复制诊断信息”只在用户点击后写入系统剪贴板,其中包含系统指纹;分享前请自行检查。

已知限制

  • 当前只验证状态栏媒体流体云,未适配 AOD。
  • 添加包名不保证所有应用都能工作;目标应用仍需提供有效的 Android MediaSession 与媒体元数据。
  • 设置页的“重载作用域应用”会申请 root 并仅终止固定包名 com.oplus.mediacontroller,由系统自动拉起。

发布约定

  • GitHub/Xposed Module Repository 标签使用 VersionCode-VersionName,当前版本应为 3-1.1.1
  • 只发布通过 assembleRelease 生成并用长期发布证书签名的 APK。
  • 每个 Release 在首次创建时同时上传 APK;不要只替换旧 Release 的附件。

许可证

Copyright © 2026 lilymilongc. 本项目以 GNU GPL v3.0 发布。

验证

白名单编解码自测:

javac -d build/selftest app/src/main/java/io/github/lilymilongc/asteria/WhitelistCodec.java tools/WhitelistCodecSelfTest.java
java -cp build/selftest io.github.lilymilongc.asteria.WhitelistCodecSelfTest

免责声明

本项目仅供学习、研究与技术交流使用。使用者应自行评估兼容性与系统修改风险,并对安装、使用本项目所产生的任何直接或间接后果承担全部责任。开发者不对设备故障、数据丢失、功能异常或其他损失承担责任。请仅在你拥有或获准管理的设备上使用,并遵守所在地法律法规及相关服务条款。

Releases

8/15/2026, 8:02:56 AM

首个 Xposed Module Repository 正式版本。支持为 ColorOS 媒体流体云追加自定义应用包名白名单;已验证网易云音乐共存版的卡片唤起、歌曲与进度持续更新及媒体控制。新增 Asteria 启动图标。适配基线:Android 15 / OplusMediaController 15.001.005。作用域仅选择 com.oplus.mediacontroller。

Assets

1