Skip to content

r14.1.3

Choose a tag to compare

@tomthenpc tomthenpc released this 22 Jul 13:04
657a409

r14.1.3 — 稳定性修复、轻量化与资源治理(合并 r14.1.0-r14.1.3)

发布日期:2026-07-23。状态:稳定版,已完成目标设备实机验证

API 101 与 Hook 稳定性

  • 修复 Release 混淆后全部 after Hook 被跳过的问题。旧适配层依赖会被 R8 改写的回调方法名;现在改为按返回类型和参数签名识别。
  • 恢复依赖后置回调的 Launcher 初始化、最近任务背景模糊与清理按钮、控制中心运营商隐藏、主题样式和图标颜色更新。
  • 保持 GlobalActionsControlsLauncherSystemVarious 使用原生 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) 调度。
  • 首批迁移 GlobalActionsControls;其他模块暂由兼容层承接。
  • 保留旧 Hook 的可变参数、提前返回、结果替换、异常传播与后置回调语义。
  • 建立逐模块迁移、构建、重启、回归验证流程,避免一次性重写整个 Hook 层。

r14.1.1 累积变更

  • LauncherSystemVarious 分模块迁移至 intercept(Chain),每步执行重启验证。
  • SystemUI 全量迁移后出现重启失效,因此回退到兼容层;这一实机结论成为后续版本的稳定性边界。
  • HookBuilder 显式使用 ExceptionMode.PASSTHROUGH,保持被 Hook 方法的异常传播语义。
  • 完成 clean build、zipalign 与 APK v2 签名验证。

r14.1.2 累积变更

  • 恢复到用户确认可打开应用、重启后可正常 Hook 的 Devin 最终构建,作为 r14.1.3 开发的干净基线。
  • 固定 API 101 混合架构边界:GlobalActionsControlsLauncherSystemVarious 使用原生拦截器,SystemUI 保留兼容层。
  • 保持普通应用启动链与 Hook API 隔离,避免 AndroidX 初始化直接加载仅存在于注入环境的类型。
  • versionCode 116,APK 2,934,628 B。
  • SHA-256:a46acee41da42c618ee0f23468bb37574faedbfb4f9a5df6b26b678106dd32ea