FuseHide

FuseHide 是一个面向 Android 12+ 的 LSPosed 模块与 MediaProvider/FUSE 调试工具。

模块会在 MediaProvider 进程中加载 libfusehide.so,并在 libfuse_jni.so 加载后安装 native hook。当前实现同时覆盖两类问题:

  • /storage/emulated/0 下普通路径的运行时隐藏
  • Android/dataAndroid/obb 相关 Unicode 场景的调试与修复

模块简介

FuseHide 提供运行时可配置的隐藏策略,用于对指定应用隐藏 /storage/emulated/0 下的目标路径,并提供与 MediaProvider 注入进程联动的调试能力。

主要功能包括:

  • 对指定包名对应的 UID 生效
  • 支持隐藏一级目录名,例如 xinhaoMT2
  • 支持隐藏相对路径,例如 Download/private
  • 支持“隐藏所有一级目录”模式,并允许配置例外项
  • 支持在应用侧编辑配置,并热同步到已注入的 MediaProvider 进程
  • 支持读取当前注入进程中的 native 配置快照
  • 支持对目标路径执行 stataccesslistopenmkdirrename 等检测

作用域

推荐作用域:

  • com.android.providers.media.module
  • com.google.android.providers.media.module

工作方式

模块入口由 assets/xposed_init 指向 io.github.xiaotong6666.fusehide.Entry

命中 MediaProvider 作用域后,模块会在目标进程中加载 libfusehide.so。native 层在检测到 libfuse_jni.so 被加载后执行 hook 安装。Java 层与注入进程通过广播、HideConfigProviderHideConfigRequestReceiver 同步状态与隐藏配置。

普通路径隐藏使用 MediaProvider 的 FUSE 处理链路完成,不依赖 fuse-bpf。Android/dataAndroid/obb 使用单独的访问控制路径;模块在该部分保留了特殊路径判断相关 hook,用于修复 Unicode 可忽略码点绕过。

当前默认配置

当前默认值来自 native 层:

  • enableHideAllRootEntries=false
  • hideAllRootEntriesExemptions=[Android]
  • hiddenRootEntryNames=[xinhao, MT2]
  • hiddenRelativePaths=[]
  • hiddenPackages=[com.eltavine.duckdetector, io.github.xiaotong6666.fusehide, io.github.a13e300.fusehide]

使用说明

  1. 安装 APK。
  2. 在 LSPosed 中启用 FuseHide。
  3. 勾选推荐作用域。
  4. 重启 MediaProvider 作用域进程,或直接重启设备。
  5. 打开应用,确认 Hook 状态显示已 Hook。
  6. 在“配置”页面编辑隐藏策略,并使用“应用”按钮同步到注入进程。
  7. 在“检测”页面执行路径检查,验证隐藏结果是否符合预期。

调试信息

应用界面会显示以下系统属性:

  • ro.fuse.bpf.is_running
  • persist.sys.vold_app_data_isolation_enabled
  • external_storage.sdcardfs.enabled

建议反馈问题时附带设备型号、系统版本、MediaProvider 版本、目标路径、目标包名、配置文本和 adb logcat -s FuseHide 输出。

源码与发布

