Skip to content

Releases: Sillybomo/FlymeFreeform

FlymeFreeform v0.2.23

Choose a tag to compare

@Sillybomo Sillybomo released this 17 Oct 14:07

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 — 面板提速、工具启动优化与侧边栏开关

Choose a tag to compare

@Sillybomo Sillybomo released this 17 Oct 12:57

这是基于 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

Choose a tag to compare

@Sillybomo Sillybomo released this 17 Oct 14:41

正式版 APK,版本号 0.2.6,versionCode 48。

  • 统一左右呼出时字母索引与应用内容区域的镜像边距,左侧布局与右侧对称。
  • 保留此前版本的最近文件拖拽、索引震动反馈、系统侧边栏开关和系统工具交接优化。
  • 正式证书 v3 签名;已安装到 PLZ110 并核验设备报告版本号 0.2.6、versionCode 48。

SHA-256:11AE97D377E738741E6C9DF2442779E1F43E2661A17E72EFD99D96F466555C4C

v0.2.5

Choose a tag to compare

@Sillybomo Sillybomo released this 01 Oct 08:08

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

Choose a tag to compare

@Sillybomo Sillybomo released this 30 Sep 13:33

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

Choose a tag to compare

@Sillybomo Sillybomo released this 22 Sep 16:23

FlymeFreeform 二改版 v0.2.2

  • 「全部」面板:按呼出侧锚定(左呼贴左、右呼贴右),大小可在设置里滑动调节(调整后重启手机生效)
  • 角落触发热区:新增三角形形状,横向/纵向长度独立可调(扇形仍为默认)
  • 扇形应用设置页:内外圈样式统一,内圈也支持长按拖动排序
  • 修复内圈应用不显示、点击小窗外偶尔关不掉小窗
  • 内外圈间距调宽,滑选不再误触
  • 体积从 60MB 精简到 3.1MB

直接覆盖安装即可;若提示签名不一致或应用未安装,先卸载旧版再装(配置会重置)。

v0.1.15 — 扇形双圈与侧边栏工具执行修复(二改版)

Choose a tag to compare

@Sillybomo Sillybomo released this 21 Sep 23:19

说明

本版是 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):三重根因,全部实测定位 ——
    1. 原厂工具条目的 activity 字段恒为空串(反编译实锤:new EntryBean(absTool.getAlias(), validPkg, "", 0, 0)),
      旧匹配逻辑永远落空后静默回退,现改按 getAlias() 匹配,与原厂内部一致;
    2. 工具执行时侧边栏处于后台,其内部 startForegroundService 被 Android 12+ 后台 FGS 限制拒绝
      且异常被原厂吞掉(logcat 实锤 BFGS denied: true),现绑定加
      BIND_ALLOW_FOREGROUND_SERVICE_STARTS 豁免并延迟 5 秒解绑保住豁免窗口;
    3. 工具目录回传通道的 replyTo 恒空导致链路从未触发,已修复。
  • 「选择应用」界面工具条目无图标(v0.1.15):Settings.Global 单值实测上限 32KB,
    带图标的工具目录约 60KB+ 写入被拒且异常被吞,界面读到的永远是旧残留。
    现 Settings 只存去图标文本作兜底,带图标版(72px WEBP)经 system_server 定向广播落盘。
  • 共享状态冷启动竞态:框架连接未就绪时的写入会丢失,现排队并在连上后补写。

优化

  • 内外圈几何调整:内圈图标与外圈同尺寸(不再缩小),两圈径向间距由 1.5dp 拉开至 12dp,
    外圈布局完全不变,解决"两圈贴太近"的观感问题。
  • 目录图标压缩:设置侧目录图标统一压到 72px WEBP,降低传输与落盘开销。
  • 诊断码补全:工具图标加载、目录中继、工具执行全链路均有诊断码,出问题看 LSPosed 日志即可定位环节。

安装与升级

  1. 从本二改版 v0.1.10 升级:签名相同,直接覆盖安装即可;
    从上游版或第三方二改版升级:先卸载(签名不同,覆盖会报 INSTALL_FAILED_UPDATE_INCOMPATIBLE)
  2. 安装 APK,在 LSPosed 管理器中启用模块
  3. 确认作用域 4 项均已勾选:系统框架 / 系统界面 / 桌面 / 智能侧边栏
  4. 重启整机(Hook 装在 system_server,只重启应用无效)
  5. 从左右下角斜向内上滑,呼出扇形菜单验证;首次重启后等侧边栏就绪(约半分钟)工具图标自动同步

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

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

# 条件 不满足时的表现
1 系统为 Android 16 或 17(SDK 36 / 37) 模块直接拒绝工作。⚠️ Android 15(SDK 35)装得上但用不了
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 适配(二改版)

Choose a tag to compare

@Sillybomo Sillybomo released this 20 Sep 16:43

说明

本版是 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 模块会修改系统底层行为,存在系统不稳定、应用闪退甚至无法开机的风险。
请确保在具备救砖能力的前提下使用。因使用本模块导致的一切后果,本人及原作者均不承担责任。
本模块完全免费,严禁倒卖或用于任何盈利目的。