r14.3.1
r14.3.1
发布日期:2026-07-24。状态:稳定版,构建产物通过 assembleRelease,可直接覆盖 r14.2.9 及更早版本升级。
锁屏充电数据
System.ChargingInfoHook新增isKeyguardIndicationCaller()栈追踪判断,仅对KeyguardIndicationController调用路径修改ChargeUtils.getChargingHintText返回结果,避免充电动画/充电视图等其他调用方显示同一行数据。- 增加
isChargingInfoHooked静态防护,防止同一进程内重复注册getChargingHintTextHook。 - 在拼接信息前检查
hint.contains(info),若原始提示文本已包含相同数据则不再追加,杜绝同一字符串内出现两行重复充电数据。
代码清理与依赖优化
PreferenceFragmentBase:SimpleDateFormat指定Locale.US,避免依赖默认 locale。AppDataAdapter:String.toLowerCase()指定Locale.ROOT。Various: 广播接收器中的SharedPreferences.commit()改为apply()。BatteryIndicator: 缓存status_bar_height资源 ID,减少重复getIdentifier调用。build.gradle: 升级com.github.ben-manes.versions插件至0.54.0。app/build.gradle: 升级kotlin-bom至2.2.21。
减少无效 Hook 与资源替换
- 新增
SystemUI.hasStatusBarModifications(),汇总setupStatusBar中所有资源替换与状态栏文本图标开关条件,包括状态栏边距、控制中心样式、音量计时器、图标大小、步数显示、抽屉日期、点击解锁、锁屏超时、电池/设备温度等。 MainModule在SystemUIInitializer.init中仍注册初始化 Hook,但SystemUI.setupStatusBar内部先判断hasStatusBarModifications();无任何相关功能开启时,仅写入systemui_restart_time标记,不调用addFakeResource和setThemeValueReplacement/setResReplacement。- 避免 SystemUI 每次启动时加载
statusbar_text_icon假资源,以及反复替换status_bar_padding_top等默认资源,降低功能关闭时的内存与跨进程写入开销。
统一线程与生命周期治理
WeatherDataController不再在每次TIME_TICK触发时new Thread()查询天气,改为进程内单一ExecutorService队列后台查询,减少每分钟新建线程与栈内存抖动。WeatherDataController的Handler改为静态Looper.getMainLooper()实例,避免forceRefresh分支重复创建new Handler。WeatherDataController在initContext重复进入时先unregisterReceiver旧TIME_TICK接收者,再注册新接收者,并显式指定Context.RECEIVER_NOT_EXPORTED。
构建产物验证
versionCode130 /versionNamer14.3.1。- APK:
CustoMIUIzer-A14-r14.3.1.apk,2,886,165 bytes,SHA-256:E1ED1FEF9108E9A94D1B532F5B3BCDBD71AF5DC32E610A239CF108A9ABEC57D8。 - 通过
gradlew assembleRelease;lintRelease0 错误,既有 ROM API 兼容性警告保持。 libxposed保持 API 101,未升级到 102,避免运行时兼容风险。- 签名证书与 r14.2.9 一致,可直接覆盖升级。
实机验证
LSPosed_2026-07-24T13_52_32.282030完整重启后,VectorModuleManager两次加载tv.withaibuild.customiuizer.r14分别为 6 ms 与 24 ms,日志中无模块相关AndroidRuntime/FATAL/am_crash/am_anr。- SystemUI、Launcher、Settings 等目标进程无 CustoMIUIzer 引发的崩溃、ANR 或异常栈。