许可证

  • app/src/main/cpp/third_party/xz-embedded/* 保持其上游 0BSD 许可证
  • 本项目其余部分采用 Apache License 2.0

Releases

1.99

Stable

7/2/2026, 4:45:09 PM

同步自 主仓库 构建产物喵

  • Version: 1.99
  • VersionCode: 99
  • Commit: a11c922
  • Build time: 5m 37s
  • SHA256: 3f8597dc1f1adcd015929bae93e4198244234fbaee5837a2af0485f91571247d

Message

fix(native): 修复 libfuse_jni hook 点动态匹配 #30

- 补充 is_app_accessible_path 的符号变体
- 为多个 FUSE handler 增加 contains fallback 解析路径
- 降低因符号签名变化导致的 hook 解析失败概率

Assets

1

1.98

Stable

7/2/2026, 10:19:31 AM

同步自 主仓库 构建产物喵

  • Version: 1.98
  • VersionCode: 98
  • Commit: bc443b5
  • Build time: 5m 00s
  • SHA256: 685df34729d34c6845e7f6ce9a35cac1d62421af4b28605aa7d24f9af9ca8454

Message

build(deps): bump androidx.baselineprofile (#27)

Bumps androidx.baselineprofile from 1.5.0-alpha06 to 1.5.0-alpha07.

---
updated-dependencies:
- dependency-name: androidx.baselineprofile
  dependency-version: 1.5.0-alpha07
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <xiaotong6666@users.noreply.github.com>

Assets

1

1.95

Stable

6/30/2026, 4:56:54 PM

同步自 主仓库 构建产物喵

  • Version: 1.95
  • VersionCode: 95
  • Commit: f616704
  • Build time: 5m 15s
  • SHA256: a23be4d3009c3fc50ce3082ce199784f0e965c8cacbe13d0a9712208f3828363

Message

build(deps): bump com.diffplug.spotless from 8.7.0 to 8.8.0 (#26)

Bumps com.diffplug.spotless from 8.7.0 to 8.8.0.

---
updated-dependencies:
- dependency-name: com.diffplug.spotless
  dependency-version: 8.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <xiaotong6666@users.noreply.github.com>

Assets

1

1.94

Stable

6/29/2026, 9:35:46 AM

同步自 主仓库 构建产物喵

  • Version: 1.94
  • VersionCode: 94
  • Commit: 1cb29d8
  • Build time: 5m 42s
  • SHA256: 192319d93a0e3b5be4261db00a41466024cbc90f60f7a88ba55df02c31a2d003

Message

build(deps): bump gradle-wrapper from 9.6.0 to 9.6.1 (#24)

Bumps [gradle-wrapper](https://github.com/gradle/gradle) from 9.6.0 to 9.6.1.
- [Release notes](https://github.com/gradle/gradle/releases)
- [Commits](https://github.com/gradle/gradle/compare/v9.6.0...v9.6.1)

---
updated-dependencies:
- dependency-name: gradle-wrapper
  dependency-version: 9.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Assets

1

1.93

Stable

6/25/2026, 10:32:49 AM

同步自 主仓库 构建产物喵

  • Version: 1.93
  • VersionCode: 93
  • Commit: f4c1593
  • Build time: 3m 24s
  • SHA256: f6fe02aa3c4a6cdaeeecd5e5ac5337aee3d0d3eaa6ea2910a490330d038d2966

Message

refactor(status): 重构 Hook 状态检测流程

- 使用 Handler 替代 Thread + ReferenceQueue 超时检测
- 增加 token 校验,避免过期回调
- 重构广播状态处理逻辑,优化检测流程
- 清理超时任务,避免无效回调

Assets

1

1.92

Stable

6/22/2026, 8:38:41 AM

同步自 主仓库 构建产物喵

  • Version: 1.92
  • VersionCode: 92
  • Commit: 2f61752
  • Build time: 2m 22s
  • SHA256: b89be83e744789ce6c939021fe55ee4317c2149837a390b2ddca7e94d66c1381

Message

chore(import): 移除未使用的 Kotlin 导入

Assets

1

1.91

Stable

6/21/2026, 11:27:41 AM

同步自 主仓库 构建产物喵

  • Version: 1.91
  • VersionCode: 91
  • Commit: 7f4d1fd
  • Build time: 3m 07s
  • SHA256: 87347830ce09346aa35fd7d878afd6fedb4a6fdb727d38355cbfe0b933526338

Message

fix(status): 修复状态广播兼容性并完善界面文案

- 使用 ContextCompat 注册动态广播接收器,兼容 Android 13 前后行为
- 兼容旧系统 PendingIntent extra 读取方式
- 调整页面 modifier/title 传递、主题命名与多语言资源

Assets

1

1.90

Stable

6/19/2026, 5:47:57 PM

同步自 主仓库 构建产物喵

  • Version: 1.90
  • VersionCode: 90
  • Commit: 2692809
  • Build time: 2m 50s
  • SHA256: b37ce456ac3e30fd411090833d8910ee856345319a47fdc0dbf6072015c4181f

Message

refactor(pager): 使用 Animatable 重构分页弹簧动画实现
使用 Compose Animatable 替代手动 TargetBasedAnimation 帧循环

Assets

1

1.89

Stable

6/19/2026, 8:42:35 AM

同步自 主仓库 构建产物喵

  • Version: 1.89
  • VersionCode: 89
  • Commit: 9f47764
  • Build time: 5m 22s
  • SHA256: 180de7cdcf5063d3680fd8159a944a60a7b978ab655ccee381731d1f7413ff01

Message

build(deps): bump gradle-wrapper from 9.5.1 to 9.6.0 (#21)

Bumps [gradle-wrapper](https://github.com/gradle/gradle) from 9.5.1 to 9.6.0.
- [Release notes](https://github.com/gradle/gradle/releases)
- [Commits](https://github.com/gradle/gradle/compare/v9.5.1...v9.6.0)

---
updated-dependencies:
- dependency-name: gradle-wrapper
  dependency-version: 9.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <xiaotong6666@users.noreply.github.com>

Assets

1

1.88

Stable

6/19/2026, 4:10:39 AM

同步自 主仓库 构建产物喵

  • Version: 1.88
  • VersionCode: 88
  • Commit: 9f62fef
  • Build time: 4m 52s
  • SHA256: 74bac8732ff149572468d3d9273620b4937962679a9deef9c3c8faa090da732b

Message

refactor(pager): 重构分页状态管理与弹簧动画

- 引入 MainPagerState 统一管理导航状态
- 使用 TargetBasedAnimation 替换手写弹簧实现
- 优化分页切换过程中的状态同步逻辑

Assets

1

1.87

Stable

6/18/2026, 3:58:01 PM

同步自 主仓库 构建产物喵

  • Version: 1.87
  • VersionCode: 87
  • Commit: d0d727e
  • Build time: 4m 53s
  • SHA256: 5c9885e4eb3f0accd55bb42d40a3426e9bff3ee8ae8a38fee07f0ae70a7b6fd3

Message

fix(MainPage): 修复页面切换动画中状态错位导致底栏失效问题

Assets

1

1.86

Stable

6/18/2026, 1:37:03 PM

同步自 主仓库 构建产物喵

  • Version: 1.86
  • VersionCode: 86
  • Commit: 47b3285
  • Build time: 5m 07s
  • SHA256: 8f6a3dca4923cde8ecbd9a8ee8e955121388f2ebc8065a2f42c29e866747a2f0

Message

build(deps): bump androidx.compose:compose-bom (#18)

Bumps androidx.compose:compose-bom from 2026.05.01 to 2026.06.00.

---
updated-dependencies:
- dependency-name: androidx.compose:compose-bom
  dependency-version: 2026.06.00
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XiaoTong6666 <XiaoTong6666@users.noreply.github.com>

Assets

1

1.85

Stable

6/18/2026, 9:39:04 AM

同步自 主仓库 构建产物喵

  • Version: 1.85
  • VersionCode: 85
  • Commit: 68c9374
  • Build time: 4m 47s
  • SHA256: 1d6d5c469d03abcd6d8d04c9b7dc1617484d8c79df40bc3907aaad16725b1df2

Message

build(deps): bump androidx.lifecycle:lifecycle-runtime-ktx (#19)

Bumps androidx.lifecycle:lifecycle-runtime-ktx from 2.10.0 to 2.11.0.

---
updated-dependencies:
- dependency-name: androidx.lifecycle:lifecycle-runtime-ktx
  dependency-version: 2.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XiaoTong6666 <XiaoTong6666@users.noreply.github.com>

Assets

1

1.84

Stable

6/17/2026, 2:21:21 AM

同步自 主仓库 构建产物喵

  • Version: 1.84
  • VersionCode: 84
  • Commit: dc73f33
  • Build time: 5m 03s
  • SHA256: dcd50728c519228a8c65205c0ed280419fa329d7668940ea087f5fee01d802c2

Message

build(deps): bump com.diffplug.spotless from 8.6.0 to 8.7.0 (#17)

Bumps com.diffplug.spotless from 8.6.0 to 8.7.0.

---
updated-dependencies:
- dependency-name: com.diffplug.spotless
  dependency-version: 8.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XiaoTong6666 <110387028+XiaoTong6666@users.noreply.github.com>

Assets

1

1.83

Stable

6/16/2026, 1:53:42 PM

同步自 主仓库 构建产物喵

  • Version: 1.83
  • VersionCode: 83
  • Commit: 7d13ca2
  • Build time: 3m 10s
  • SHA256: 181171daa60acf0c01aa9f57df5c37abc2e1f2cb48e607d28bc4610cc4d3bccd

Message

fix(ui): 修复页面切换状态同步问题

Assets

1

1.81

Stable

6/16/2026, 7:13:30 AM

同步自 主仓库 构建产物喵

  • Version: 1.81
  • VersionCode: 81
  • Commit: 5fb06e4
  • Build time: 2m 51s
  • SHA256: 02d1d4e842aac64cbd7277ea68f46f8810fe40cc1ee261d3faf10d89c3f5e10a

Message

chore(deps): 更新 profileinstaller 至 1.4.1

Assets

1

1.79

Stable

6/16/2026, 6:57:27 AM

同步自 主仓库 构建产物喵

  • Version: 1.79
  • VersionCode: 79
  • Commit: 72fa7e2
  • Build time: 2m 47s
  • SHA256: 2240ae6fc02a040d395438727f3557a833a7345490cefee4cc83e8bc8d666241

Message

refactor(ui): 重构设置页面组件布局

- 引入 SettingsGroup 设置组结构
- 替换旧 ConfigToggleCard 与 InfoPanel 实现
- 增加 Material/Miuix 双端设置项组件实现
- 优化设置页布局与组件复用

Assets

1

1.78

Stable

6/16/2026, 5:35:36 AM

同步自 主仓库 构建产物喵

  • Version: 1.78
  • VersionCode: 78
  • Commit: 0d68df5
  • Build time: 3m 04s
  • SHA256: 02b33086176cc650ca33b2a67cdd7e65a4db618f2fd23f64f75f85da05e0c834

Message

refactor(ui): 移除页面区块外层卡片容器

- 移除 SectionCard 的背景、圆角和边框包裹效果
- 调整页面内容布局层级,将信息组件从区块卡片内部移出
- 统一 Material 与 Miuix 下的 SectionCard 行为为无容器布局
- 优化页面整体视觉层次,减少重复嵌套

Assets

1

1.77

Stable

6/15/2026, 7:51:51 PM

同步自 主仓库 构建产物喵

  • Version: 1.77
  • VersionCode: 77
  • Commit: fe1a6c4
  • Build time: 4m 36s
  • SHA256: e7a3be6f58dfae932f983a94382fb5e5a61e19ff3602621ccb069c03b5831466

Message

build: 引入 Baseline Profile 支持和启动性能基准测试

Assets

1

1.76

Stable

6/15/2026, 7:36:15 PM

同步自 主仓库 构建产物喵

  • Version: 1.76
  • VersionCode: 76
  • Commit: 9770fb1
  • Build time: 2m 56s
  • SHA256: 7d1bc86d9170ea0542608cb4d7c0ea9ede95c72c596b7fa208444c9ba3c7b71c

Message

refactor(ui): 重构页面导航与 Compose 页面结构

- 使用底部导航替代顶部标签导航,基于 HorizontalPager 实现页面切换
- 拆分页面结构,新增首页、设置页并整理现有配置页和探测页
- 将运行状态概览、同步状态和设备信息移动至首页展示
- 简化配置页面,移除重复的状态展示和刷新入口
- 优化 Pager 页面切换动画,加入自定义弹簧滚动效果
- 设置相关 UI 调整至独立设置页面
- 优化通用 UI 组件,支持单按钮布局和更合理的交互逻辑
- 移除无用主题颜色配置,改用动态颜色方案
- 添加 material-icons-extended 依赖
- 清理废弃资源和多语言字符串

Assets

1

1.75

Stable

6/15/2026, 11:41:46 AM

同步自 主仓库 构建产物喵

  • Version: 1.75
  • VersionCode: 75
  • Commit: b5d6fe1
  • Build time: 3m 00s
  • SHA256: 5f97940f09ee929a94408cfd269105a3118b6361c051878ce7c923c8592da219

Message

refactor(xposed): 回退热重载并恢复稳定冷加载路径

Assets

1

1.74

Stable

6/14/2026, 1:06:02 PM

同步自 主仓库 构建产物喵

  • Version: 1.74
  • VersionCode: 74
  • Commit: be87c96
  • Build time: 1m 28s
  • SHA256: 10fe79ccbace6af0659f5cf100cb91b932fbfac5dcdc1381c47a760c15c4c9d9

Message

feat(xposed): 迁移至 libxposed API 102 并引入 Native 热重载架构

将 Xposed 模块升级至 libxposed API 102。移除本地 xposed-stubs 模块,改为通过 libs.versions.toml 引用官方 io.github.libxposed:api:102.0.0 依赖。清理 AndroidManifest.xml 中废弃的 Xposed <meta-data> 标签,将模块配置完全交由 module.prop 接管,并启用 autoHotReload。与此同时,将 Java/Kotlin 编译目标统一升级至 Java 17。

Java 层实现 onHotReloading 与 onHotReloaded 回调以支持动态热重载。新增 buildSavedInstanceState 和 restoreSavedInstanceState 机制,在热重载期间安全保存并恢复 Application、ClassLoader 等上下文状态。重构 Hook 逻辑,通过 HookHandle 记录并替换 Application.attach 与 isUidAllowedAccessToDataOrObbPathForFuse 的 Hook 实例,同时完善 BroadcastReceiver 的注销、重建与热重载后配置重同步生命周期。

Native 层重构为“宿主-载荷 (Anchor-Payload)”架构。将大部分原函数入口与运行期状态收敛到 AnchorProcessState 和 HookThreadState 中管理,并补齐 gOriginalIsAppAccessiblePath 的状态一致性。fuse_wrappers.cpp 降级为路由转发层,核心隐藏逻辑抽离至 payload_builtin.cpp。

引入基于 FuseHideAnchorApi 和 FuseHidePayloadApi 的 ABI 演进机制。新增 anchor_state.cpp 管理 NativeGeneration,通过原子引用计数 (activeCalls) 和排空标志 (draining) 实现无锁、安全的 RCU 风格 Native 逻辑热替换。当前 external payload 的设计边界明确为“同仓构建、共享主库 helper 与状态的热重载代码载体”,而不是面向第三方的完全独立插件 ABI,并在 CMake 中新增 fusehide_payload 构建目标。

新增 switchToBuiltinNativeGeneration 等 JNI 接口供 Java 层在热重载时触发 Native 代际切换。更新多语言 strings.xml 补充应用描述及配置恢复相关文案,并在 README.md 中补充 Native 热重载校验指南与 ABI 演进规则。

Assets

1

1.72

Stable

6/9/2026, 6:08:23 PM

同步自 主仓库 构建产物喵

  • Version: 1.72
  • VersionCode: 72
  • Commit: 228c32b
  • Build time: 4m 17s
  • SHA256: e311b6c59bc431b8607bd18f00e74f3816be85a2922891fd9a9becb1fb239fd1

Message

build(deps): bump top.yukonga.miuix.kmp:miuix-ui from 0.9.1 to 0.9.2 (#15)

* build(deps): bump top.yukonga.miuix.kmp:miuix-ui from 0.9.1 to 0.9.2

Bumps [top.yukonga.miuix.kmp:miuix-ui](https://github.com/compose-miuix-ui/miuix) from 0.9.1 to 0.9.2.
- [Release notes](https://github.com/compose-miuix-ui/miuix/releases)
- [Commits](https://github.com/compose-miuix-ui/miuix/compare/v0.9.1...v0.9.2)

---
updated-dependencies:
- dependency-name: top.yukonga.miuix.kmp:miuix-ui
  dependency-version: 0.9.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix(ui): 修复 Miuix 文本框构建失败

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XiaoTong6666 <3278671549@qq.com>

Assets

1

1.71

Stable

6/4/2026, 2:18:15 AM

同步自 主仓库 构建产物喵

  • Version: 1.71
  • VersionCode: 71
  • Commit: c65e721
  • Build time: 4m 03s
  • SHA256: 30ffa65f951db6bfd26d5980206d1284a558ab2769934feaf0c2e90d6c6b7eba

Message

build(deps): bump androidx.core:core-ktx from 1.18.0 to 1.19.0 (#14)

Bumps androidx.core:core-ktx from 1.18.0 to 1.19.0.

---
updated-dependencies:
- dependency-name: androidx.core:core-ktx
  dependency-version: 1.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Assets

1

1.69

Stable

6/1/2026, 3:31:57 PM

同步自 主仓库 构建产物喵

  • Version: 1.69
  • VersionCode: 69
  • Commit: 340cb86
  • Build time: 2m 32s
  • SHA256: 232ccbbaa5d4453586373a0e77ace8c1da44b63e1b12b6ae66a87824e69132ea

Message

fix(build): 修复 ktlint rule 禁用格式以适配 ktlint 1.x

Assets

1

1.68

Stable

6/1/2026, 3:00:07 PM

同步自 主仓库 构建产物喵

  • Version: 1.68
  • VersionCode: 68
  • Commit: 96b4ed9
  • Build time: 4m 18s
  • SHA256: b006fc5092ecbfa3deea3e6a9a047ab27b80c84ac53ec3cd440d5ab53b0f1d72

Message

build(deps): bump gradle-wrapper from 9.4.1 to 9.5.1 (#11)

Bumps [gradle-wrapper](https://github.com/gradle/gradle) from 9.4.1 to 9.5.1.
- [Release notes](https://github.com/gradle/gradle/releases)
- [Commits](https://github.com/gradle/gradle/compare/v9.4.1...v9.5.1)

---
updated-dependencies:
- dependency-name: gradle-wrapper
  dependency-version: 9.5.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Assets

1

1.65

Stable

6/1/2026, 2:24:56 PM

同步自 主仓库 构建产物喵

  • Version: 1.65
  • VersionCode: 65
  • Commit: ed52612
  • Build time: 3m 03s
  • SHA256: 39b44f61f339a1be40b6969766eb393e7dcb48e01c80b12ebc0a5721b4daa79d

Message

style: format code

Assets

1

1.63

Stable

5/29/2026, 11:48:09 AM

同步自 主仓库 构建产物喵

  • Version: 1.63
  • VersionCode: 63
  • Commit: e23a54d
  • Build time: 2m 47s
  • SHA256: 4c969af5aeb4fa46237b929fe677268fd62745c3f593bf83b1a02d3be06de3fc

Message

refactor(ui): 收敛双主题页面结构

将配置页和检测页从 Material / Miuix 两套完整页面实现收敛为单一页面结构,保留现有双主题视觉效果。

- ConfigScreen / DebugScreen 统一维护页面结构、字段顺序和按钮分组
- 新增标题、说明、输入框、配置勾选卡片和文本按钮的主题适配组件
- Material / Miuix 的字体、颜色、卡片、输入框和按钮样式继续分别在 UiComponentsMaterial / UiComponentsMiuix 中实现
- 删除重复的 ConfigScreenMaterial / ConfigScreenMiuix / DebugScreenMaterial / DebugScreenMiuix 页面文件
- 降低后续修改配置字段和检测按钮时两套 UI 不一致的风险

Assets

1

1.62

Stable

5/29/2026, 6:55:06 AM

同步自 主仓库 构建产物喵

  • Version: 1.62
  • VersionCode: 62
  • Commit: b1c7eb0
  • Build time: 2m 56s
  • SHA256: cdf7e91a03d028e5ab5c63e1c88a9c18def09785bff0021d2cc6d30e50d78246

Message

style(ui): 调整检测按钮样式层级

Co-authored-by: Xieansecn <xieansecn@users.noreply.github.com>

Assets

1

1.61

Stable

5/29/2026, 6:18:55 AM

同步自 主仓库 构建产物喵

  • Version: 1.61
  • VersionCode: 61
  • Commit: a047ce6
  • Build time: 2m 49s
  • SHA256: 0ac15361d6b5b11916d24ab356ee197b3c9bd982fd2fdaf49fe6eaa6bfb98424

Message

fix(config): 避免缺失本地配置时覆盖隐藏策略

- 区分本地未保存配置与默认配置,避免 provider/fallback 返回默认值
- 保留 MediaProvider snapshot 恢复结果,防止启动阶段被空本地配置覆盖
- 本地配置缺失时支持从当前 applied 配置恢复并同步三处状态
- 移除配置页 Save 按钮,统一通过 Apply 持久化并同步 MediaProvider

Assets

1

1.60

Stable

5/28/2026, 8:53:52 PM

同步自 主仓库 构建产物喵

  • Version: 1.60
  • VersionCode: 60
  • Commit: bb35681
  • Build time: 3m 12s
  • SHA256: e7c3d760760927194f2d2fabaf2da6b65281c7dd2e9a0d17b99d30b23e5abae0

Message

feat(config): 隐藏配置应用后输出完整快照日志

在 applyBundleToNative 成功后以 INFO 级别输出当前 native 隐藏配置完整快照,覆盖初始加载和广播刷新的全部路径

Assets

1

1.59

Stable

5/28/2026, 8:24:33 PM

同步自 主仓库 构建产物喵

  • Version: 1.59
  • VersionCode: 59
  • Commit: 9cacace
  • Build time: 3m 24s
  • SHA256: 18a3bc9b184b4c81d5dc76579d3bcb20c7d27f72363ad7ab47953f07d4a244c5

Message

feat(ui): 支持 Miuix / Material Design 3 双主题切换 (#8)

运行时主题切换,默认 Miuix,可通过右上角按钮切换为 MD3:

- 新增 UiMode 枚举,通过 SharedPreferences 持久化选择
- Theme.kt 作为分发器,根据 UiMode 路由至 MiuixFuseHideTheme / MaterialFuseHideTheme
- 新增 Material Design 3 主题配置 (Color / Shape / Typography + dynamic color)
- 所有 UI 组件拆为 *Miuix.kt / *Material.kt 双实现,通过同名分发器函数调用
- FuseHideHomeScreen 右上角添加 M3 / MIUI 切换按钮
- 同时保留 miuix 与 material3 依赖

Co-authored-by: Xieansecn <xieansecn@163.com>

Assets

1

1.58

Stable

5/28/2026, 6:39:35 PM

同步自 主仓库 构建产物喵

  • Version: 1.58
  • VersionCode: 58
  • Commit: f5057f5
  • Build time: 4m 04s
  • SHA256: 5c50b91a28a6af5016d27a08fcf53c42b67e09e8fe76590e682a485d810d49ce

Message

build(deps): 更新 AGP 及其他依赖版本

- AGP (Android Gradle Plugin) 升级至 9.2.1
- Compose BOM 升级至 2026.05.01
- Spotless 升级至 8.6.0
- Miuix 升级至 0.9.1

Assets

1

1.57

Stable

5/28/2026, 6:07:43 PM

同步自 主仓库 构建产物喵

  • Version: 1.57
  • VersionCode: 57
  • Commit: 6a4d916
  • Build time: 2m 30s
  • SHA256: 1ebf7ceb0db49dd1d94950e38cd8a47340fe12574cbde47ea53f7bd0b4102df5

Message

feat(xposed): 迁移至 libxposed API 101

将 Xposed 模块从 legacy API 93 迁移到 libxposed API 101,native 入口通过 LSPosed 的 do_dlopen → PostNativeInit 回调链保持单一路径。

Entry 改为 extends XposedModule,onPackageLoaded 替代 handleLoadPackage,XposedHelpers.findAndHookMethod 改为 hook(Method).intercept(Hooker),AndroidAppHelper.currentApplication() 改为 hook Application.attach 捕获并新增 ActivityThread fallback,isUidAllowedAccessToDataOrObbPathForFuse debug hook 保留 FLAG_DEBUGGABLE 守卫并使用 getMethod() 匹配旧 findAndHookMethod 的继承链行为。

xposed-stubs 删除旧 xposed stubs,替换为 libxposed API 101 源码,从 java-library 改为 android.library 并升级 Java 17,app 侧 compileOnly 引用确保 API 类不进 APK。

将 assets/xposed_init 和 native_init 迁移为 META-INF/xposed/java_init.list 和 native_init.list,并新增 module.prop 和 scope.list,替代旧 AndroidManifest 中的 xposedmodule / xposedscope 机制。

native_init 接收 NativeAPIEntries 赋值 gHookInstaller,返回 PostNativeInit 作为库加载回调,InstallFuseHooks 仅由 PostNativeInit 触发,移除 native_init 直调和 JNI installFuseHooks 双入口。

AndroidManifest xposedminversion 93 → 101。

StatusBroadcastReceiver 适配 PendingIntent.getParcelableExtra 废弃 API。

proguard-rules 新增保留 libxposed 入口类及 native 方法的规则,防止 dlsym 符号被混淆。

Assets

1

1.56

Stable

5/28/2026, 11:04:42 AM

同步自 主仓库 构建产物喵

  • Version: 1.56
  • VersionCode: 56
  • Commit: 7aa2925
  • Build time: 2m 18s
  • SHA256: a590d2b8d14b6d12d2312f382b3232cec393ba5ab3abfc519d5fc26fdc73d4c2

Message

fix(native): 增强 libfuse_jni 映射定位

结合 dl_iterate_phdr 与 /proc/self/maps 解析 libfuse_jni 映射信息,补齐文件偏移与可执行映射元数据。
在 file-backed ELF 解析中使用发现到的文件偏移,同时保留现有runtime 解析与 APK 内嵌库 fallback 路径。

Assets

1

1.55

Stable

5/21/2026, 7:32:47 AM

同步自 主仓库 构建产物喵

  • Version: 1.55
  • VersionCode: 55
  • Commit: 09b987d
  • Build time: 5m 06s
  • SHA256: ef16edce2bbfc8462e92084350a87c132b7ea81f0fdc50d5cd3b2f7087bac9f9

Message

fix(ui): 移除配置界面 Checkbox 的点击重复震动反馈

- 移除 `ConfigScreen` 中“隐藏所有根目录项”勾选框触发的 `HapticFeedbackConstants.CLOCK_TICK` 重复震动效果

Assets

1

1.54

Stable

5/9/2026, 9:32:25 AM

同步自 主仓库 构建产物喵

  • Version: 1.54
  • VersionCode: 54
  • Commit: ef9a4a1
  • Build time: 2m 04s
  • SHA256: ea8a2aae2dc95597c83786c1f20fa04c2cb9bae8ba70440d094f15d8339c579d

Message

refactor(icon): 重构启动图标资源并为 Android 12+ 适配动态配色资源

Assets

1

1.53

Stable

5/7/2026, 4:18:25 AM

同步自 主仓库 构建产物喵

  • Version: 1.53
  • VersionCode: 53
  • Commit: ee60842
  • Build time: 2m 35s
  • SHA256: 357a365c1fc68e7a9d94ce207a419c503d4196bf94ba48232574005fcc2c294e

Message

refactor(config): 使用 SharedPreferences edit 扩展简化保存逻辑

将 HideConfigStore.save() 改为使用 androidx.core.content.edit,减少显式 edit/apply 链式调用,保持配置保存行为不变。

Assets

1

1.52

Stable

5/7/2026, 3:54:16 AM

同步自 主仓库 构建产物喵

  • Version: 1.52
  • VersionCode: 52
  • Commit: 0c3f501
  • Build time: 2m 27s
  • SHA256: be41cb88488552b62eb9c4dfdafe97d49d94c19104978a289beee35dc4d069a0

Message

feat(config): 支持按包名分段配置隐藏目标

- 在隐藏目标编辑框中支持 [package.name] 分段语法
- 新增 packageRules 配置,并通过 SharedPreferences、Bundle 和 JNI 同步
- native 层按 UID 解析并合并全局规则与包名专属规则
- 调整默认隐藏目标,将设备相关目标收敛到包名专属规则
- 配置热更新后主动失效 entry、inode 与隐藏路径缓存
- 将 lookup、parent path 与 relative path 判断收敛为 UID-specific 规则
- 更新配置快照、差异展示和帮助文案

Assets

1

1.51

Stable

5/7/2026, 2:10:05 AM

同步自 主仓库 构建产物喵

  • Version: 1.51
  • VersionCode: 51
  • Commit: bb4eeb7
  • Build time: 2m 39s
  • SHA256: dea1165dd0a5129592228ef0d1a97dbdce5262ed07a2c708bfc8625ff8abfcec

Message

refactor: 按职责拆分源码包与 native 目录结构

- 将 Android 端代码拆分为 config、debug、status、ui、xposed 等包
- 将 native 层代码拆分为 core、policy、filters、hooks、elf、jni 等目录
- 更新 Manifest、xposed_init、JNI 符号和 CMake 源文件路径
- 保持现有配置、调试、Hook 与过滤逻辑不变

Assets

1

1.50

Stable

5/7/2026, 1:46:33 AM

同步自 主仓库 构建产物喵

  • Version: 1.50
  • VersionCode: 50
  • Commit: 4a11445
  • Build time: 2m 37s
  • SHA256: 8eebdfe5c4dbb578b8ac3e2300b4ace2a29e9371e88fe501b55c30216d49a0ca

Message

refactor(native): 收口隐藏过滤模块接口

将路径策略、目录项过滤和 reply buffer 过滤入口从 state.hpp 中拆出,改为通过专用头文件暴露模块接口,减少 native 层对大总头的依赖并提升过滤逻辑复用性。

主要变更:
- 将 HiddenPathPolicy 迁移到 path_policy.hpp
- 将 DirentFilter、FilteredDirentMatch 和 dirent record helper 迁移到 dirent_filter.hpp
- 将 WrappedReplyBuf 中的目录项过滤改为通过 FilterReplyBufPayload 统一入口处理
- 通过 enableAutoFallback 保持精确过滤、parent path fallback、auto fallback 的原有执行顺序
- 更新 fuse_wrappers.cpp,显式依赖 path_policy、dirent_filter 和 reply_buf_filter 模块
- 移除 runtime_state.cpp 中的旧全局转发函数
- 精简 state.hpp,仅保留运行态状态、基础类型和跨模块共享状态声明
- 删除不再使用的 shared.hpp

Assets

1

1.49

Stable

5/6/2026, 4:32:52 PM

同步自 主仓库 构建产物喵

  • Version: 1.49
  • VersionCode: 49
  • Commit: a1c9d5f
  • Build time: 2m 37s
  • SHA256: 4db57e5abc58ba5da9cac0534e923be614ad774a737209094d5fc19631a50542

Message

refactor: 拆分 native 隐藏过滤逻辑

将 runtime_state.cpp 中的路径策略、目录项过滤和 reply buffer 过滤逻辑拆分到独立模块,降低单文件复杂度并提升 native 层代码可维护性。

主要变更:
- 新增 path_policy.cpp/hpp,承载隐藏路径匹配、根目录隐藏策略和路径拼接逻辑
- 新增 dirent_filter.cpp/hpp,承载 readdir 与 readdirplus 目录项过滤逻辑
- 新增 reply_buf_filter.cpp/hpp,承载 FUSE reply buffer 过滤逻辑
- 精简 runtime_state.cpp,仅保留运行态状态管理相关逻辑
- 更新 CMakeLists.txt,加入拆分后的 native 源文件

Assets

1

1.48

Stable

5/6/2026, 4:13:22 PM

同步自 主仓库 构建产物喵

  • Version: 1.48
  • VersionCode: 48
  • Commit: 15ce8d9
  • Build time: 2m 31s
  • SHA256: c235c0a86e18aff7aba9a5b01937736a035824c777891775587478a6dd90f175

Message

refactor: 将 Compose UI 层迁移到 ui 子包

整理 Compose 相关文件的包结构,将页面、通用组件和 UI 状态模型统一移动到 ui 子包,进一步区分界面层与业务逻辑层职责。

主要变更:
- 将 ConfigScreen、DebugScreen、FuseHideHomeScreen、UiComponents 和 UiModels 移动到 io.github.xiaotong6666.fusehide.ui 包
- 为 UI 文件补充 R 资源类显式导入
- 收敛 UI 页面、组件和状态模型的命名空间,提升项目结构清晰度

Assets

1

1.47

Stable

5/6/2026, 3:13:41 PM

同步自 主仓库 构建产物喵

  • Version: 1.47
  • VersionCode: 47
  • Commit: 69e7afa
  • Build time: 2m 31s
  • SHA256: a571288ecddeef434ec8d43ae8a68f7eb38958c8d0faa584b02987e4caac4e86

Message

refactor: 细化 Compose 界面模块拆分

进一步拆分 FuseHide UI 结构,将首页、配置页、调试页、通用组件和 UI 状态模型分别独立管理,降低单文件复杂度并提升界面层可维护性。

主要变更:
- 将原 FuseHideUi.kt 拆分为 FuseHideHomeScreen.kt、ConfigScreen.kt、DebugScreen.kt 和 UiComponents.kt
- 新增 UiModels.kt,集中定义 HookStatusUiState、ConfigUiState、DebugUiState 及回调数据结构
- MainActivity 改为通过 UI state 和 callbacks 向 Compose 层传递状态与事件
- 优化 HookStatusProbe,改为使用 Context、主线程 Handler 回调,减少对 MainActivity 的直接依赖
- 移除 MainActivity 中的 UI 数据结构定义,进一步收敛 Activity 职责

Assets

1

1.46

Stable

5/6/2026, 2:52:50 PM

同步自 主仓库 构建产物喵

  • Version: 1.46
  • VersionCode: 46
  • Commit: 3a97617
  • Build time: 2m 31s
  • SHA256: eb18a6cfd849e1963116c0e82bb83903d1bf482fcbdde6367e3f7d7f9bb4aded

Message

refactor: 拆分 MainActivity 相关职责

将 MainActivity 中的 Compose 界面、配置状态处理、Hook 状态探测和路径调试操作拆分到独立文件,降低 Activity 复杂度并提升代码可维护性。

主要变更:
- 新增 FuseHideUi.kt,承载首页、配置页、调试页及通用 Compose 组件
- 新增 ConfigState.kt,封装配置解析、已应用配置快照和差异计算逻辑
- 新增 HookStatusProbe.kt,封装 Hook 状态广播探测逻辑
- 新增 PathDebugActions.kt,封装路径调试操作
- 精简 MainActivity,仅保留状态管理、生命周期、事件分发和业务入口

Assets

1

1.45

Stable

5/6/2026, 1:29:29 PM

同步自 主仓库 构建产物喵

  • Version: 1.45
  • VersionCode: 45
  • Commit: 5ff951f
  • Build time: 2m 10s
  • SHA256: 8ab5acd24a4de320a7b3735647384c821eb1a0f24f0f101b782f7029e61254d3

Message

ci: 拆分 Android 构建与发布工作流

将原有 android.yml 中的构建、GitHub Release 发布和 Xposed 社区仓库同步逻辑拆分为可复用工作流,提升 CI 配置的可维护性与复用性。

- 新增 build.yml,负责 APK 构建、版本信息计算、产物重命名、SHA256 计算与 artifact 上传
- 新增 release.yml,负责下载构建产物、生成 Release Note 并发布 GitHub Release
- 新增 xposed-release.yml,负责同步 release APK 到 Xposed 社区仓库
- android.yml 改为编排 build、release、xposed-release 三个 job
- 增加 workflow concurrency,避免同一分支重复运行旧任务
- Release Note 中补充版本号、构建耗时、提交信息和 SHA256 校验值

Assets

1

1.44

Stable

5/6/2026, 1:18:32 PM

同步自主仓库构建产物喵

commit: a5d7013

message:
fix(native): 避免隐藏所有一级目录时误过滤例外目录子项

在 reply_buf 缺少父目录上下文的兜底过滤中,仅保留显式隐藏目录名匹配,不再应用 hide-all 通配规则。
避免一级目录可见,但其子目录被误当作根目录项过滤

Assets

1

1.43

Stable

4/27/2026, 5:41:32 AM

同步自主仓库构建产物喵

commit: dd5848a

message:
fix(manifest): 移除重复的 extractNativeLibs 配置

Assets

1

1.42

Stable

4/26/2026, 7:01:46 PM

同步自主仓库构建产物喵

commit: fbf12b7

message:
ci(release): 完善社区仓库同步发布说明

  • 为社区仓库 release 生成包含 commit 链接和提交信息的 notes
  • 区分已有 release 与新建 release,分别执行 edit/create
  • 提取目标仓库与主仓库变量,提升脚本可读性
  • 上传 release APK 时保留 clobber 覆盖逻辑

Assets

1

1.41

Stable

4/26/2026, 6:30:20 PM

同步自主仓库构建产物喵

Assets

1

1.40

Stable

4/26/2026, 5:02:51 PM

同步自主仓库构建产物喵

Assets

1

1.39

Stable

4/26/2026, 4:56:03 PM

同步自主仓库构建产物喵

Assets

1

1.38

Stable

4/26/2026, 9:31:11 AM

同步自主仓库构建产物喵

Assets

1

1.37

Stable

4/26/2026, 9:22:21 AM

同步自主仓库构建产物喵

Assets

1

1.36

Stable

4/25/2026, 6:27:36 PM

同步自主仓库构建产物喵

Assets

1

1.35

Stable

4/25/2026, 6:14:17 PM

同步自主仓库构建产物喵

Assets

1

1.34

Stable

4/25/2026, 6:02:27 PM

同步自主仓库构建产物喵

Assets

1

1.33

Stable

4/25/2026, 5:57:07 PM

同步自主仓库构建产物喵

Assets

1

1.32

Stable

4/25/2026, 7:26:25 AM

同步自主仓库构建产物喵

Assets

1