HyperSideBar

一个将 HyperOS系统原生侧边栏替换为双层半圆扇形摇杆菜单的模块,提供多种呼出方式,支持展示全部可打开应用、设置快捷方式。

效果展示

模块设置展示:

模块功能展示

竖屏侧滑展示:

竖屏侧滑展示

竖屏底角斜滑展示:

底角斜滑展示

横屏展示:

横屏展示

功能介绍

呼出与选中、打开方式

呼出方式

  • 竖屏下:从屏幕中间位置的边缘向内滑动并停顿;
  • 竖屏下:从屏幕底角位置向屏幕中间滑动;
  • 横屏下:从屏幕左上角边缘向内滑动并停顿。 注意:
  • 停顿时长与触发滑动距离均可在设置中调整;
  • 底角斜滑的呼出方式默认关闭,且只能在小白条正常显示时触发;
  • 横屏的位置与HyperOS系统触发侧边栏的位置保持一致;
  • 共用系统原生返回手势但不冲突——不停顿则完全透传给返回手势,零干扰。

打开方式

  • 停留在应用上方即可选中;
  • 选中应用并停留片刻后即可以小窗形式打开应用;
  • 滑入中心死区或滑出外圈会清空预选;未选中任何应用时松手立即收起。

扇形应用

用于固定展示在扇形页面的应用。超过可展示总数时按合并顺序自动截断,固定应用数量不足时由系统推荐自动补充。

快捷应用

  • 第一位会展示系统自带的活动面板,当前场景没有面板时自动消失、用户项前移;
  • 用于固定展示在快捷栏的快捷应用,可启动 activity / service、qs 磁贴、shortcut 以及 intent 链接;
  • 应用快捷方式的清单:OS2/OS3 由桌面进程代查;OS4 桌面无 Java 层,改由模块以 root 枚举系统 ShortcutService(该页在 OS4 需要 root);
  • 最多同时展示六个快捷方式(含系统面板占位)。

展示全部可打开应用

  • 可展示所有可以以小窗形式打开的应用;
  • 固定展示在内圈的最后一位。

统计与诊断

  • 设置 → 关于 → 「诊断与统计」:使用统计(呼出 / 启动 / 成功率 / 误触率 / 平均响应,可导出 CSV)、应用内日志与自检报告;
  • 调试区提供「重启 hook 宿主」。

快速开始

  • 下载安装 APK(见 Releases);
  • 在 LSPosed 中启用模块,勾选作用域 手机管家(com.miui.securitycenter) 、**系统界面(com.android.systemui)**与 系统桌面(com.miui.home),然后重启这三个应用(或重启手机)即可正常使用;
  • 如需调整扇形面板的展示效果,在 布局与交互 栏点击竖屏 / 横屏 / 底角斜滑的预览图案,可自行调节图标大小、内外圈半径、内外圈应用数量;
  • 如需固定展示在扇形界面的应用,可在 应用 栏点击 扇形应用 自行选择并排序;
  • 如需固定展示的快捷方式,可在 应用 栏点击 快捷应用 自行添加并排序(添加页面可直接测试是否能正常启用);
  • 如需调整扇形背景的观感,在 交互 栏调节板材质浓度、背景压暗开关与背景模糊来源(采样壁纸 / 后方屏幕全屏 / 透明 / 关闭,默认关闭);
  • 从 v1.x 升级:包名已迁移为 io.github.mikudayoooooooo.hypersidebar,需卸载重装并在 LSPosed 重新勾选作用域,如有 root 授权需重新授予;
  • 如果出现扇形页面展示相关问题,可以尝试恢复默认值;
  • 如果出现软件/软件崩溃等问题,请立即停止使用;
  • 调试开关仅在 debug 构建中存在,release 版不含此功能。

注意事项

关于应用本身

  • 横屏时触发范围在左上/右上角(与系统原生侧边栏的呼出位置一致);
  • 竖屏时触发范围在中间位置(约整个屏幕 1/3 ~ 2/3 的位置);
  • 启用快捷方式可能需要root;
  • 游戏 / 视频工具箱开关必须保持开启,否则横屏状态下无法唤出;
  • 更新模块版本后,请再次重启上述三个应用(桌面 / 系统界面 / 手机管家),否则部分功能可能不生效;
  • 本项目只在 HyperOS 2(大致测试)、HyperOS 3.300 与 HyperOS 4 上实机验证过,其他机型或系统不保证可用性;
  • HyperOS 4 多数功能的实现都需要依赖 root,建议为该应用授权 root 以获取更好的体验;
  • HyperOS 2 只经过大概的测试,不确保完全可用;另有 QS 磁贴在冻结 / 后台受限场景的已知降级,详见下方「适配进度」;
  • LSPosed 框架必须支持 API 102 及以上;
  • 扇形应用展示的应用源于系统的 getFreeformSuggestionList,因此并不会展示所有应用;
  • 连续失败会触发熔断,hook 将不再主动生效(可在设置页查看通道状态并手动重试,或重启手机);
  • 本项目非官方模块、与小米无关,使用风险自负。

