Repository navigation
Releases: Sillybomo/FlymeFreeform
Release list
FlymeFreeform v0.2.23
FlymeFreeform v0.2.23
这是基于 Mangi-11/FlymeFreeform 的二次开发发行版。适配范围仍以 PLZ110(一加 15T)、ColorOS 17 / Android 17、智能侧边栏 17.9.8 为准。
更新内容
- 统一左右呼出时 A-Z/# 字母索引与应用内容的边缘间距。索引靠左时,应用网格和最近小窗区块也按同一边距镜像排布。
- 最近小窗行在右侧索引模式下反向排列,使最靠近索引的最近应用完整显示;左侧呼出保留对应的正向排列。
- 保留此前版本的最近文件拖图、索引轻震、隐藏系统侧边栏开关和系统工具交接优化。隐藏开关修改后仍需重启手机生效。
安装
下载 FlymeFreeform-0.2.23.apk。该包为 Release 构建,使用本衍生版正式证书签名;设备已安装版本的包标志中没有 DEBUGGABLE。可覆盖安装同证书旧版。
修改“隐藏系统侧边栏”选项后需重启手机。其他功能按应用设置内的提示生效。Android 最低安装 API 为 35,但安装成功不代表 ROM 厂商接口兼容;本次仅验收上述 ColorOS 17 设备。
验证
- PLZ110 上已安装
versionName=0.2.23、versionCode=47。分别从左右呼出面板,手动截图核对索引、网格和最近小窗行的布局;两侧实测边缘值均为 119px(设备密度 560dpi,约 34dp)。最近行右侧镜像排列后,索引边最近项完整可见。 - 发行构建成功,APK v3 签名验证通过。正式证书 SHA-256:
79361cbf22035001e1df8caabe9e3b3b9a1b7c1a9499d50399963b110e9e409e。 - 本轮没有重跑单元测试;0.2.22 的测试结果不代表本轮测试结果。
- 这轮发布聚焦左右布局。此前功能的用户验收记录见 v0.2.22 发行说明,本轮没有逐项重测所有工具与系统开关。
APK SHA-256:F9361B16BBC2F39AA805689C440002134951D8462E0F32BECA7657EF1E7DD23B。
v0.2.22 — 面板提速、工具启动优化与侧边栏开关
这是基于 Mangi-11/FlymeFreeform 的二次开发发行版。已在 PLZ110(一加 15T)、ColorOS 17 / Android 17、智能侧边栏 17.9.8 上完成实机验收。
更新内容
- 「最近文件」使用独立窗口打开,修复拖图片到 QQ 无法发送的问题。
- 「全部」面板按字母分组,增加右侧 A-Z/# 滑动索引;索引移至搜索框下方,切换字母时提供轻震反馈。
- 减少应用排序时重复的拼音转换及工具目录编码。本机三次暖态测量中,窗口首帧内部等待中位数由 440ms 降至 120ms。
- 小布识屏、屏幕翻译等工具不再额外等待模块菜单完整退场;确认不可见帧已提交后,再调用原厂工具,避免截到菜单。菜单交接实测 7–27ms,不包含识别、翻译服务自身处理时间。
- App 新增「隐藏系统侧边栏」开关,可隐藏原生浮标和边缘滑动入口,保留 Flyme 震动及系统工具。此开关修改后需重启手机生效。
- 包含 v0.2.5 之后的面板适配、最近文件窗口、首帧显示等累计修复。
安装与使用
下载 FlymeFreeform-0.2.22.apk。本包为 Release 构建,使用本衍生版正式证书签名,不是 Debug 调试包。
可直接覆盖本衍生版相同证书的旧版本以保留配置。若旧版本来自其他签名来源,先确认安装包来源,避免为覆盖安装误删现有配置。
启用所需 LSPosed 作用域后重启手机,确保系统服务加载新版。用户可自行选择是否隐藏原生侧边栏;仅修改该开关也需要重启。
Android 安装最低 API 为 35,但安装成功不代表 ROM 厂商接口兼容;本次仅确认上述 ColorOS 17 设备,其他机型和系统版本未验收。
验证情况
- 使用者已确认:QQ 拖图正常;新版速度和索引震动符合预期。
- 发行构建及 APK v3 签名验证通过。证书 SHA-256:
79361cbf22035001e1df8caabe9e3b3b9a1b7c1a9499d50399963b110e9e409e。 - 124 项单元测试中 123 项通过;1 项修改前已复现的浮点间距断言仍失败:
RadialIconGeometryTest.innerRingKeepsEnoughGapFromOuterRing(17.999985 与 18 的边界)。未通过放宽断言掩盖该结果。 - 工具自身的冷启动、识别和网络处理时间仍可能存在,未承诺全部系统工具无延迟。
APK SHA-256:d0ade20014a16231a44bdc6d9c4f92bccf5cc7770a4068d764b8fcd8261d4c45。
FlymeFreeform v0.2.6
正式版 APK,版本号 0.2.6,versionCode 48。
- 统一左右呼出时字母索引与应用内容区域的镜像边距,左侧布局与右侧对称。
- 保留此前版本的最近文件拖拽、索引震动反馈、系统侧边栏开关和系统工具交接优化。
- 正式证书 v3 签名;已安装到 PLZ110 并核验设备报告版本号 0.2.6、versionCode 48。
SHA-256:11AE97D377E738741E6C9DF2442779E1F43E2661A17E72EFD99D96F466555C4C
v0.2.5
v0.2.5 —— 配置热生效:改设置即刻生效,无需重启
修复
「设置里添加扇形应用,扇形里看不到」。根因:Hook 进程(system_server 等)读取
RemotePreferences 用的是进程启动时的快照(只读 + 进程内缓存,且变更监听不跨进程回调),
所以改完设置必须重启手机才生效。
修法:新增「App → system_server 配置推送」通道 —— App 落盘成功后把整份配置
经广播推给 Hook 进程,后者直接更新内存快照,彻底绕开该缓存。
实现要点:配置编解码复用 ModuleSettingsSnapshot.writeTo/readFrom 的既有语义
(默认值、coerce、pins 编解码),不重复任何字段规则。
兼容性
远端落盘仍是唯一真源;广播推送失败只记日志(CONFIG_PUSH_SEND_FAILED),不影响配置正确性。
已知未修
「最近文件」工具在本机点不开。经反汇编确认是原厂空壳:RecentFilesTool 不实现
handle()、getPkgs() 返回空数组,真实开关由 OPlus「文件袋」应用特性
com.oplus.smartsidebar.feature_confidential 控制(本机未启用)。非模块缺陷。
安装
若提示签名不一致 / 应用未安装,先卸载旧版再装(配置会重置)。
完整变更:v0.2.4...v0.2.5
v0.2.4
v0.2.4 —— 适配智能侧边栏 17.9.8
修复
侧边栏升级到 17.9.8 后,「全部」面板每次打开即失败(ALL_APPS_SESSION_FAILED)。
根因:原生 SidebarPlatformBlurHelper.r 的签名由 (View,ZZ)Z(17.9.2)
变为 (View,ZZI)Z(17.9.8,尾部新增一个 int 参数)。
模块原先在类构造期用裸 getMethod 反射旧签名,抛 NoSuchMethodException,
导致整个内容视图构造失败,面板全废。
修法:
r改为 3 参 / 4 参双签名尝试,全程runCatching,按实参个数传参,失败回退窗口模糊;H/S同样补runCatching,不再让反射异常外溢;- 新增日志码
PLATFORM_GLASS_ATTACHED,便于后续排查。
兼容性
纯增量适配:17.9.2 上 4 参分支永不执行,仍走原调用路径,行为完全不变。
其他
- 版本门禁宽容化:侧边栏版本 >= 17.9.2 一律放行,不再绑定 SDK 精确版本。
安装
若安装时提示签名不一致 / 应用未安装,先卸载旧版再装(配置会重置)。
完整变更:v0.2.2...v0.2.4
FlymeFreeform v0.2.2
FlymeFreeform 二改版 v0.2.2
- 「全部」面板:按呼出侧锚定(左呼贴左、右呼贴右),大小可在设置里滑动调节(调整后重启手机生效)
- 角落触发热区:新增三角形形状,横向/纵向长度独立可调(扇形仍为默认)
- 扇形应用设置页:内外圈样式统一,内圈也支持长按拖动排序
- 修复内圈应用不显示、点击小窗外偶尔关不掉小窗
- 内外圈间距调宽,滑选不再误触
- 体积从 60MB 精简到 3.1MB
直接覆盖安装即可;若提示签名不一致或应用未安装,先卸载旧版再装(配置会重置)。
v0.1.15 — 扇形双圈与侧边栏工具执行修复(二改版)
说明
本版是 Mangi-11/FlymeFreeform 的二次开发版(衍生版本),
基于上游 dbbf0d5(2026-09-10)修改,主要针对 ColorOS 17 / Android 17(SDK 37) 做适配与修复。
本次更新(v0.1.11 ~ v0.1.15)集中解决侧边栏工具执行与扇形双圈布局两大主题。
原项目版权归原作者 Mangi-11 所有,本衍生版同样以 GPL-3.0 授权。所有厂商接口均从设备上的实际
APK / JAR 反编译核对取得,未凭推测。
新增
- 扇形双圈布局:扇形菜单扩展为内圈 + 外圈两层,可固定的应用数量翻倍;
内外圈条目在设置中独立配置,滑选按圈层判定。 - 「全部」面板新增「最近小窗」区块:最近使用过的小窗应用自动出现在面板顶部,
面板内点击也会计入最近记录,取色对齐原厂区块样式。 - 侧边栏工具固定项:小布识屏、全局翻译、截屏等 22 个智能侧边栏工具可固定到扇形,
滑选即触发(执行走原厂PageRout路径,与系统侧边栏一致)。 - 工具目录自动同步:开机自动向侧边栏拉取工具目录(失败自动重试 3 次),
打开设置界面时主动补拉,扇形与「选择应用」列表的工具图标自动就位。
修复
- 扇形里触发小布识屏 / 全局翻译等工具无反应(v0.1.13 / v0.1.14):三重根因,全部实测定位 ——
- 原厂工具条目的
activity字段恒为空串(反编译实锤:new EntryBean(absTool.getAlias(), validPkg, "", 0, 0)),
旧匹配逻辑永远落空后静默回退,现改按getAlias()匹配,与原厂内部一致; - 工具执行时侧边栏处于后台,其内部
startForegroundService被 Android 12+ 后台 FGS 限制拒绝
且异常被原厂吞掉(logcat 实锤BFGS denied: true),现绑定加
BIND_ALLOW_FOREGROUND_SERVICE_STARTS豁免并延迟 5 秒解绑保住豁免窗口; - 工具目录回传通道的
replyTo恒空导致链路从未触发,已修复。
- 原厂工具条目的
- 「选择应用」界面工具条目无图标(v0.1.15):
Settings.Global单值实测上限 32KB,
带图标的工具目录约 60KB+ 写入被拒且异常被吞,界面读到的永远是旧残留。
现 Settings 只存去图标文本作兜底,带图标版(72px WEBP)经 system_server 定向广播落盘。 - 共享状态冷启动竞态:框架连接未就绪时的写入会丢失,现排队并在连上后补写。
优化
- 内外圈几何调整:内圈图标与外圈同尺寸(不再缩小),两圈径向间距由 1.5dp 拉开至 12dp,
外圈布局完全不变,解决"两圈贴太近"的观感问题。 - 目录图标压缩:设置侧目录图标统一压到 72px WEBP,降低传输与落盘开销。
- 诊断码补全:工具图标加载、目录中继、工具执行全链路均有诊断码,出问题看 LSPosed 日志即可定位环节。
安装与升级
- 从本二改版 v0.1.10 升级:签名相同,直接覆盖安装即可;
从上游版或第三方二改版升级:先卸载(签名不同,覆盖会报INSTALL_FAILED_UPDATE_INCOMPATIBLE) - 安装 APK,在 LSPosed 管理器中启用模块
- 确认作用域 4 项均已勾选:
系统框架/系统界面/桌面/智能侧边栏 - 重启整机(Hook 装在 system_server,只重启应用无效)
- 从左右下角斜向内上滑,呼出扇形菜单验证;首次重启后等侧边栏就绪(约半分钟)工具图标自动同步
装之前请先自检(能不能用)
模块只在满足全部下列条件时才工作。任一不满足 = "装了没反应"或"只有一半功能",
这不是 bug,是代码里的硬判定。
| # | 条件 | 不满足时的表现 |
|---|---|---|
| 1 | 系统为 Android 16 或 17(SDK 36 / 37) | 模块直接拒绝工作。 |
| 2 | ROOT 框架为支持 libxposed API 102 的 LSPosed(较新版本) | 模块根本不会被加载;老版 LSPosed / EdXposed / 太极不适用 |
| 3 | 系统为 ColorOS 16 / 17(一加 / OPPO / realme 等 OPlus ROM) | 非 ColorOS 系统没有 com.coloros.smartsidebar,不工作 |
| 4 | 已安装智能侧边栏且为系统应用、已启用、未冻结 | 「全部」面板不可用(扇形菜单可能仍可用) |
| 5 | LSPosed 中作用域 4 项全勾:系统框架 / 系统界面 / 桌面 / 智能侧边栏 |
只勾一部分会半残 |
实测环境:一加 15T(PLZ110)· ColorOS 17.0.0.103(CN01) · Android 17 / SDK 37 ·
智能侧边栏 17.9.2 / 170009002 · LSPosed 日志验证 8 个 Hook 全部 INSTALLED。
出问题怎么自查
模块内置诊断码,全程写入 LSPosed 日志(LSPosed 管理器 → 日志,或 /data/adb/lspd/log/):
| 看到的码 | 含义 |
|---|---|
| 日志里完全没有本模块名 | 框架不支持 / 模块未启用 / 作用域没勾 |
*_UNAVAILABLE、ClassNotFoundException、NoSuchMethodException |
厂商接口漂移(ROM 不匹配),已安全降级 |
RADIAL_ICON_FILL 有输出 |
system_server 侧注入成功,图标整形生效 |
TOOL_CATALOG_SERVED / TOOL_CATALOG_BROADCAST |
工具目录同步链路正常 |
TOOL_ICON_*_FAILED |
工具图标加载失败的具体环节 |
MODULE_SKIPPED_UNEXPECT(在 smartsidebar:edgepanel) |
正常现象,该进程不在作用域内 |
校验值
FlymeFreeform-0.1.15.apk
size 3,097,297 字节
md5 7c9375082f05156001e47551540624ac
sha256 09bfbbffea8433954360784506ff9abb85554dffef7c5ee63b43b070d3ac9539
签名 CN=bomo FlymeFreeform fork(v3 方案,SHA-256 79361CBF...E9E409E)
构建方式:gradlew :app:assembleRelease(R8 开启)→ zipalign -p -f 4 → apksigner sign(v2 + v3)。
免责声明
Xposed / LSPosed 模块会修改系统底层行为,存在系统不稳定、应用闪退甚至无法开机的风险。
请确保在具备救砖能力的前提下使用。因使用本模块导致的一切后果,本人及原作者均不承担责任。
本模块完全免费,严禁倒卖或用于任何盈利目的。
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 模块会修改系统底层行为,存在系统不稳定、应用闪退甚至无法开机的风险。
请确保在具备救砖能力的前提下使用。因使用本模块导致的一切后果,本人及原作者均不承担责任。
本模块完全免费,严禁倒卖或用于任何盈利目的。