List Cleaner 1.6.16
列表清理 / List Cleaner 1.6.16
版本码 / Version code: 41
中文
- 修复 Vector / 部分 libxposed API 102 实现下 RemotePreferences 可能长期停留在旧快照,导致 system_server 读取不到最新
config_v1、规则数量变成 0、Runtime ACK 失败的问题。 - Runtime Probe 现在携带管理端期望的配置 digest。官方 LSPosed 正常情况下继续使用原有缓存 RemotePreferences + 变更监听快速路径;只有 Hook 当前 digest 与管理端不一致时才执行一次 fresh RemotePreferences 读取。
- 增加安全兼容回退:管理端写入
config_v1时在同一事务中同步镜像既有 legacy 配置键;只有 system_server 确认 probe 调用 UID 确实属于com.yagay.ListCleaner后,才允许使用镜像配置恢复并回执,避免放宽原有身份校验。 - fresh 配置仍不可见时不再用空 legacy 数据覆盖最后一份有效 Hook 快照,而是保留旧配置并拒绝 ACK,等待下一次同步,避免规则意外清零。
- 诊断日志新增 expected/actual digest、cached/fresh 配置可见性、fresh 是否为同一实例、verified mirror 恢复以及 ACK 跳过原因,便于区分框架缓存问题与真实 Hook 失败。
- 本次修改涉及 Xposed 运行时和 Runtime Probe 合同,因此 Hook compatibility 提升到 41。安装更新后需要让 system_server 加载新的 Hook 代数;旧 Hook 不会被误判为兼容。
English
- Fixed a Vector / libxposed API 102 compatibility issue where RemotePreferences could remain on a stale snapshot, causing system_server to miss the latest
config_v1, see zero rules, and fail the runtime ACK handshake. - Runtime Probe now carries the config digest expected by the manager. Official LSPosed keeps the existing cached RemotePreferences + change-listener fast path; a one-shot fresh RemotePreferences read is used only when the hook digest does not match the manager.
- Added a safe compatibility fallback: the manager mirrors legacy config keys in the same transaction as
config_v1. The system hook may recover from that mirror only after verifying that the probe caller UID actually belongs tocom.yagay.ListCleaner, preserving the existing identity boundary. - If neither cached nor fresh atomic config is visible, the hook no longer overwrites the last known-good snapshot with empty legacy data. It keeps the existing rules and withholds ACK so the manager can retry.
- Diagnostics now record expected/actual digests, cached/fresh config visibility, whether the fresh read returned the same instance, verified-mirror recovery, and ACK-skip reasons.
- Because this release changes Xposed runtime behavior and the Runtime Probe contract, hook compatibility is bumped to 41. After updating, system_server must load the new hook generation; older hooks are no longer treated as compatible.
版本码:41
签名证书 SHA-256:674ebcf768b46b0277ca190149df4496ea9e41a3a0d3693239f9a7f4ad1039db
源码提交:231a7803eca1ce7bbcf8d7f176ca970c7e5760d0
完整变更 / Full changelog
范围 / Range: v1.6.15...v1.6.16
- Discover deep links from package resolver tables (
fb771dd) - Wire App Link declarations into catalog scan (
18ba127) - Create deep-link candidates from resolver declarations (
094dc0d) - Use detailed App Link discovery during refresh (
89604bc) - Escape resolver dump shell variables (
869927d) - Test resolver-table deep link discovery (
b73230b) - Fix shell variable escaping in App Link discovery (
5cfbd83) - Add expected config digest to runtime probe (
5826987) - Tell system hook which config digest manager expects (
6dc9e24) - Recover stale remote preferences without changing hooks (
da70b4f) - Bump hook generation for remote preference recovery (
b7224a1) - Mirror remote config for framework compatibility (
bb5a0ad) - Add verified legacy mirror fallback for Vector (
38e0782) - Document 1.6.16 Vector preference compatibility fix (
231a780)