其他注意事项

本项目:

  • 包含作者的奇思妙想和朝令夕改的各种绝妙构思和决策;
  • 包括但不限于 GLM5.3、GLM5.3-flash、GLM5.2、DeepSeek-V4-flash、DeepSeek-V4-pro、MIMO V2.5 pro、Kimi K2.7 Code、Qwen3.8-Max、Qwen3.7-Plus 等各类或强或弱的模型精心熬制的一锅屎山代码,;
  • 可能存在的各类 bug 或者不完善的功能、漏洞;
  • 代码含人量较低。

基于

  • LSPosed(libxposed API)
  • miuix(HyperOS 风格 Compose UI 库)
  • EzXHelper
  • DexKit(运行时 dex 解析,用于宿主混淆类名的结构化定位;自 adapt/anchor-resolver 分支起引入,仅打包 arm64-v8a)

第三方组件与许可

本项目自身以 Apache License 2.0 发布。以下为随 APK 分发的第三方组件及其许可义务:

组件 版本 许可 说明
DexKit org.luckypray:dexkit:2.3.0 Apache-2.0(除 Core/)+ LGPL-3.0(Core/,即 libdexkit.so 内的 C++ 引擎) 精确源码见 GitHub tag 2.3.0 与 Maven 坐标 org.luckypray:dexkit:2.3.0
libxposed API / service 102.x Apache-2.0 编译期依赖(compileOnly),不随 APK 分发
EzXHelper 3.2.0-preview1 Apache-2.0 —
miuix 0.9.x Apache-2.0 —
MiuiBackGestureHook(源码衍生) — Apache-2.0 native 结构校验「底座」app/src/main/cpp/hsb_elf_view.{h,c}、hsb_import_got.{h,c}、hsb_a64_decode.{h,c} 自上游 miui-home-hyos-native/runtime_profile_resolver.cpp 逐函数移植(ElfView/AddOverflows/Contains/ReadInstruction/NormalizeDynamicPointer/ParseElf/BoundedStringEquals/FindImportGot/ResolveImports/Decode*/MatchesWords/InstructionEquals);每个文件头标注来源与许可,边界检查未删减

关于 DexKit 的 LGPL-3.0 部分(libdexkit.so):

  • 本项目仅调用、不修改该库,并以动态加载方式使用,因此本项目源码保持 Apache-2.0,无需按 LGPL 开放;
  • 该 .so 由模块在运行时加载,优先直接从模块 APK 内加载(<模块APK>!/lib/arm64-v8a/libdexkit.so, 该条目为 STORED 且页对齐,由系统 linker 直接 mmap),必要时回退到释放到宿主应用缓存目录后 以绝对路径 System.load 加载(文件名形如 hypersidebar_libdexkit_<模块版本>_arm64-v8a.so);
  • 替换此库的方法:把同 ABI 的其它 libdexkit.so 放到宿主应用的缓存目录下并命名为 hypersidebar_libdexkit_override_arm64-v8a.so(例如 /data/user/0/<宿主包>/cache/), 模块会优先加载该文件。本项目不对它做签名或完整性校验——这正是 LGPL-3.0 §4 要求的"用户可替换";
  • 完整文本:LGPL-3.0 https://www.gnu.org/licenses/lgpl-3.0.html、Apache-2.0 https://www.apache.org/licenses/LICENSE-2.0;
  • 若后续版本修改了 DexKit 源码,修改部分将按 LGPL-3.0 单独提供。

参考项目(致谢与出处)

项目 许可 参考内容
MiuiBackGestureHook Apache-2.0 HyperOS 4(Rust 桌面)native hook 路线的可行性论证与技术思路:LSPosed native entry 打包方式、RTLD_NOLOAD 回放已加载库、madvise(MADV_DONTNEED) 守卫模型、per-version launcher profile 机制。截至 native 探针(adapt/hyperos4 5af37b2)未复制其源码行;NativeAPIEntries 等 ABI 定义取自 LSPosed 官方 wiki《Native Hook》。自 spike/os4-native 的 native 结构校验「底座」起,app/src/main/cpp/hsb_* 三个文件为其源码衍生(Apache-2.0 允许,逐函数保留来源说明),见上表

