r14.1.3
r14.1.3 — 稳定性修复、轻量化与资源治理(合并 r14.1.0-r14.1.3)
发布日期:2026-07-23。状态:稳定版,已完成目标设备实机验证。
API 101 与 Hook 稳定性
- 修复 Release 混淆后全部
afterHook 被跳过的问题。旧适配层依赖会被 R8 改写的回调方法名;现在改为按返回类型和参数签名识别。 - 恢复依赖后置回调的 Launcher 初始化、最近任务背景模糊与清理按钮、控制中心运营商隐藏、主题样式和图标颜色更新。
- 保持
GlobalActions、Controls、Launcher、System、Various使用原生intercept(Chain);SystemUI 继续使用已验证兼容层,避免再次扩大迁移风险。 - 保持 Xposed 回调类型与 AndroidX 普通启动链隔离,修复“重启后 Hook 生效,但设置应用打不开”的回归。
- 修复 SystemUI 开机创建移动网络图标时,
mState尚未赋值便被双卡信号 Hook 读取的问题;缺失状态、视图或资源时直接放行原方法。 - Android 14 动态广播显式设置导出标志;Wi-Fi 扫描结果读取增加权限拒绝兜底。
代码与资源优化
- 将 4 类应用列表各自创建的无界线程池合并为一个共享有界池:2–4 个后台线程、15 秒空闲回收、最大等待队列 128。
- 将图标 LRU 缓存由“最多占 Java 堆的一半”改为 1–16 MiB 的有界缓存,降低内存峰值和回收压力。
- 移除低内存路径中的主动
Runtime.gc(),避免人为制造全局停顿。 - 音频可视化的静音 FFT 判断由每个频段一次改为每帧一次;31 个频段的静音帧最多从 31 次扫描降为 1 次。
- 专辑图重复检查不再在主线程逐像素调用
Bitmap.sameAs()。 - 常量 Hook、反射和资源访问沿用已建立的缓存/快速路径,不新增后台服务、定时任务或持续轮询。
轻量化
- 移除“支持”区域中的版本下载、代码仓库、微信与 PayPal 赞赏入口。
- 删除仅服务于这些入口的 WebView 页面、布局、图片、菜单和多语言文案。
- 移除应用的
INTERNET权限;保留开机广播、蓝牙、Wi-Fi、跨用户和 Hook 所需权限。 - 删除上游赞助配置与失效的 Crowdin 工作流。
实机与日志验证
- 用户已验证应用可打开、卸载重装后可用、完整重启后 Hook 正常。
- 已验证最近任务背景模糊/清理按钮、控制中心运营商隐藏、控制中心主题和图标颜色等此前回归功能。
- 首轮日志曾记录双卡信号视图初始化期间 21 次同源空指针,已映射到
SystemUI.java;增加状态、视图和资源空值保护后不再复现。 - 最终复验归档
LSPosed_2026-07-23T02_46_07.858483包含 02:41 与 02:43 两轮启动记录,两轮[Pengeek]异常均为 0,各作用域进程均显示模块加载成功。 - 当前启动周期中 SystemUI、桌面和设置应用均只启动 1 次、进程死亡 0 次;设置应用成功进入前台,未发现本应用或 SystemUI 的崩溃、ANR 和隐性重启。
- SELinux 中的 Xiaomi 显示属性/RenderThread 探测也出现在 Gmail、DocumentsUI 等普通应用;微信、钉钉和 XSmsCode 的 Hook 报错属于其他模块,均不计入本项目缺陷。
- 最终结论:r14.1.3 通过安装、启动、完整重启、常用功能与重启日志闭环验证,可作为稳定发布版本。
相对 r14.1.2 的静态评估
| 指标 | r14.1.2 | r14.1.3 | 结论 |
|---|---|---|---|
| APK 大小 | 2,934,628 B | 2,886,250 B | 减少 48,378 B(1.65%) |
| 应用网络权限 | 有 | 无 | 删除模块自身联网能力 |
| 图标执行器 | 每个 Adapter 独立、队列无界 | 单个共享有界池、队列 128 | 限制线程竞争与任务积压 |
| 图标缓存 | 最大堆的 1/2 | 1–16 MiB | 限制内存峰值 |
| 主动 GC | 低内存时调用 | 已移除 | 降低人为停顿风险 |
| 静音 FFT 判断 | 每频段一次 | 每帧一次 | 减少空闲帧计算 |
| Hook 架构 | 已验证的 API 101 混合架构 | 保持边界并修复 R8 回归 | 不扩大兼容面 |
这是代码路径与构建产物对比,不等同于实机功耗跑分。实际耗电、启动耗时和兼容性仍应在同设备、同 ROM、同作用域下长期对照。
构建产物验证
- 通过
clean assembleRelease lintRelease lintVitalRelease,无阻断性 Lint 错误。 - 通过 R8、资源压缩、zipalign、APK v2 签名与证书一致性检查。
- 版本:
versionCode 117/versionName r14.1.3。 - APK:
CustoMIUIzer-A14-r14.1.3.apk,2,886,250 B。 - SHA-256:
17d1f71607e06e5beb7939c17819932e558bd34c622f369ea87bebfe7b0eba57。
r14.1.0 累积变更
- 让
MethodHook直接实现XposedInterface.Hooker,使用intercept(Chain)调度。 - 首批迁移
GlobalActions与Controls;其他模块暂由兼容层承接。 - 保留旧 Hook 的可变参数、提前返回、结果替换、异常传播与后置回调语义。
- 建立逐模块迁移、构建、重启、回归验证流程,避免一次性重写整个 Hook 层。
r14.1.1 累积变更
- 将
Launcher、System、Various分模块迁移至intercept(Chain),每步执行重启验证。 SystemUI全量迁移后出现重启失效,因此回退到兼容层;这一实机结论成为后续版本的稳定性边界。HookBuilder显式使用ExceptionMode.PASSTHROUGH,保持被 Hook 方法的异常传播语义。- 完成 clean build、zipalign 与 APK v2 签名验证。
r14.1.2 累积变更
- 恢复到用户确认可打开应用、重启后可正常 Hook 的 Devin 最终构建,作为 r14.1.3 开发的干净基线。
- 固定 API 101 混合架构边界:
GlobalActions、Controls、Launcher、System、Various使用原生拦截器,SystemUI 保留兼容层。 - 保持普通应用启动链与 Hook API 隔离,避免 AndroidX 初始化直接加载仅存在于注入环境的类型。
versionCode 116,APK 2,934,628 B。- SHA-256:
a46acee41da42c618ee0f23468bb37574faedbfb4f9a5df6b26b678106dd32ea。