HyperOS3-freeform-unlock

LSPosed 模块,解除自由窗口(小窗)数量限制(本模块限制20),仅在os3系统上测试过。

原理

Hook com.android.server.wm.MiuiFreeFormStackDisplayStrategy#getMaxMiuiFreeFormStackCount,该方法返回系统允许同时存在的 freeform 小窗数量上限。

依赖

组件 说明
KernelSU / Magisk(带 Zygisk) 底层 root 框架
Zygisk Next(或原版 Zygisk) Zygisk 实现
LSPosed v2.x(Zygisk 版) Xposed 框架,加载模块

安装

  1. Releases 下载最新版 freeform-unlock.apk
  2. 安装 APK(pm install -r freeform-unlock.apk
  3. 打开 LSPosed Manager → 模块 → Freeform Unlock → 启用
  4. 作用域已锁定为「系统框架」(staticScope=true),无需手动勾选
  5. 软重启(或重启设备)生效

构建

需要 Android SDK 环境(aapt2d8apksignerzipalign)及 libxposed API jar。

# 1. 下载 libxposed api jar
# 从 https://github.com/libxposed/api/releases 获取 (api-102.0.0.aar)

# 2. 编译
cd module
javac -cp libxposed-api.jar -d out \
  src/com/wumingmr/freeformunlock/MainHook.java

# 3. dex
d8 --release --classpath libxposed-api.jar --output dexout \
  out/com/wumingmr/freeformunlock/*.class

# 4. 打包 APK
aapt2 link -o module-unsigned.apk \
  --manifest AndroidManifest.xml \
  -I $ANDROID_HOME/platforms/android-35/android.jar \
  --min-sdk-version 29 --target-sdk-version 35
# 添加 dex + META-INF
zip -j module-unsigned.apk dexout/classes.dex
zip -r module-unsigned.apk META-INF

# 5. 签名
zipalign -f 4 module-unsigned.apk module-aligned.apk
apksigner sign --ks <keystore> --out module-signed.apk module-aligned.apk

卸载

LSPosed Manager 取消勾选 → 卸载 APK → 软重启。无系统残留。

Releases

v1.0.0

Stable

9/3/2026, 12:41:39 AM

Freeform Unlock v1.0.0

解除自由窗口(小窗)数量限制(限20,仅 OS3 系统测试过)。

  • libxposed API, system_server scope
  • 仅限于 HyperOS 3 本设备测试

Assets

1