开源协议

Apache License 2.0

Releases

2.3.0

Stable

10/20/2026, 1:50:03 PM

适配了更多的系统版本:

  • HyperOS 2
  • HyperOS 4

注意:

  • OS2 只经过大概的测试,不确保完全可用。
  • OS4 绝大多数功能都需要依赖 root 才能正常工作,建议授权以获得更好的体验。

新增:

  • 支持 LSPosed API 102(模块热重载)
  • HyperOS 4:竖屏侧滑+停顿、底角斜滑、横屏左上角呼出均可用
  • 小窗「点击空白」:关闭 / 缩小 / 图标(钉住)三档
  • 快捷方式:HyperOS 4 选择器(以 root 枚举系统快捷方式清单)

修复(相对 v2.2.0):

  • 底角斜滑:系统手势带不再接管;贴角起手落在侧条窗口内也能认领
  • 快捷方式保存不再整表覆盖(编辑器空缓存时保存会覆盖完整列表)
  • 系统手势带:小窗获焦时边缘返回按应用内返回处理
  • 导出面板补调用方令牌校验、移除冗余存储权限

升级说明:

  • 无包名断代,v2.2.0 可直接覆盖安装;升级后请重启三个宿主应用(桌面 / 系统界面 / 手机管家)
  • 需要 LSPosed(API 102+)

Assets

1

2.2.0

Stable

9/22/2026, 1:55:10 PM

新触发通道:底角斜滑

  • 竖屏从屏幕底角向中间斜滑即可呼出(类 Flyme 大半径四分之一弧,双环 13 个图标位)
  • 默认关闭,需在「交互与布局 → 呼出设置」显式开启;仅在小白条正常显示时可触发
  • 竖屏 / 横屏 / 底角三形态布局参数完全独立,点设置页预览图即可分别调

设置页重排

  • 首页按任务收敛为四区:模块 / 交互与布局 / 应用 / 外观
  • 低频的「恢复默认值」移到 关于页 → 调试
  • 扇形应用与快捷方式列表排序改用成熟拖拽组件:拖到列表上下边缘自动续滚、异高行让位平滑、起拖有触感反馈,手柄热区 24dp→40dp

扇形观感

  • 快捷栏独立成块、材质与扇形同源;弧带方向性渐隐;板形描边升级玻璃渐变高光;圆角全面对齐 HyperOS squircle
  • 设置页预览与真机共用同一套几何/视觉常量,所见即所得(预览数量、胶囊框线、生效图标尺寸均同源)

统计与诊断

  • 误触率改逐事件口径 v2:分通道出 R1(硬)/R2(软)/R(综合),「误触后重呼出并成功」单列不剔除,合格与否按通道各自判定(不再被大盘摊平)
  • 数据全部本地留存,可导出 CSV(含逐事件明细),无网络上传

稳定性与安全

  • 关闭 allowBackup:中继令牌、熔断状态等 IPC 敏感数据不再随云备份或换机迁移外泄
  • 修复 COMPONENT/SERVICE 快捷方式偶发「静默假成功」(类名归一化产出相对类名,PMS 字面匹配解析失败)
  • 磁贴缓存改有界 LruCache、熔断计数改原子、修子进程 FD 泄漏与多处热路径重复构造
  • 应用图标全项目共用一份进程级缓存,长列表回滑零 binder

依赖

  • miuix 0.9.3 → 0.9.4(迁 miuix-nav 引擎、JVM 21、activity 1.13)、Kotlin 2.4.0
  • 新增 sh.calvin.reorderable;移除零引用的 appcompat / material

默认参数(新装或「恢复默认值」后生效)

图标统一 32dp;竖屏 110/160·内6外9;横屏 130/180·内5外6;底角 216/270·内5外8

升级说明

与 2.0.0 / 2.1.0 同包名同签名,可直接覆盖安装(versionCode 2026092224 > 2026091531);覆盖后请重启三宿主(桌面 / SystemUI / securitycenter:ui)再验证。

Assets

1

v2.0.0

Stable

9/9/2026, 9:17:11 AM

HyperSideBar v2.0.0

