Releases: KanzakiK/libredex-public
Releases · KanzakiK/libredex-public
Release list
LibreDeX 0.2.20
0.2.20(2026-09-13)
English
Bug Fixes
- Stopping DP/HDMI output no longer reboots the device: disconnecting the cable or pressing "Stop DP output" could kick the whole phone into a reboot. Root cause was a race between two system threads and is now resolved — unplug is a clean operation.
- Mouse cursor no longer disappears after DP disconnect: when switching from DP DeX back to the phone screen, the physical mouse could stop working until the phone was restarted. Re-binding input devices is now handled symmetrically on both connect and disconnect.
- App windows on DP/HDMI now keep their Dex-style borders: in some cases the official DeX engine path would silently downgrade activatable tasks to freeform windows. LibreDeX now always uses the manual path, which correctly creates Dex-style activatable windows on every output.
- Official Sunshine engine four-in-one fix: switching the engine to the official native version crashed on connect, rejected every mouse event as NaN, sent keyboard input to the wrong display, and clobbered the private engine's state files if both were used in quick succession. All four resolved.
UI Improvements
- The "Official Sunshine engine (experimental)" toggle used to live inside the Screen Management card alongside auto-off, fake-off and block-sleep. It has been pulled out into its own standalone card directly below Screen Management, with a short subtitle explaining what it does.
简体中文
Bug 修复
- 停止 DP/HDMI 输出不再触发整机重启:拔掉数据线或点击"停止 DP 输出"曾经可能直接把手机带重启。根因是两个系统线程之间的 race,现已彻底修复——拔插变成一次干净的操作。
- 停止 DP 后鼠标光标不再消失:从 DP DeX 切回手机屏幕时,物理鼠标可能完全失效直到重启。重新绑定输入设备现在在连接和断开两个方向上对称处理。
- DP/HDMI 上 App 窗口恢复 Dex 风格边框:某些情况下官方 DeX 引擎路径会静默把 activatable task 降级为 freeform 窗口。LibreDeX 现在统一使用手动路径,所有输出上都正确创建 Dex 风格的 activatable 窗口。
- 官方 Sunshine 引擎四合一修复:切换到官方原生引擎时,连接会崩溃、鼠标事件全被 NaN 拒绝、键盘发到错误的屏幕、两个引擎连续使用还会互相污染状态文件。四个问题全部修复。
UI 改进
- "官方 Sunshine 引擎(实验性)"开关原来跟自动熄屏、假熄屏、阻止休眠挤在同一张卡里,现在抽出来单独成卡,紧贴屏幕管理卡下方,附带简短副标题说明用途。
LibreDeX 0.2.13
LibreDeX 0.2.13
English
New Features
- Self-drawn virtual touchpad (replaces Samsung's SystemUI touchpad): touch gestures are translated into mouse events injected into the active DeX display with a visible cursor overlay, adapting to both the inner and cover screens.
- Crosshair frame: draws the touchpad's own screen (inner / cover) as a frame with an accent center crosshair, and re-renders automatically on screen rotation.
- Two-finger vertical swipe now injects mouse-wheel scroll events for smooth page scrolling.
- Three buttons stacked at the top-right: close the touchpad / send BACK to the DeX display / force-stop the foreground app on the DeX display.
- New cursor: classic pointer icon (black outline + white core).
- Target display covers every output path: wired DP/HDMI, Moonlight (fake DeX virtual display), and optional transports.
- Wired DP auto-switch: plugging the cable auto-starts DeX and unplugging auto-exits it, configurable from the connection page.
- Page output mode syncs on hot-plug: if the cable is plugged while the connection page is open, the page switches to the DP layout immediately instead of staying on a stale Moonlight layout.
Bug Fixes
- Shizuku/UserService self-healing when offline: the server is health-checked via
pingBinder; when unhealthy, Shizuku is restarted as root and the UserService re-bound automatically, so plug-in auto-launch of DeX no longer fails because the service dropped out. - Input routing robustness on disconnect/reconnect: external input devices are un-routed back to the default display when a session ends and hot-plugged devices are re-bound to the session display; a mouse is no longer left pointed at a gone display (invisible / dead cursor).
- Screen-off / fake screen-off defaults and recovery: keep-screen-on is re-applied after session and UserService changes, and the fake-screen state recovers more reliably.
- The custom external-screen resolution / refresh-rate fields are disabled while DeX output is active (DeX steals the phone's input focus); they stay editable in mirror or idle states.
简体中文
新功能
- 自绘虚拟触控板(替代三星系统触控板):触控板手势转换为鼠标事件注入到活动 DeX 屏,并叠加可见光标层;适配内屏与盖屏两种形态。
- 十字框线:跟随触控板所在屏(内屏/盖屏)绘制外框与中心强调色十字准星,并随屏幕旋转自动重绘。
- 双指上下滑动改为注入鼠标滚轮事件,页面滚动更平滑。
- 右上角竖排三个按钮:关闭触控板 / 向 DeX 屏幕注入返回键 / 强杀 DeX 屏幕当前前台应用。
- 光标更换为经典指针图标(黑描边白芯)。
- 目标屏覆盖全部输出链路:有线 DP/HDMI、Moonlight(fake DeX 虚拟屏)、可选传输。
- 有线 DP 自动开关:插线自动启动 DeX、拔线自动退出,可在连接页配置。
- 插线时页面输出模式即时同步:正停留在连接页时插线自动启动 DeX,页面立即切到 DP 布局,不再停留在旧的 Moonlight 布局。
问题修复
- Shizuku/UserService 掉线自愈:改用
pingBinder检测 Shizuku server 是否真正在线;检测到异常时自动以 root 拉起 Shizuku 并重绑 UserService,插线自动启动 DeX 不再因服务掉线而失败。 - 断开/重连输入路由健壮性:会话结束时清理外设与目标屏的关联并复位到默认屏,热插拔设备重新绑定到会话屏;鼠标不再停留在已消失的屏上(光标不可见/输入失效)。
- 熄屏/假熄屏默认与恢复健壮性:会话或 UserService 变化后重新应用保持亮屏,假熄屏状态恢复更可靠。
- DeX 输出激活期间禁用外接屏自定义分辨率/刷新率输入框(DeX 会抢占手机输入焦点);镜像或无输出时保持可编辑。
LibreDeX 0.2.7
LibreDeX 0.2.7
English
Bug Fixes
- Fix One UI 8.5 reading the wrong external-screen resolution: wired DP/HDMI displays (e.g. a 1920x1080 portable panel over USB-C) were reported as the Flip 5 cover screen (748x720). The external-display picker now filters out built-in cover displays and prefers the largest physical external panel, so the correct resolution is read for DeX and mirroring.
- Fix DeX freezing on the second start under temporary root (One UI 8.5):
- Temporary root (KernelSU temp grant) expiry was cached, causing a stale “still rooted” check and a long hang when restarting Shizuku as root; the root probe now re-checks fresh with a shorter timeout.
IDisplayManager.requestDisplayPower(IZ)was removed on Android 16; the power path now reflects over any available signature and falls back to shell input events instead of crashing withNoSuchMethodError.Display$Mode.<init>changed its parameter list on Android 16, flooding logcat withNoSuchMethodExceptionand deadlockingperformTraversalInternal; the refresh-rate hook now finds a compatible constructor or skips safely.
简体中文
问题修复
- 修复 One UI 8.5 外接屏分辨率识别错误:通过有线 DP/HDMI(如 Type-C 一线连的 1920x1080 便携屏)连接的屏幕被误识别为 Flip 5 外屏(748x720)。外接屏选择逻辑现在会排除内置外屏,并优先选取面积最大的物理外接面板,从而在 DeX 与镜像模式下读到正确分辨率。
- 修复 One UI 8.5 临时 root 下第二次启动 DeX 卡死:
- 临时 root(KernelSU 临时授权)过期后仍命中缓存,导致“仍有 root”的误判,并在以 root 重启 Shizuku 时长时间挂起;现在 root 探测会重新检测并缩短超时。
- Android 16 移除了
IDisplayManager.requestDisplayPower(IZ),电源路径改为反射适配任意签名,失败时回退到 shell 按键事件,不再因NoSuchMethodError崩溃。 - Android 16 变更了
Display$Mode.<init>参数列表,导致日志被NoSuchMethodException刷屏并引发performTraversalInternal死锁;刷新率钩子现在会查找兼容构造函数或安全跳过。
LibreDeX 0.2.6
LibreDeX 0.2.6
English
New Features
- Multi-language support: UI follows the system language — Simplified Chinese, English, with other languages falling back to English. All UI strings are resource-based with English translations.
- In-app language switcher: Settings → Appearance → Language — pick Follow system / 简体中文 / English; applies instantly and persists across restarts.
- i18n regression gate: lint errors for hardcoded UI text (HardcodedText / SetTextI18n) plus an en/zh resource consistency checker.
- English logs: all runtime logs (task / permission / audio / input / projection status) are now in English for easier overseas troubleshooting.
- Setup wizard redesign: card-based design matching the main UI, rebalanced pages; fixed "Open LSPosed" failing on fresh installs (UserService not bound); hook-active detection now reads a self-reported system property instead of log files.
Bug Fixes
- Fix random freezes & auto-reboots: the refresh-rate hook queried display info synchronously on system_server hot paths, deadlocking with system locks and tripping the watchdog; probing now runs on background threads so hook callbacks never hold or wait for system locks.
- Fixed wizard crash (uninitialized LSPosed status view).
- Fixed English text truncation on fixed-width buttons.
Requirements
- Galaxy Z Flip 5 / SM-F731B, Root (Magisk / KernelSU), Shizuku, LSPosed / Vector
- arm64-v8a only
简体中文
新功能
- 多语言支持:界面语言跟随系统——中文设备显示简体中文,英文设备显示 English,其他语言回退英文。全部 UI 字符串已资源化并附带英文翻译。
- App 内语言切换:设置 → 外观 → 语言,可手动选择 跟随系统 / 简体中文 / English,即时生效并持久化。
- 国际化防回归:lint 门禁(HardcodedText / SetTextI18n 为 error)+ 中英资源一致性校验脚本。
- 日志英文化:全部运行日志(任务/授权/音频/输入/投屏状态)改为英文,方便海外用户反馈问题。
- 设置向导重构:卡片式设计与主界面一致,四页内容重新平衡;修复全新安装时「打开 LSPosed」无法拉起(UserService 未绑定)的问题;LSPosed 生效检测改为读取 hook 自报的系统属性,结果准确。
问题修复
- 修复手机偶发卡死自动重启:高刷新率 hook 在 system_server 热路径中同步查询显示信息,与系统锁形成交叉死锁导致 watchdog 杀 system_server;已改为后台线程异步探测,hook 回调不再持有/等待任何系统锁。
- 修复设置向导闪退(LSPosed 状态控件未初始化)。
- 修复英文文案在固定宽度按钮上被截断的问题。
安装要求
- Galaxy Z Flip 5 / SM-F731B,Root(Magisk 或 KernelSU),Shizuku,LSPosed / Vector
- 仅 arm64-v8a
LibreDeX 0.2.0
0.2.0(2026-08-19)
新功能
- 新增「首次使用引导向导」:打开 App 会用 4 步引导帮你把运行所需的环境一次性配好——自动检测并跳转到 LSPosed 模块、申请 Root / Shizuku 权限、配置音频、以及文件与录屏授权。向导是非阻塞的,不强制你立刻完成;打开 App 时会自动尝试获取 Shizuku,设置页也会实时显示各项权限的状态。
- 把原来散落在设置页里的一堆「授权」按钮(Shizuku、音频、悬浮窗、文件访问、录屏)统一收进了引导向导,设置页现在只保留状态显示和 Root 相关入口,界面更清爽。
问题修复
- 修好了引导向导里「Shizuku」那一栏会闪退的问题(授权按钮被重复放置导致崩溃)。
- 改进了 LSPosed 模块的检测与跳转:现在能匹配多个入口;如果没检测到安装,会明确提示你从桌面或通知栏手动打开 LSPosed / Vector 框架。
- 改进了 LSPosed / Vector 框架入口的识别逻辑:改为根据实际能否启动来判断,不再误报「未安装」;后台启动流程改用 Root(su)自动探测手机是否已 Root,不再依赖 Shizuku 是否在线。
其他改进
- 「以 Root 身份重启 Shizuku」的提示已做本地化(中文)。
LibreDeX 0.1.9 Public
0.1.9(2026-08-17)
问题修复
- 更新了「关于」页面:项目地址改为公开仓库,许可证说明更正为 GPL-3.0,更新记录的措辞也更规范了。
LibreDeX 0.1.8 Public
0.1.8(2026-08-16)
问题修复
- 修好了用「可选投屏」方式启动后,应用停留在后台、桌面抢走前台的问题:现在启动后会自动把 LibreDeX 拉回手机屏幕。
- 统一了「可选投屏」「Moonlight」「DP」三个入口的按钮样式(高度、字号、大小写保持一致),界面更整齐。
LibreDeX 0.1.2 Public
0.1.2(2026-08-15)
新增
- 输出链路统一抽象:
DEX / 纯镜像 × Moonlight / DP输出通道共用同一份画面源、镜像变换与会话生命周期逻辑;运行时按当前手机屏(内屏 / Flip 5 cover)适配。 - 纯镜像输出统一应用自动旋转、自动缩放去黑边、自动匹配宽高比。
- DP DeX 输出支持应用自由窗口(freeform),并按“DeX / 纯镜像”源选择正确启动对应会话。
- HEVC 编码器初始化失败时自动回退到 H.264/AVC,仅影响当前会话,下次服务启动重新尝试 HEVC。
- Sunshine 服务增加重复启动与初始化竞争守卫,降低“无法配置编码器”概率。
- fake screen 会话标记跨 UserService 重连保持,避免会话中按电源键退化为系统锁屏。
修复
- 修复纯镜像 + DP 未应用自动旋转、自动缩放去黑边、自动匹配宽高比的问题。
- 修复 DP 输出忽略画面源选择、纯镜像变成 DeX 的问题。
- 修复 DP 停止后外接屏 layerStack/投影未恢复的问题。
- 修复重复启动 Sunshine 导致编码器冲突的问题。
- 修复 UserService 重连把
session_active清零导致假熄屏失效的问题。
其他
- 公开仓库发布流程整理。