Skip to content

v0.1.10 — ColorOS 17 适配(二改版)

Choose a tag to compare

@Sillybomo Sillybomo released this 20 Sep 16:43
· 39 commits to main since this release

说明

本版是 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%。

安装

  1. 先卸载旧版 —— 本版使用独立签名密钥(CN=bomo FlymeFreeform fork),与上游版及第三方二改版
    签名不同,直接覆盖安装会报 INSTALL_FAILED_UPDATE_INCOMPATIBLE
  2. 安装 APK,在 LSPosed 管理器中启用模块
  3. 确认作用域 4 项均已勾选:系统框架 / 系统界面 / 桌面 / 智能侧边栏
  4. 重启整机(Hook 装在 system_server,只重启应用无效)
  5. 从左右下角斜向内上滑,呼出扇形菜单验证

装之前请先自检(能不能用)

模块只在满足全部下列条件时才工作。任一不满足 = "装了没反应"或"只有一半功能",
这不是 bug,是代码里的硬判定(ColorOsSidebarTarget.supportedUid())。

# 条件 不满足时的表现
1 系统为 Android 16 或 17(SDK 36 / 37) 模块直接拒绝工作(代码判定 SDK < 36 即 return null)。⚠️ Android 15(SDK 35)用户注意:APK 的 minSdk 是 35,所以装得上,但功能不可用
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 模块会修改系统底层行为,存在系统不稳定、应用闪退甚至无法开机的风险。
请确保在具备救砖能力的前提下使用。因使用本模块导致的一切后果,本人及原作者均不承担责任。
本模块完全免费,严禁倒卖或用于任何盈利目的。