新增

  • QS 磁贴快捷开关:快捷栏可直接添加系统磁贴(无须 root、无须加入控制中心)
  • 动态/固定快捷方式:快捷方式选择器覆盖应用运行时推送的动态项与桌面 pinned 项——微信扫一扫、收付款、我的二维码等可直接上栏,经桌面代发启动
  • 扇形背景雾化:弧缘雾化强度可调 + 压暗开关(交互页)
  • 呼出停顿时长可调(交互页)

改进

  • 快捷方式类型扩展:在 activity / service / intent 之外新增上述类型,添加入口按「磁贴 / 快捷方式」分页
  • 全部应用面板 MIUI 化:页面骨架、字母索引条、磁贴细节全面对齐系统样式
  • 快捷栏展示宿主真图标、图标圆角统一、扇形几何调优
  • 修复 v1.1 图标大小调节在部分场景不生效的问题

性能

  • 呼出即预热:扇形面板跨呼出复用(无重复装配)、推荐列表与图标缓存预载、磁贴/快捷方式的目标进程预启动——点击即开,不等冷启动
  • 全部应用面板冷启动优化,打开无列表空窗、无图标闪现

升级注意(v1.1 → v2.0.0)

  • 包名迁移:com.lsp.hypersidebar → io.github.mikudayoooooooo.hypersidebar——需卸载重装,并在 LSPosed 重新勾选作用域;如有 root 授权需重新授予
  • 调试开关仅在 debug 构建中存在,release 版不含
  • 可选 root:仅"启动非导出组件"的兜底场景需要;磁贴与快捷方式无须 root

使用要求

  • HyperOS / MIUI + LSPosed(libxposed API 101+)
  • LSPosed 作用域勾选:系统界面、系统桌面、手机管家(com.miui.securitycenter),勾选后重启这三个应用
  • 仅在 HyperOS 3.300 验证通过,其他版本不保证可用
  • 扇形应用来源含系统推荐列表,不会展示所有应用;请使用「全部应用」入口兜底
  • 非官方模块、与小米无关,使用风险自负

Assets

1

2.1.0

Stable

9/15/2026, 3:46:01 PM

在 v2.0.0 基础上的功能与体验升级。包名未变,覆盖安装即可。

新增

  • 使用统计:呼出 / 启动 / 取消次数、成功率、误触率、平均响应,支持按天导出 CSV;纯本地记录,无网络上传
  • 日志与诊断:应用内日志页(桌面 / 执行端 / 本应用 三进程环形缓冲,支持过滤、搜索、导出);自检报告一键生成;调试区新增「重启 hook 宿主」
  • 扇形背景模糊:新增「背景模糊来源」——采样壁纸(板内真实磨砂,横竖屏可用)、后方屏幕全屏、透明、关闭,默认关闭;壁纸变更与横竖屏切换自动刷新
  • 手势可调:呼出「滑动距离」可在设置中调整(默认 15dp),新增交互设置页
  • 设置项标注生效时机(立即 / 下次呼出 / 重启宿主);配置推送丢失时,下次呼出自动拉取兜底

改进

  • 扇形菜单与快捷栏使用同一块连体磨砂板,材质统一
  • 图标不再整体降低透明度,选中态改由放大 + 高亮表达
  • 图标尺寸滑条量程自动适配扇形图标数量,消除无效区段

修复

  • 修复改动设置偶发不生效、需重开模块才生效的问题
  • 修复呼出偶发显著变慢(手指缓慢移动或回滑微抖导致计时被反复重置,实测可达数秒)
  • 修复已在运行的应用以小窗打开时先闪现全屏页的问题
  • 修复「全部应用」冷启动白屏 / 空列表(现为加载骨架 + 失败重试)
  • 安全:修复 relay 令牌经全局广播暴露的问题(可被第三方应用接收并借 root 启动非导出组件)

性能

  • 正常路径呼出延迟与 v2.0.0 持平(热链路约 40ms 级);统计与日志为低频写入设计,不增加呼出负担

升级注意

  • 扇形背景默认为纯色板(观感最接近 v2.0.0);想要磨砂效果,在「交互 → 背景模糊来源」中选择
  • 原「扇形背景雾化」滑条更名为「板材质浓度」,语义与手感不同,需重新调整
  • 诊断 / 日志 / 统计入口移至:设置 → 关于 → 「诊断与统计」
  • 触发默认值不变(停顿 250ms、滑动距离 15dp)
  • 更新后请重启 手机管家 / 系统界面 / 系统桌面 三个宿主应用

Assets

1