Repository navigation
v0.1.10 — ColorOS 17 适配(二改版)
说明
本版是 Mangi-11/FlymeFreeform 的二次开发版(衍生版本),
基于上游 dbbf0d5(2026-09-10)修改,主要针对 ColorOS 17 / Android 17(SDK 37) 做适配与修复。
原项目版权归原作者 Mangi-11 所有,本衍生版同样以 GPL-3.0 授权。所有厂商接口均从设备上的实际
APK / JAR 核对取得,未凭推测。ColorOS 16 的适配路径保持原样。
适配
- ColorOS 17 / Android 17(SDK 37)支持:重新定位四类失效的系统 Hook ——
角落输入入口(OplusBaseTouchInteractionService)、SystemUI 应用类
(application.impl.SystemUIApplicationImpl)、输入法窗口字段(DisplayContent.mImeWindow)、
指针抢占通道(InputMonitorCompat已被移除);智能侧边栏版本白名单扩充至17.9.2 / 170009002。
在此之前的版本在 ColorOS 17 上部分 Hook 装载失败,扇形菜单与「全部」面板均不可用。 - 侧边栏版本判断分级化:「全部」面板不再要求侧边栏版本号完全一致,小版本更新
(如17.9.2→17.9.3)后仍可继续使用;真正不兼容时会在反射阶段安全降级并打印诊断码,不会崩溃。
修复
- 扇形菜单图标偏小、方形图标在圆形容器里视觉上变「菱形」:上游对非自适应图标是原样放行的,
而 ColorOS 返回的图标位图自身带约 7% 的透明安全区留白,放进圆形容器后四周露白。
现改为裁掉留白并等比放大填满外框。 - 「全部」面板左上角「关闭」按钮点击无反应:ColorOS 17 将该按钮的资源 id 由
close改为cancel,
旧 id 查找必然落空,点击被系统原厂逻辑接管。现按新 id 重新绑定。
优化
- 「全部」面板玻璃观感 1:1 还原原生:不再使用通用窗口模糊,改为复用系统自带的
SidebarPlatformBlurHelper(posteffect 背景模糊 + AGSL 双层混合 + 材质光照);失败时自动回退。 - 扇形几何收紧:7 条目 / 84° 弧 / 槽位间隔 12° 的硬约束下,容器半径 −2.5%、图标直径 +8%,
把图标尺寸推到上限的 96%。
安装
- 先卸载旧版 —— 本版使用独立签名密钥(
CN=bomo FlymeFreeform fork),与上游版及第三方二改版
签名不同,直接覆盖安装会报INSTALL_FAILED_UPDATE_INCOMPATIBLE - 安装 APK,在 LSPosed 管理器中启用模块
- 确认作用域 4 项均已勾选:
系统框架/系统界面/桌面/智能侧边栏 - 重启整机(Hook 装在 system_server,只重启应用无效)
- 从左右下角斜向内上滑,呼出扇形菜单验证
装之前请先自检(能不能用)
模块只在满足全部下列条件时才工作。任一不满足 = "装了没反应"或"只有一半功能",
这不是 bug,是代码里的硬判定(ColorOsSidebarTarget.supportedUid())。
| # | 条件 | 不满足时的表现 |
|---|---|---|
| 1 | 系统为 Android 16 或 17(SDK 36 / 37) | 模块直接拒绝工作(代码判定 SDK < 36 即 return null)。 |
| 2 | ROOT 框架为支持 libxposed API 102 的 LSPosed(较新版本) | 模块根本不会被加载,LSPosed 日志里连模块名都不会出现。老版 LSPosed / EdXposed / 太极等框架不适用 |
| 3 | 系统为 ColorOS 16 / 17(一加 / OPPO / realme 等 OPlus ROM) | 非 ColorOS 系统(MIUI / HyperOS / OriginOS / 原生 Android)没有 com.coloros.smartsidebar,模块不工作 |
| 4 | 已安装智能侧边栏 com.coloros.smartsidebar,且为系统(或可更新系统)应用、已启用、未冻结 |
结构校验失败,「全部」面板不可用(扇形菜单可能仍可用) |
| 5 | LSPosed 中作用域 4 项全勾:系统框架 / 系统界面 / 桌面 / 智能侧边栏 |
只勾一部分会半残:只勾系统框架 → 扇形菜单不动;只勾侧边栏 → 点开的窗口不出现 |
已实测组合:一加 15T(PLZ110)+ ColorOS 17.0.0.103(CN01) + Android 17(SDK 37)+ 智能侧边栏 17.9.2 / 170009002。
上游已核对组合:ColorOS 16(SDK 36)+ 智能侧边栏 16.14.6 / 160014006。
其他侧边栏版本:本版把版本判断放宽为"SDK ≥ 36 即继续尝试 + 结构校验兜底",
所以小版本更新(如 17.9.3)一般仍可用;若侧边栏大改(类名 / 资源 id 漂移),
会安全降级并打印诊断码,不会崩。请自行测试。
出问题怎么自查
模块内置诊断码,全程写入 LSPosed 日志(LSPosed 管理器 → 日志,或 /data/adb/lspd/log/):
| 看到的码 | 含义 |
|---|---|
| 日志里完全没有本模块名 | 条件 2 不满足:框架不支持 / 模块未启用 / 作用域没勾 |
*_UNAVAILABLE、ClassNotFoundException、NoSuchMethodException |
厂商接口漂移(ROM 版本不匹配),已安全降级 |
RADIAL_ICON_FILL 正常输出 |
图标整形生效(说明 system_server 侧已成功注入) |
MODULE_SKIPPED_UNEXPECT(在 smartsidebar:edgepanel) |
正常现象,该进程不在作用域内 |
兼容性
| 项 | 值 |
|---|---|
| 实测设备 | 一加 15T(PLZ110) |
| 实测系统 | ColorOS 17.0.0.103(CN01) / Android 17 / SDK 37 |
| 智能侧边栏 | 17.9.2 / 170009002 |
| 最低要求 | Android 16(API 36)+ 支持 libxposed API 102 的 LSPosed |
| 其他 ColorOS 机型 | 理论兼容,厂商类名与资源 id 随版本漂移,请自行测试 |
校验值
FlymeFreeform-0.1.10.apk
size 3,060,433 字节
md5 f6a8140af123d13cd34da25cfc5a1187
sha256 2f8bdbb4fe944943414f968474b28e97385f26e53b079dc1ecadff7003631a61
签名 CN=bomo FlymeFreeform fork(v3 方案)
构建方式:gradlew :app:assembleRelease(R8 开启)→ zipalign -p -f 4 → apksigner sign(v2 + v3)。
免责声明
Xposed / LSPosed 模块会修改系统底层行为,存在系统不稳定、应用闪退甚至无法开机的风险。
请确保在具备救砖能力的前提下使用。因使用本模块导致的一切后果,本人及原作者均不承担责任。
本模块完全免费,严禁倒卖或用于任何盈利目的。