列表清理 · List Cleaner

简体中文 | English

清理 Android 分享、打开方式、浏览器/深度链接、长按快捷方式和文件选择等系统候选,支持优先排序与 Android 多空间;也可通过 Root 管理桌面图标、磁贴、快捷方式创建入口和小部件。

下载模块 · 源码与完整说明 · 问题反馈 · Telegram 频道

Telegram 频道

关注 @LISTCLEANER 获取版本更新、使用提示和相关消息。

加入 Telegram 频道 @LISTCLEANER

List Cleaner Telegram 频道二维码

使用要求

  • Android 12 及以上。
  • 规则过滤和排序需要支持 modern libxposed API 102 的框架。启用模块、配置推荐作用域,并按框架提示重启。
  • 组件管理另外需要在 KernelSU、Magisk 等管理器授予 Root 权限。启用 LSPosed 模块不等于授予 Root。

功能

  • 系统入口清理:管理分享、多文件分享、发送到、打开方式、浏览器、深度链接、拨号、内容/媒体选择、文本处理、长按快捷方式与 Storage Access Framework 存储位置。浏览器与深度链接独立,深度链接支持域名规则。
  • 筛选与操作:搜索、按应用展开、类别筛选、用户/系统应用筛选;应用和组件右侧三点菜单(或长按行)提供加锁/解锁。批量操作会跳过锁定项,锁定子项也需先解锁才能直接勾选。规则更改需确认“应用”。
  • 优先排序:各分类独立保存顺序,通过右侧拖动手柄调整,上移/下移仍可用;确认“应用”后才保存,长按应用行打开操作菜单。
  • Root 组件管理:桌面入口、TileService 磁贴、LauncherApps/旧式快捷方式创建入口与 AppWidgetManager 小部件。标准 API 优先,兼容扫描补充并安全降级;Root 实际禁用结合 LSPosed 发现过滤、开机及更新后状态校正,最终以系统回读为准。
  • Android 多空间:规则、排序、组件状态和批量锁按用户空间隔离;可切换目标空间,选择多个空间导出 v13 备份并逐项映射导入位置。
  • 设置与诊断:Material 3 扁平化列表,设置集中外观、列表、扫描、兼容、备份、高级诊断和关于,包含 GitHub / Telegram 项目链接。

使用说明

底部导航为清理、排序、设置;清理页内部切换规则清理(LSPosed)与组件清理(Root)。规则只过滤系统返回的候选,不会真正禁用组件;组件清理则通过 Root 变更启用状态。三点菜单或长按行控制批量锁,锁不代表组件禁用。规则、排序和 Root 组件更改都需要在底部确认应用,组件 Root 命令随后才执行。

检测到多个 Android 用户空间时,可在顶部切换目标。v13 备份支持选择多个空间并在导入时明确映射,旧版 v1–v12 规则备份仍可读取。Root 禁用组件列表可作为参考记录导出,但导入不执行 Root 命令、不自动恢复实际禁用状态或保护策略。卸载或清除本应用数据同样不会自动启用此前禁用的组件。

厂商自定义选择器、应用私有菜单和部分动态快捷方式可能不受支持。组件扫描采用标准 Android API 和兼容路径;更新 APK 后如运行中的 system_server Hook 仍是旧版本,将安全降级直至新 Hook 加载。请在“设置 → 清理与兼容 / 高级与诊断”检查状态;分享诊断前确认其中的应用和日志信息。

正式版与作者仓库使用相同 APK 和固定签名。Debug 版本可能签名不同,卸载前请先导出规则并检查组件启用状态。

反馈问题时,请提供系统版本、设备型号、框架版本和复现步骤;分享诊断前请检查其中的应用列表和日志内容。

Releases

1.6.46

Stable

10/25/2026, 8:18:00 PM

列表清理 / List Cleaner 1.6.46

版本码 / Version code: 71
Xposed Hook compatibility: 70
上一正式版 / Previous stable release: v1.6.18

中文

  • 系统入口扩展:新增并完善长按快捷方式、Storage Access Framework 存储位置、Direct Share、发送到、打开方式、浏览器/深度链接及多种系统管理入口的候选发现、规则过滤和排序;无法验证的厂商入口优先安全放行。
  • 系统预览与候选来源:依据 Android 可访问的实际 API、RoleController、PackageManager、Settings 与相关服务查询,明确区分已启用项目、API 候选、Hook 返回和历史观察;不再将未验证的候选冒充最终系统列表,并修复过期快照。
  • 组件清理和保护:完善桌面入口、磁贴、快捷方式创建入口和小组件的 Root 组件管理、状态回读、重协调保护及扫描缓存刷新,尽量避免显示已经失效的组件。
  • Android 多空间:规则、优先排序、组件状态及批量锁按用户空间隔离;空间切换入口更清晰,支持多空间备份与导入时逐项映射目标空间。
  • 分享与快捷方式:改进 Direct Share 和 Launcher Shortcut 的发现、回传及过滤;提供主动刷新和候选探测能力,同时避免记录联系人、会话内容。
  • 运行时与兼容性:强化 libxposed API 102 的授权、作用域、Hook 生命周期与分用户路由;统一 Runtime Probe 配置、系统真实结果验证和失败时安全降级,改善稳定性与性能。
  • 全面扁平化 Material 3:统一规则、组件、排序、设置与弹出菜单的列表结构、图标、触摸区域、分隔线和交互;统一应用与组件长按的三点菜单。
  • 高亮和导航:应用展开、组件选中和分类选择统一使用主题高亮;精简底部导航栏,去掉选中横线;支持浅色/深色沉浸式系统栏。
  • 外观及设置:新增主题模式、颜色和尺寸等集中配置,统一设置控件;新增“关于”页、GitHub/Telegram 项目入口及多空间展开箭头。
  • 操作确认与安全锁:规则、排序及 Root 组件修改统一采用待应用草稿、放弃/应用和确认流程;应用与组件行通过三点菜单或长按管理操作锁,已锁定子项需先解锁才可修改。
  • 备份、诊断与体验:完善 v13 多空间备份和显式导入空间映射、系统预览、扫描记录、自动刷新与健康提示;更新应用内中英文功能说明及外部文档。Root 禁用组件记录仅供备份参考,不会随规则导入自动执行 Root 命令。
  • 构建与测试:Debug 保留 arm64 单包与 Material 3、翻译、双语一致性及回归检查;Release 构建包含依赖提供的所有 ABI,以固定证书签名,并且只能手动启动正式发布。

本版本汇总自 v1.6.18 以来的全部开发提交。完整逐条记录见 提交归档 与 GitHub 对比。部分系统入口仍受 Android/OEM 权限及具体版本限制,实际预览和过滤结果以设备运行时验证为准。


English

  • More Android entry points: Expanded discovery, filtering and ordering for long-press shortcuts, Storage Access Framework locations, Direct Share, Send To, Open With, browser/deep links and system-managed entry surfaces; unknown OEM results remain fail-open where necessary.
  • System previews and candidate evidence: Use accessible Android APIs, RoleController, PackageManager, Settings and system services; distinguish enabled services, API candidates, Hook returns and historical observations. Avoid presenting unverified candidates as the final rendered system list and reconcile stale snapshots.
  • Root component controls: Improved launcher entries, Quick Settings tiles, shortcut-creation activities and widget discovery; added stronger read-back, reconciliation and cache refresh behavior.
  • Android multi-user spaces: Isolate rules, priority ordering, component state and bulk-operation locks per user; support multi-space export and explicit import destination mapping.
  • Share and shortcut reliability: Better Direct Share and Launcher Shortcut observation, proactive discovery, refresh and verification without collecting contact or conversation contents.
  • Runtime compatibility: Strengthened libxposed API 102 scopes, authorization, lifecycle, per-user routing, atomic Runtime Probe publication, validation and safe fallback.
  • Unified flat Material 3 UI: Consistent Cleanup, Components, Ordering, Settings and popups, with shared rows, spacing, icons, touch targets, menus and app/component long-press actions.
  • Selection and navigation: Theme-aware highlighting for expanded apps, selected components and category choices; compact bottom navigation without underline and immersive light/dark system bars.
  • Appearance and About: Consolidated theme, color and sizing controls, an About screen with GitHub/Telegram links, and a clearer multi-space selector.
  • Confirmation and safety locks: Rule, ordering and Root component changes use staged drafts with Discard/Apply confirmation. App and component long-press or three-dot menus manage locks; locked child entries must be unlocked before editing.
  • Backup, diagnostics and documentation: Improved v13 multi-space backups with explicit space mapping, previews, scan records and refresh. Updated bilingual in-app help and project guides. Root-disabled component records remain informational and are not replayed on import.
  • Release quality: Preserve arm64-only Debug CI plus localization, Material 3 and regression checks. Release uses all ABIs supplied by dependencies and the pinned signing certificate; stable publication remains manual.

This release consolidates all development commits since v1.6.18. See the complete commit archive and GitHub comparison. Availability and behavior of system-managed entries can vary by Android/OEM version and permission; verify the effective results on-device.

版本码:71

签名证书 SHA-256:674ebcf768b46b0277ca190149df4496ea9e41a3a0d3693239f9a7f4ad1039db

源码提交:d24646fd14aa53419d871ee280473c8fc7e2a15a

完整变更 / Full changelog

范围 / Range: v1.6.18...v1.6.46

提交 / Commits: 1097

GitHub compare / 全部提交对比

完整逐条日志 / Complete commit history

最近提交 / Recent commits (last 80)

  • refactor(ui): align flat category navigation, app-scope list and page toolbar (779fe91)
  • fix(ui): responsive full-width tabs with narrow-screen label safety (0eacbbb)
  • refactor(ui): one continuous list style with persisted grouped preference migration (efe138f)
  • refactor(ui): unify flat app/detail rows, full-bleed home lists, settings sliders and probe results (8f4a875)
  • test(ui): recognize full-bleed List First home sections (4239ff7)
  • style(ui): align preview tabs, settings choices and color dialogs with flat list design (609f419)
  • refactor(ui): match flat list prototype with direct-list migration and compact app rows (e8ae2c6)
  • refactor(ui): unify category-home and direct-list into one flat workspace (f7c7096)
  • refactor(ui): remove unused category landing screens and fix priority list filter (4feca82)
  • test(ui): remove legacy category-home assertions and keep flat checks valid (a9e769e)
  • fix(ui): align Cleanup title and Category-first shared toolbar (75f8bb7)
  • fix(ui): circular expanded-detail selection and restore List Cleaner toolbar title (5e26312)
  • refactor(ui): flatten Cleanup mode tabs and category/filter toolbar (5ef136b)
  • fix(ci): evaluate flat toolbar checks after picker definitions (68d7da6)
  • refactor(ui): flat category/filter dropdowns and bottom navigation indicator (5dc8f85)
  • fix(ui): pin Reset and Apply below independently scrolling filter choices (7074d78)
  • style(ui): use hollow ring and filled dot for expanded detail selections (8665bcb)
  • style(ui): show OPEN format metadata as unboxed flat list text (14e5821)
  • refactor(settings): establish flat rows dialogs actions and full-width sections (ddca97a)
  • refactor(settings): flatten color editor, runtime status and confirmation surfaces (95a26c8)
  • refactor(settings): align scanning, backup and diagnostics to flat settings system (c8b0435)
  • fix(ci): accept indented flat section headers in Settings UI regression guard (ffc0092)
  • fix(build): import dp and Spacer for flat Settings layouts (da413be)
  • refactor(ui): move expanded detail previews into shared per-item overflow menu (1fe67cf)
  • fix(build): import resources for shared detail action menu (a1f1bcf)
  • feat(ui): move contextual preview eye ahead of Help in list summary (b0400ac)
  • test(ui): account for contextual header preview in shared summary checks (8bbba3c)
  • refactor(ui): make category icon a contextual preview eye and remove summary duplicate (263209f)
  • fix(ui): replace only the category glyph with contextual preview eye (2ab2b5b)
  • refactor(ui): replace expanded detail selection circles with slim rail and tinted flat rows (259a295)
  • refactor(ui): unify app and detail overflow menus with aligned three-dot column (fcba80a)
  • refactor(ui): unify modal and dropdown surfaces, flat selector tabs and pending actions (5d8538d)
  • refactor(ui): migrate secondary filters, space menus and system preview to unified flat choices (a92281d)
  • test(ui): enforce one flat UI contract and flatten managed-list rows (8c485d8)
  • refactor(ordering): reuse cleanup category preview, list summary, selection and detail menus (840f1fd)
  • fix(ui): reduce filter Reset/Apply footer to one compact flat 48dp row (826a127)
  • refactor(ui): unify anchored flat popup engine with isolated scroll and centered footer (623c3f8)
  • fix(ui): constrain flat popup width by menu purpose and screen size (bd62f23)
  • refactor(ui): unify flat dialog, buttons and accessible menu rows (f964499)
  • refactor(ui): remove unreachable grouped renderers and obsolete card tokens; share selection geometry (cc7eeb9)
  • test(ui): guard flat capabilities, migrate obsolete assertions and keep one layout path (024ed05)
  • refactor(ui): reuse one flat underline tab across settings, scope and previews (b8a97e0)
  • refactor(ui): delete unused legacy group and detail-icon wrappers (5936462)
  • test(ui): parse complete composable button body instead of its content parameter (53928a4)
  • refactor(settings): unify flat Material3 sliders and switches, reuse RGB slider fields (d068d24)
  • test(ui): check only direct native Slider calls, not wrapped Slider names (707db23)
  • test(ui): correct direct Slider regex escapes (618533c)
  • fix(ui): use public Material3 SliderDefaults.Track overload (cde23b4)
  • fix: guard async candidate publications and recover backup/scan state (a5dcd8d)
  • test: align every-entry refresh assertions with failure-only cooldown (b5f7117)
  • refactor(ui): regroup existing entry types into seven category sections (f75af97)
  • test: keep system service contracts checked after entry regrouping (d311f85)
  • ui: distinguish expanded category sections without extra selection dots (4cacdf0)
  • fix(ui): preserve shared selection rail in category menu (8881149)
  • ui: remove redundant guide lines from expanded category options (cd40d03)
  • ui: make category titles larger than expanded category choices (e33377d)
  • ui: unify category and filter popup text hierarchy (48cd489)
  • ui: replace expanded component selection rail with trailing blue check (5ab3e60)
  • ui: show selected component check after overflow, preserve menu alignment (d0f8dad)
  • ui: replace app square checkboxes with borderless three-state marks (7c4300a)
  • ui: tighten app selection mark spacing without reducing touch targets (b520312)
  • ui: balance three-state marks between list edge and app icons (27edf8b)
  • ui: align entire workspace app row content rather than offsetting selection glyph (27f2f2f)
  • ui: balance expanded component row spacing and remove obsolete rail indentation (1ad78fc)
  • ui: immersive transparent system bars with day/night icons and safe insets (2df3a38)
  • ui: align expanded component text with app icons and place lock in leading slot (07b5cdb)
  • ui: use same three-dot menu for long press on apps and components (5e27763)
  • test: align shared overflow contract with component long-press state (90aea6f)
  • ui: compact bottom navigation with theme-accent selection and no underline (db7bde1)
  • ui: share category highlight for selected components and expanded app rows (ea1dd86)
  • ui: move component lock indicator after overflow without shifting the menu (87d4809)
  • ui: add About settings page with app version and project links (470f242)
  • fix: import Compose padding in About settings screen (eb64066)
  • ui: add Telegram link to About and dropdown chevron to space selector (69d1311)
  • release: archive v1.6.46 full commit log and keep Release notes within size limit (9318c37)
  • ci: preserve correct sed capture groups in arm64 APK ABI verifier (a087966)
  • build(release): package all supported ABIs; keep arm64 filter debug-only (b531beb)
  • docs: align List Cleaner 1.6.46 guides with current UI and release policies (2955954)
  • docs(ui): refresh bilingual in-app help for staged actions and system capabilities (c00c48d)
  • docs(release): consolidate v1.6.18-to-v1.6.46 changelog and complete commit archive (d24646f)

原始发布 / Original release:https://github.com/yagay/ListCleaner/releases/tag/v1.6.46

使用要求 / Requirements:modern libxposed API 102;Android 12 及以上 / Android 12 or newer.

Assets

3

1.6.18

Stable

9/25/2026, 12:10:30 AM

列表清理 / List Cleaner 1.6.18

版本码 / Version code: 43

中文

  • Root 磁贴、快捷方式和小组件的持久保护状态现在与主规则一起进入 Runtime Probe 原子配置;ComponentStateGuardModule 与 ComponentDiscoveryFilterModule 优先使用同一份 system_server 进程内权威快照,不再依赖 RemotePreferences 是否及时刷新。
  • Runtime Probe 的 BEGIN、CHUNK、COMMIT 全部先验证管理器 UID;非管理器调用不能中断正在进行的配置分块传输。
  • Probe v2 成功后停止在 PackageManager / Resolver 查询热路径轮询 RemotePreferences,减少查询时的配置读取和 SHA-256 计算。
  • Root 组件批量操作完成后只进行一次运行时同步,同时 digest 会包含 Root 保护集合,因此即使普通规则 revision 未变化也能正确更新 Hook。
  • App Link 自动发现现在会缓存“成功但为空”的扫描结果,并对失败增加短时间退避,避免每次刷新重复启动 root shell 和 dumpsys package。
  • 修正 ComponentReconcileJobService 的取消与替换 Job 生命周期,避免旧 Job 在被停止后错误结束新的 Job。
  • 收紧组件重协调广播接收器为非导出。
  • 修正 GitHub Actions:Release PR 校验现在真正有 pull_request 触发器;Debug PR 也会在 Gradle/wrapper 配置变化时编译。
  • 重构高风险大文件:候选分组与历史候选逻辑移出 MainViewModel,优先级编辑移入独立 PriorityEditorController,Xposed 运行时快照与组件策略也拆成独立模型。
  • 规则页和优先级页不再使用 openPreset!! / browserHost!!,改为基于当前分类捕获稳定作用域值,降低状态切换时的空指针风险。
  • 删除已无运行时用途的 TileConfig / TilePolicy 和 forced-default transient 配置外壳;旧备份/配置中的这些字段仍会作为未知字段安全忽略。
  • 本次修改涉及 Xposed 运行时合同,Hook compatibility 提升到 43。

English

  • Root tile, shortcut, and widget protection is now carried in the same atomic Runtime Probe configuration as resolver rules. ComponentStateGuardModule and ComponentDiscoveryFilterModule prefer the shared authoritative in-process system_server snapshot instead of depending on RemotePreferences cache freshness.
  • Runtime Probe now verifies the manager UID before BEGIN, CHUNK, and COMMIT operations, preventing non-manager callers from disrupting an in-flight chunk transfer.
  • After Probe v2 becomes authoritative, PackageManager/Resolver hot paths stop polling RemotePreferences, reducing configuration reads and SHA-256 work during resolver queries.
  • Root component batches perform one runtime synchronization after mutation, and the runtime digest includes the protected component set so hook state updates even when the normal rule revision is unchanged.
  • App Link discovery now caches successful empty scans and backs off briefly after failures, avoiding repeated root shell and dumpsys package work on every refresh.
  • Fixed ComponentReconcileJobService cancellation/replacement lifecycle so a stopped stale job cannot finish or remove its replacement.
  • Restricted the reconcile broadcast receiver from external export.
  • Fixed GitHub Actions so release validation actually runs for pull requests and debug PR builds also cover Gradle/wrapper changes.
  • Split high-risk large files: candidate grouping/history logic moved out of MainViewModel, priority editing moved into PriorityEditorController, and Xposed runtime snapshots/component policy now live in dedicated models.
  • Removed openPreset!! / browserHost!! assertions from the rules and priority Compose screens by capturing stable scope values for the current category.
  • Removed obsolete TileConfig / TilePolicy and forced-default transient compatibility shells; legacy JSON fields remain safely ignored as unknown fields.
  • This release changes Xposed runtime behavior, so hook compatibility is bumped to 43.

版本码:43

签名证书 SHA-256:674ebcf768b46b0277ca190149df4496ea9e41a3a0d3693239f9a7f4ad1039db

源码提交:692a1a62991a9185e4895122b121ea4b89d788b9

完整变更 / Full changelog

范围 / Range: v1.6.17...v1.6.18

  • Fix LSPosed release asset downloads (7f05743)
  • Harden runtime synchronization and component policy (1a944c9)
  • Add more cleanup entry types (1573cc9)
  • Keep Direct Share consistent with Share cleanup (4a3a20c)
  • ci: allow arm64-only debug builds (692a1a6)

原始发布 / Original release:https://github.com/yagay/ListCleaner/releases/tag/v1.6.18

使用要求 / Requirements:modern libxposed API 102;Android 12 及以上 / Android 12 or newer.

Assets

3

1.6.17

Stable

9/23/2026, 9:38:10 AM

列表清理 / List Cleaner 1.6.17

版本码 / Version code: 42

中文

  • 新增 Runtime Probe v2:运行中的规则更新不再依赖 RemotePreferences 是否及时刷新。管理端会在需要时把真实的 ModuleConfig 分块传入已运行的 system_server Hook;RemotePreferences 继续只负责持久化、冷启动恢复和官方 LSPosed 的快速同步路径。
  • system_server 会先验证 Binder 调用 UID 确实属于 com.yagay.ListCleaner,再重组配置、重新计算 SHA-256、校验 managerAppId 并完整解析配置。只有实际收到并应用的配置 digest 与期望值一致时才返回 Runtime ACK。
  • 删除 1.6.16 的 legacy mirror digest 回退,不再允许用管理端传入的 expected digest 给旧配置“标记成功”;运行时推送失败时继续保留最后一份有效规则。
  • Probe v2 使用分块传输,并加入 transfer ID、调用 UID 绑定、大小/分块数量限制、10 秒超时、完整性与 digest 校验,避免 Binder 大事务和半套配置被应用。
  • 一旦 Probe v2 成功应用配置,当前进程内的 Hook 快照成为运行时权威来源;即使 Vector / 部分 libxposed API 102 实现继续返回 stale RemotePreferences,也不会再把新规则回滚成旧规则。
  • Resolver 过滤和优先排序优先使用 system_server 在 ResolveInfo 副本中附带的 include/rank/digest 元数据,因此过滤、排序和自定义标题使用同一份运行时规则,避免 system_server 已更新而 Resolver 仍停留在旧配置。
  • 官方 LSPosed 仍保留原有低开销路径:如果 RemotePreferences 变更监听已经让 Hook 获得最新配置,首次 Runtime ACK 即成功,不需要额外传输。
  • 本次修改涉及 Xposed 运行时和 Runtime Probe 合同,Hook compatibility 提升到 42。升级后需要让 system_server / 相关 Hook 进程加载新的 Hook 代数。

English

  • Added Runtime Probe v2 so live rule updates no longer depend on when a framework refreshes RemotePreferences. When needed, the manager transfers the actual serialized ModuleConfig in chunks to the already-running system_server hook. RemotePreferences remains the persistence/cold-start store and the fast path when official LSPosed propagates changes normally.
  • system_server now verifies that the Binder caller UID belongs to com.yagay.ListCleaner, reassembles the payload, recomputes SHA-256, validates managerAppId, and fully decodes the configuration. Runtime ACK is returned only for the digest of the configuration that was actually received and applied.
  • Removed the 1.6.16 legacy-mirror digest fallback. An expected digest supplied by the manager can no longer make stale legacy data appear successfully applied; failed transfers keep the last known-good rules.
  • Probe v2 uses chunked transport with transfer IDs, caller-UID ownership, size/chunk limits, a 10-second timeout, completeness checks, and digest verification to avoid oversized Binder transactions and partial configuration application.
  • After a verified Probe v2 update, the in-process hook snapshot becomes authoritative for the running process. Stale RemotePreferences returned by Vector or another libxposed API 102 implementation cannot roll the live policy back.
  • Resolver filtering and priority ordering now prefer include/rank/digest metadata attached to copied ResolveInfo results by system_server, keeping filtering, ordering, and custom titles on the same live policy instead of maintaining an independently stale Resolver snapshot.
  • Official LSPosed keeps the low-overhead path: if its RemotePreferences listener has already delivered the latest configuration, the first Runtime ACK succeeds and no configuration transfer is needed.
  • This release changes Xposed runtime behavior and the Runtime Probe contract, so hook compatibility is bumped to 42. After updating, system_server and the relevant hooked processes must load the new hook generation.

版本码:42

签名证书 SHA-256:674ebcf768b46b0277ca190149df4496ea9e41a3a0d3693239f9a7f4ad1039db

源码提交:08f2bb6b7a0a925ef26aa2892099a37e754ce127

完整变更 / Full changelog

范围 / Range: v1.6.16...v1.6.17

  • Release 1.6.17 with Runtime Probe v2 (08f2bb6)

原始发布 / Original release:https://github.com/yagay/ListCleaner/releases/tag/v1.6.17

使用要求 / Requirements:modern libxposed API 102;Android 12 及以上 / Android 12 or newer.

Assets

3

1.6.16

Stable

9/23/2026, 7:13:52 AM

列表清理 / 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 to com.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)

原始发布 / Original release:https://github.com/yagay/ListCleaner/releases/tag/v1.6.16

使用要求 / Requirements:modern libxposed API 102;Android 12 及以上 / Android 12 or newer.

Assets

3

1.6.15

Stable

9/20/2026, 10:08:48 AM

列表清理 / List Cleaner 1.6.15

版本码 / Version code: 40

中文

  • 新增“深度链接”独立分类,与“浏览器”真正分开:Chrome、Firefox、YBrowser 等通用网页处理器继续归“浏览器”,GitHub、YouTube 等特定域名 App Link 归“深度链接”。
  • 深度链接完整复用现有规则体系:应用筛选、查看筛选、搜索、锁定、多选、排序、全选、全不选、反选等均与其他分类统一。
  • 域名规则只属于“深度链接”,不再和普通浏览器规则混用;旧版按域名保存的 Browser 规则、自定义标题和子项锁会自动兼容迁移。
  • 新增 Android App Link 域名自动发现,不需要先手动添加域名;自动发现的域名只有在实际扫描到至少一个可用 Deep Link App 时才显示,避免空域名。
  • 保留手动添加/管理域名;已手动配置的域名即使当前没有候选 App 也继续显示,方便后续管理或删除。
  • 深度链接域名下拉新增实时搜索;弹出菜单默认以“域名”筛选按钮为中心展开,屏幕空间不足时再自动调整位置。
  • 优化域名弹出菜单密度:全部、管理域名、搜索框外部留白、空结果提示和域名列表统一紧凑;域名字体、搜索文字和搜索图标保持正常大小。
  • “选择”菜单新增“全不选”,与“全选 / 反选”一起遵守当前过滤范围和锁定规则;被锁定项目不会被批量取消。
  • 修复 APK 已更新但旧 Hook 仍在运行时,管理 App 启动阶段可能直接退出的问题:现在会正常进入应用并提示“需要重启手机”,不再在启动阶段自动热重载旧 Hook。
  • 优化 Hook 兼容代数:本版本 APK versionCode 为 40,但 Hook compatibility 继续保持 39;本次 UI/管理侧修复本身不会额外制造新的 Hook 重启要求。
  • Release 工作流调整为:版本号升级即视为正式发布,执行优化 Release 编译、固定签名校验、zipalign、SHA-256、GitHub Release 发布并触发 LSPosed 同步。

English

  • Added a first-class Deep Links category that is genuinely separate from Browser. Generic web handlers such as Chrome, Firefox, and YBrowser remain Browser targets, while host-specific App Links such as GitHub and YouTube are classified as Deep Links.
  • Deep Links now reuse the same rules UI and behavior as other categories: app filters, view filters, search, locks, multi-select, ordering, Select all, Select none, and Invert.
  • Per-domain rules now belong only to Deep Links instead of being mixed with generic browser rules. Legacy per-domain Browser rules, custom titles, and child locks are migrated compatibly.
  • Added automatic Android App Link domain discovery, so a host no longer has to be entered manually first. Auto-discovered hosts are shown only when at least one eligible Deep Link app is actually found, avoiding empty domains.
  • Manual domain management remains available. Previously configured hosts stay visible even if no current candidate app is found, so they can still be managed or removed.
  • Added live search to the Deep Link domain dropdown. The popup now prefers to open centered on the Domain filter button and only shifts when screen space requires it.
  • Compacted the entire domain popup: All, Manage domains, search-field outer spacing, empty-state spacing, and domain rows now use tighter vertical spacing while keeping normal domain text, search text, and icon sizes.
  • Added Select none next to Select all and Invert. Bulk deselection respects the current filter scope and lock protection, so locked entries are skipped.
  • Fixed a startup failure when the APK is newer but an older hook generation is still running. The manager now opens normally and shows a restart-required prompt instead of attempting an automatic hot reload before the UI appears.
  • The APK versionCode is now 40 while hook compatibility remains 39. These UI/manager-side changes do not create an additional hook restart requirement by themselves.
  • Release automation now treats a version bump as a formal release: optimized Release compilation, pinned-signature verification, zipalign, SHA-256 generation, GitHub Release publication, and LSPosed sync dispatch.

版本码:40

签名证书 SHA-256:674ebcf768b46b0277ca190149df4496ea9e41a3a0d3693239f9a7f4ad1039db

源码提交:92d99b8148920a0f417c0270a29c9132622fb6b8

完整变更 / Full changelog

范围 / Range: v1.6.12...v1.6.15

  • Separate hook compatibility from app updates (e983b11)
  • Add per-domain browser link rules (7a51a00)
  • Fix browser-domain App Link discovery (90d62f8)
  • Compact type, domain, and bulk filters (e0ac69c)
  • Rename bulk action menu to Select (1497d66)
  • Auto-discover App Link domains and fix type selector (0404473)
  • Separate browsers and deep links (f32a1f9)
  • Hide empty auto-discovered Deep Link domains (3138253)
  • Keep manager app open when hook restart is required (5d285a2)
  • Add domain search and compact rows (384e06a)
  • Restore domain font size (b7a184f)
  • Center Deep Link domain menu on its anchor (478dfc7)
  • Restore domain search text and icon size (432f20b)
  • Compact all Deep Link domain menu content (5f5ca16)
  • Release List Cleaner 1.6.15 (92d99b8)

原始发布 / Original release:https://github.com/yagay/ListCleaner/releases/tag/v1.6.15

使用要求 / Requirements:modern libxposed API 102;Android 12 及以上 / Android 12 or newer.

Assets

3

1.6.12

Stable

9/19/2026, 3:34:01 PM

列表清理 / List Cleaner 1.6.12

版本码 / Version code: 37

中文

  • 新增统一的系统应用 / 用户应用筛选:规则、排序和组件页都使用节省空间的“应用:全部 / 用户应用 / 系统应用”紧凑下拉,可与现有“查看”筛选组合使用。
  • 应用类型在扫描时一次性识别并随候选数据保存,列表过滤不会反复查询 PackageManager;预装系统应用即使后续更新,仍按系统应用处理。
  • 应用类型筛选只控制当前显示范围和全选/反选等批量操作目标,不参与现有排序,不改变已选/半选/未选状态,也不改变批量操作锁或 Root 组件状态。
  • 组件页可分别查看和批量管理用户应用、系统应用;原有核心系统组件保护规则保持不变,受保护项目仍只展示、不可修改。
  • 批量操作锁改为手势操作:应用或子项向右滑加锁、向左滑解锁;未锁定时不显示锁图标,锁定后才显示状态图标。整体锁保护整个应用,部分锁只保护对应子项;锁只跳过全选/反选等批量操作,仍可手动修改,不参与排序,也不改变已选/半选/未选或 Root 状态。“全部 → 已锁定”会汇总各分类中的锁定项目。
  • 修复“全部”页对分类型锁的保护:在 PDF、图片等打开方式分类型中锁定的应用或子项,现在也会在“全部 → 已锁定”中汇总显示,并在“全部”执行全选/反选时继续跳过,不能再从聚合页绕过分类锁。
  • 组件发现改为通用 Android 标准层优先:Widget 优先读取 AppWidgetManager Provider 注册表并以 Manifest 扫描补充;快捷方式创建入口合并 LauncherApps 配置 Activity 与旧 ACTION_CREATE_SHORTCUT;同一组件多来源自动去重。
  • 新增组件发现来源诊断,可记录 PACKAGE_MANAGER、APP_WIDGET_MANAGER、LAUNCHER_APPS 等来源;安装、更新或卸载应用后会自动使候选缓存失效。
  • 新增组件发现运行时能力握手与自动降级:若 APK 已更新但 system_server 仍运行旧 Hook,不强行调用新 Widget 注册表;未确认新协议时自动使用旧安全扫描。LauncherApps、AppWidgetManager 与 discovery Hook 遇到异常时均 fail-open,保留原始/旧扫描结果而不是让应用崩溃。
  • 优化扫描与批量操作性能:锁状态改为内存缓存;应用名、应用状态和已配置候选元数据减少重复 PackageManager 查询;批量组件操作完成后按分类一次重新发现并批量回读状态。
  • 修复 Telegram 发布时的版本说明竞态:现在按 Release 对应源码提交校验 RELEASE_NOTES,不再因为 main 已前进到更新说明而误判失败。
  • 保留 Root 真禁用、LSPosed 发现过滤以及开机/解锁/应用更新后的自动校正机制。

本版本包含 v1.6.11 之后的全部改动;正式 Release 继续使用固定签名证书、R8 优化、zipalign、SHA-256 与 APK 身份/版本校验。


English

  • Added unified user/system app filtering across Rules, Ordering, and Components with a space-saving “Apps: All / User apps / System apps” dropdown that can be combined with the existing View filter.
  • App type is classified once during scanning and carried with candidate data, avoiding repeated PackageManager lookups while filtering. Updated preinstalled system apps remain classified as system apps.
  • App-type filtering only controls the current view and the target set for Select All/Invert-style bulk actions. It never participates in ordering and does not change selected/partial/unselected state, bulk-operation locks, or Root component state.
  • Components can now be viewed and batch-managed separately for user and system apps. Existing protection for core system components is unchanged; protected entries remain display-only.
  • Bulk-operation locks now use gestures: swipe right on an app or child entry to lock and swipe left to unlock. Unlocked rows show no lock icon; a status icon appears only after locking. Full locks protect the whole app and partial locks protect selected children. Locks only skip Select All/Invert-style bulk actions, remain manually editable, never participate in ordering, and do not change selected/partial/unselected or Root state. Locked under All aggregates category locks.
  • Fixed aggregate protection for typed Open-with locks: entries locked under PDF, Image, and other Open-with presets now appear in Locked under All and remain excluded from Select All/Invert on the All view, so category locks cannot be bypassed from the aggregate page.
  • Component discovery now prefers generalized Android subsystem registries: widgets use AppWidgetManager providers with manifest fallback, while shortcut creation entries merge LauncherApps configuration activities with legacy ACTION_CREATE_SHORTCUT entries. Multiple discovery sources are deduplicated.
  • Diagnostics now record component discovery sources such as PACKAGE_MANAGER, APP_WIDGET_MANAGER, and LAUNCHER_APPS. Installing, updating, or removing apps invalidates candidate caches automatically.
  • Added a runtime component-discovery capability handshake and safe fallback. If the APK is newer while system_server still runs an older hook, List Cleaner avoids forcing the new widget-registry path and falls back to the older safe scan until the new protocol is confirmed. LauncherApps, AppWidgetManager, and discovery-hook failures are fail-open so the original/legacy result is preserved instead of crashing the app.
  • Reduced repeated work during scanning and bulk actions: lock state is cached in memory, app labels/state/configured-candidate metadata reuse package lookups, and post-batch component refresh performs one discovery pass per affected category.
  • Telegram publishing now validates release notes against the release commit instead of the moving main branch, avoiding false failures when newer documentation commits land before the channel post runs.
  • Real Root disable, LSPosed discovery filtering, and automatic reconciliation after boot/unlock/app updates remain in place.

This release includes all changes after v1.6.11. Production releases continue to use the pinned signing certificate, R8 optimization, zipalign, SHA-256, and APK identity/version verification.

版本码:37

签名证书 SHA-256:674ebcf768b46b0277ca190149df4496ea9e41a3a0d3693239f9a7f4ad1039db

源码提交:3aebf75172b3a2a246e3162ce0d886a50af046f3

完整变更 / Full changelog

范围 / Range: v1.6.11...v1.6.12

  • Decouple catalog scanning from Xposed runtime readiness (29006df)
  • Clarify catalog availability while runtime update is pending (813ab41)
  • 明确运行时待更新时本地列表仍可使用 (326958f)
  • Add directional bulk lock setters (35af488)
  • Expose directional bulk lock actions (3862659)
  • Aggregate rule locks in the All view (dc19f29)
  • Replace lock buttons with swipe gestures (299ed3a)
  • Expose per-rule inherited lock state (c18944b)
  • Use swipe locks and aggregate locks in Rules All view (eb38e98)
  • Aggregate component locks in the All view (433bc9f)
  • Use swipe gestures for priority locks (31f0f3e)
  • Use swipe locks and aggregate locks in Components All view (524b4e4)
  • Keep full-scope lock state while filtering Rules (64bce10)
  • Explain swipe locking and aggregated Locked view (2bd3617)
  • 说明滑动锁定与全部页汇总已锁定 (5431ea2)
  • Explain swipe locking in ordering help (d25c04a)
  • 说明排序页滑动锁定 (79e4ed5)
  • Explain swipe locking in component help (a335783)
  • 说明组件页滑动锁定和全部汇总 (8664ca9)
  • Fix component lock helper import (3f4c2a1)
  • Update lock gesture documentation (c4f0264)
  • Update English lock gesture documentation (acd3e02)
  • Update LSPosed Chinese lock gesture docs (ff53735)
  • Update LSPosed English lock gesture docs (9048de3)
  • Keep swipe lock gesture block explicit (484a65e)
  • Migrate legacy All-page locks during swipe (b54eaad)
  • Expose stored lock scopes for aggregate views (0071a1f)
  • Aggregate typed rule locks in All view (5e4988b)
  • Keep aggregate locks scoped to exact categories (36012c2)
  • Avoid cross-type lock overmatching (1b8b44c)
  • Use Android subsystem registries for component discovery (6e6be06)
  • Cache bulk lock state in memory (993fd44)
  • Invalidate candidate cache on package changes (e7578c2)
  • Observe package removals for catalog refresh (53bc56f)
  • Cache app labels during resolver discovery (c412a5b)
  • Report component discovery sources in diagnostics (a3e398e)
  • Batch package metadata for configured candidates (86ef1c7)
  • Avoid hardcoded self package in component protection (76eb675)
  • Batch post-mutation component refresh (6c0ec00)
  • Document registry-based component discovery (2357cd3)
  • Document registry-based component discovery in English (a8376f7)
  • Describe generalized component discovery (47849e7)
  • Describe generalized component discovery in English (001a81e)
  • Explain generalized component discovery (a6089e1)
  • 说明通用组件发现方式 (cbbe340)
  • Skip redundant reconcile job on package removal (369cb1f)
  • Fail open on widget discovery reflection errors (4064804)
  • Track component discovery runtime capability (143e50b)
  • Advertise safe component discovery protocol (9869755)
  • Gate widget registry behind runtime capability (1497ac1)
  • Report component discovery protocol (79c3fe5)
  • Fail open on LauncherApps discovery errors (af954af)
  • Expand component discovery and lock documentation (ad43c06)
  • Expand component discovery and lock documentation in English (8480456)
  • Document discovery fallback and lock semantics for LSPosed (c147541)
  • Document discovery fallback and lock semantics for LSPosed in English (8ead848)
  • Clarify bulk lock behavior in rule help (c4cb7c2)
  • 补充规则页锁定机制说明 (a55dd88)
  • Clarify swipe lock behavior in ordering help (25b4996)
  • 补充排序页锁定机制说明 (cd27d44)
  • Explain component discovery fallback in Root help (5b4808e)
  • 补充组件发现降级说明 (2c23053)
  • Expand component lock help (233b46d)
  • 补充组件页锁定说明 (5f4a95f)
  • Update LSPosed summary with swipe locks and safe discovery (56e5f3b)
  • Update LSPosed English summary with swipe locks and safe discovery (6a5bd1f)
  • Document unreleased discovery and swipe lock changes (c31b181)
  • Keep release notes scoped to published 1.6.11 (dc645a3)
  • Document discovery, fallback, and swipe locking changes (2daf285)
  • Update LSPosed summary for swipe locks and discovery fallback (18655a9)
  • Update English LSPosed summary for swipe locks and discovery fallback (9d389b4)
  • Respect typed Open locks from the All view (226f656)
  • Validate Telegram notes against the release commit (fc8dea1)
  • Bump version to 1.6.12 (4f7cdf3)
  • Prepare List Cleaner 1.6.12 release (3aebf75)

原始发布 / Original release:https://github.com/yagay/ListCleaner/releases/tag/v1.6.12

使用要求 / Requirements:modern libxposed API 102;Android 12 及以上 / Android 12 or newer.

Assets

3

1.6.11

Stable

9/19/2026, 1:28:45 PM

列表清理 / List Cleaner 1.6.11

版本码 / Version code: 36

中文

  • 新增统一的系统应用 / 用户应用筛选:规则、排序和组件页都使用节省空间的“应用:全部 / 用户应用 / 系统应用”紧凑下拉,可与现有“查看”筛选组合使用。
  • 应用类型在扫描时一次性识别并随候选数据保存,列表过滤不会反复查询 PackageManager;预装系统应用即使后续更新,仍按系统应用处理。
  • 应用类型筛选只控制当前显示范围和全选/反选等批量操作目标,不参与现有排序,不改变已选/半选/未选状态,也不改变批量操作锁或 Root 组件状态。
  • 组件页可分别查看和批量管理用户应用、系统应用;原有核心系统组件保护规则保持不变,受保护项目仍只展示、不可修改。
  • 批量操作锁改为手势操作:应用或子项向右滑加锁、向左滑解锁;未锁定时不显示锁图标,锁定后才显示状态图标。整体锁保护整个应用,部分锁只保护对应子项;锁只跳过全选/反选等批量操作,仍可手动修改,不参与排序,也不改变已选/半选/未选或 Root 状态。“全部 → 已锁定”会汇总各分类中的锁定项目。
  • 组件发现改为通用 Android 标准层优先:Widget 优先读取 AppWidgetManager Provider 注册表并以 Manifest 扫描补充;快捷方式创建入口合并 LauncherApps 配置 Activity 与旧 ACTION_CREATE_SHORTCUT;同一组件多来源自动去重。
  • 新增组件发现来源诊断,可记录 PACKAGE_MANAGER、APP_WIDGET_MANAGER、LAUNCHER_APPS 等来源;安装、更新或卸载应用后会自动使候选缓存失效。
  • 新增组件发现运行时能力握手与自动降级:若 APK 已更新但 system_server 仍运行旧 Hook,不强行调用新 Widget 注册表;未确认新协议时自动使用旧安全扫描。LauncherApps、AppWidgetManager 与 discovery Hook 遇到异常时均 fail-open,保留原始/旧扫描结果而不是让应用崩溃。
  • 优化扫描与批量操作性能:锁状态改为内存缓存;应用名、应用状态和已配置候选元数据减少重复 PackageManager 查询;批量组件操作完成后按分类一次重新发现并批量回读状态。
  • 保留 Root 真禁用、LSPosed 发现过滤以及开机/解锁/应用更新后的自动校正机制。

本版本包含 v1.6.10 之后的全部改动;正式 Release 继续使用固定签名证书、R8 优化、zipalign、SHA-256 与 APK 身份/版本校验。


English

  • Added unified user/system app filtering across Rules, Ordering, and Components with a space-saving “Apps: All / User apps / System apps” dropdown that can be combined with the existing View filter.
  • App type is classified once during scanning and carried with candidate data, avoiding repeated PackageManager lookups while filtering. Updated preinstalled system apps remain classified as system apps.
  • App-type filtering only controls the current view and the target set for Select All/Invert-style bulk actions. It never participates in ordering and does not change selected/partial/unselected state, bulk-operation locks, or Root component state.
  • Components can now be viewed and batch-managed separately for user and system apps. Existing protection for core system components is unchanged; protected entries remain display-only.
  • Bulk-operation locks now use gestures: swipe right on an app or child entry to lock and swipe left to unlock. Unlocked rows show no lock icon; a status icon appears only after locking. Full locks protect the whole app and partial locks protect selected children. Locks only skip Select All/Invert-style bulk actions, remain manually editable, never participate in ordering, and do not change selected/partial/unselected or Root state. Locked under All aggregates category locks.
  • Component discovery now prefers generalized Android subsystem registries: widgets use AppWidgetManager providers with manifest fallback, while shortcut creation entries merge LauncherApps configuration activities with legacy ACTION_CREATE_SHORTCUT entries. Multiple discovery sources are deduplicated.
  • Diagnostics now record component discovery sources such as PACKAGE_MANAGER, APP_WIDGET_MANAGER, and LAUNCHER_APPS. Installing, updating, or removing apps invalidates candidate caches automatically.
  • Added a runtime component-discovery capability handshake and safe fallback. If the APK is newer while system_server still runs an older hook, List Cleaner avoids forcing the new widget-registry path and falls back to the older safe scan until the new protocol is confirmed. LauncherApps, AppWidgetManager, and discovery-hook failures are fail-open so the original/legacy result is preserved instead of crashing the app.
  • Reduced repeated work during scanning and bulk actions: lock state is cached in memory, app labels/state/configured-candidate metadata reuse package lookups, and post-batch component refresh performs one discovery pass per affected category.
  • Real Root disable, LSPosed discovery filtering, and automatic reconciliation after boot/unlock/app updates remain in place.

This release includes all changes after v1.6.10. Production releases continue to use the pinned signing certificate, R8 optimization, zipalign, SHA-256, and APK identity/version verification.

版本码:36

签名证书 SHA-256:674ebcf768b46b0277ca190149df4496ea9e41a3a0d3693239f9a7f4ad1039db

源码提交:2daf2858c3550f959bbd0b8b656bc1b4c1b048f1

完整变更 / Full changelog

范围 / Range: v1.6.10...v1.6.11

  • Add shared user and system app classification (13c8629)
  • Store app type on resolver candidates (7d171da)
  • Classify resolver candidates as user or system apps (c7e33d8)
  • Classify Root components by owning app type (2ab739e)
  • Carry app type through rule groups (f6e482c)
  • Carry app type through priority groups (28266b0)
  • Add compact user and system app filter controls (680462a)
  • Filter rule apps by user or system type (dd3bbe7)
  • Filter priority apps by user or system type (f7684d0)
  • Add compact user and system filter to components (e0299b6)
  • Add app type filter labels (8930e3d)
  • Reuse shared app type classification (04e46ab)
  • Add user and system app filter strings (dbaaf93)
  • 添加系统和用户应用筛选文案 (8df8092)
  • Add compact app filter UI strings (85e755f)
  • 添加紧凑应用筛选文案 (c110b17)
  • Test user and system app filtering (ba28e55)
  • Document compact user and system app filtering (f473cc8)
  • Document compact user and system app filtering in English (e67e84b)
  • Document user and system app filters for LSPosed (2faa03b)
  • Document user and system app filters for LSPosed in English (28b5049)
  • Update LSPosed summary with app type filtering (73f33a9)
  • Update LSPosed English summary with app type filtering (f20b3f0)
  • Explain compact app type filtering in rule help (f3741a8)
  • 说明紧凑系统和用户应用筛选 (4c3318f)
  • Explain app type filtering in ordering help (160e1a6)
  • 说明排序页系统和用户应用筛选 (380ea37)
  • Explain app type filtering in component help (47f949d)
  • 说明组件页系统和用户应用筛选 (778a6ef)
  • Bump version to 1.6.11 (7b9b49a)
  • Prepare List Cleaner 1.6.11 release (d146060)
  • Decouple catalog scanning from Xposed runtime readiness (29006df)
  • Clarify catalog availability while runtime update is pending (813ab41)
  • 明确运行时待更新时本地列表仍可使用 (326958f)
  • Add directional bulk lock setters (35af488)
  • Expose directional bulk lock actions (3862659)
  • Aggregate rule locks in the All view (dc19f29)
  • Replace lock buttons with swipe gestures (299ed3a)
  • Expose per-rule inherited lock state (c18944b)
  • Use swipe locks and aggregate locks in Rules All view (eb38e98)
  • Aggregate component locks in the All view (433bc9f)
  • Use swipe gestures for priority locks (31f0f3e)
  • Use swipe locks and aggregate locks in Components All view (524b4e4)
  • Keep full-scope lock state while filtering Rules (64bce10)
  • Explain swipe locking and aggregated Locked view (2bd3617)
  • 说明滑动锁定与全部页汇总已锁定 (5431ea2)
  • Explain swipe locking in ordering help (d25c04a)
  • 说明排序页滑动锁定 (79e4ed5)
  • Explain swipe locking in component help (a335783)
  • 说明组件页滑动锁定和全部汇总 (8664ca9)
  • Fix component lock helper import (3f4c2a1)
  • Update lock gesture documentation (c4f0264)
  • Update English lock gesture documentation (acd3e02)
  • Update LSPosed Chinese lock gesture docs (ff53735)
  • Update LSPosed English lock gesture docs (9048de3)
  • Keep swipe lock gesture block explicit (484a65e)
  • Migrate legacy All-page locks during swipe (b54eaad)
  • Expose stored lock scopes for aggregate views (0071a1f)
  • Aggregate typed rule locks in All view (5e4988b)
  • Keep aggregate locks scoped to exact categories (36012c2)
  • Avoid cross-type lock overmatching (1b8b44c)
  • Use Android subsystem registries for component discovery (6e6be06)
  • Cache bulk lock state in memory (993fd44)
  • Invalidate candidate cache on package changes (e7578c2)
  • Observe package removals for catalog refresh (53bc56f)
  • Cache app labels during resolver discovery (c412a5b)
  • Report component discovery sources in diagnostics (a3e398e)
  • Batch package metadata for configured candidates (86ef1c7)
  • Avoid hardcoded self package in component protection (76eb675)
  • Batch post-mutation component refresh (6c0ec00)
  • Document registry-based component discovery (2357cd3)
  • Document registry-based component discovery in English (a8376f7)
  • Describe generalized component discovery (47849e7)
  • Describe generalized component discovery in English (001a81e)
  • Explain generalized component discovery (a6089e1)
  • 说明通用组件发现方式 (cbbe340)
  • Skip redundant reconcile job on package removal (369cb1f)
  • Fail open on widget discovery reflection errors (4064804)
  • Track component discovery runtime capability (143e50b)
  • Advertise safe component discovery protocol (9869755)
  • Gate widget registry behind runtime capability (1497ac1)
  • Report component discovery protocol (79c3fe5)
  • Fail open on LauncherApps discovery errors (af954af)
  • Expand component discovery and lock documentation (ad43c06)
  • Expand component discovery and lock documentation in English (8480456)
  • Document discovery fallback and lock semantics for LSPosed (c147541)
  • Document discovery fallback and lock semantics for LSPosed in English (8ead848)
  • Clarify bulk lock behavior in rule help (c4cb7c2)
  • 补充规则页锁定机制说明 (a55dd88)
  • Clarify swipe lock behavior in ordering help (25b4996)
  • 补充排序页锁定机制说明 (cd27d44)
  • Explain component discovery fallback in Root help (5b4808e)
  • 补充组件发现降级说明 (2c23053)
  • Expand component lock help (233b46d)
  • 补充组件页锁定说明 (5f4a95f)
  • Update LSPosed summary with swipe locks and safe discovery (56e5f3b)
  • Update LSPosed English summary with swipe locks and safe discovery (6a5bd1f)
  • Document unreleased discovery and swipe lock changes (c31b181)
  • Keep release notes scoped to published 1.6.11 (dc645a3)
  • Document discovery, fallback, and swipe locking changes (2daf285)

原始发布 / Original release:https://github.com/yagay/ListCleaner/releases/tag/v1.6.11

使用要求 / Requirements:modern libxposed API 102;Android 12 及以上 / Android 12 or newer.

Assets

3

1.6.10

Stable

9/19/2026, 12:32:36 PM

列表清理 / List Cleaner 1.6.10

版本码 / Version code: 35

中文

  • 新增批量操作锁:规则、排序和组件页统一支持整体/部分锁定,“已锁定”可单独筛选;锁定项跳过全选/反选等批量操作,但仍可手动修改,且锁定不参与排序、不改变已选/半选/未选状态。
  • 强化 Root 组件持久保护:保留真实 pm disable,持久保存期望禁用状态,并加入 LSPosed/system_server 发现过滤,防止磁贴、快捷方式和小部件在系统临时恢复组件时重新出现在发现列表。
  • 新增开机/解锁/应用更新自动校正:启动后进行延迟检查和稳定后复查,只对实际已恢复的受保护组件重新执行 Root 禁用,同时记录校正结果到诊断包。
  • 修复多入口 LSPosed/libxposed 模块不支持热重载时仍尝试热重载的问题,改为使用兼容的更新路径,降低模块运行时异常风险。
  • 完善 Release 发布链路:自动补全完整 changelog,并确保 LSPosed 同步在完整发布说明生成后执行。
  • 改进 Telegram 发布流程,包括单条消息发布、可展开 changelog、链接处理、旧发布消息替换以及中英文检查一致性。
  • 本版本包含 v1.6.9 之后的全部改动;正式 Release 继续使用固定签名证书、R8 优化、zipalign、SHA-256 与 APK 身份/版本校验。

建议从旧 Debug 版本升级前先导出规则备份;正式 Release 应继续使用固定 Release 签名安装升级。


English

  • Added bulk-operation locks across Rules, Ordering, and Components. Full/partial locks can be filtered with Locked; protected entries skip Select All/Invert-style operations but remain manually editable, and locks never participate in ordering or alter selected/partial/unselected state.
  • Strengthened persistent Root component protection: real pm disable remains in place, desired disabled state is persisted, and an LSPosed/system_server discovery filter keeps protected tiles, shortcut entries, and widgets out of discovery results even if Android temporarily restores their components.
  • Added automatic reconciliation after boot, unlock, and app updates. A delayed pass plus a settled-startup recheck only re-disables protected components whose real state was restored, and reconciliation results are included in diagnostics.
  • Fixed unsupported hot reload attempts for multi-entry LSPosed/libxposed modules by using a compatible update path, reducing runtime failure risk.
  • Improved the Release pipeline with automatic complete changelog generation and ensured LSPosed synchronization happens after the finalized release notes are available.
  • Improved Telegram publishing with single-message releases, expandable changelogs, corrected links, stale-post replacement, and aligned bilingual validation.
  • This release includes all changes after v1.6.9. Production releases continue to use the pinned signing certificate, R8 optimization, zipalign, SHA-256, and APK identity/version verification.

Export a rule backup before replacing older Debug builds. Production Release upgrades should continue using the fixed Release signing certificate.

版本码:35

签名证书 SHA-256:674ebcf768b46b0277ca190149df4496ea9e41a3a0d3693239f9a7f4ad1039db

源码提交:a764a8c595581eba25949efd1c3461aee893f1a0

完整变更 / Full changelog

范围 / Range: v1.6.9...v1.6.10

  • Fix Telegram release tag resolution (97a41ca)
  • Republish Telegram v1.6.9 (9b5fe55)
  • Add shared bulk action lock store (5e6680d)
  • Add page-scoped bulk selection locks (52e45c6)
  • Add locked filter label mapping (b428f50)
  • Show bulk lock controls in app rows (7e91cde)
  • Apply rule-page bulk selection locks (9c2d973)
  • Apply ordering-page bulk selection locks (7173f88)
  • Apply component-page bulk selection locks (a305988)
  • Add bulk lock English strings (0be3750)
  • Add bulk lock Chinese strings (3124b12)
  • Keep configured locked rules visible (cab6479)
  • Calculate rule lock state across full page scope (33d1ed2)
  • Calculate component lock state across full page scope (918cd0d)
  • Keep bulk lock state internal to UI (3160a74)
  • Refresh rule lock icons immediately (96e3bf6)
  • Refresh priority lock icons immediately (483fa7e)
  • Refresh component lock icons immediately (76392d7)
  • Make parent lock toggle follow tri-state semantics (357fb0c)
  • Expose inherited lock state to UI (9366241)
  • Show inherited app locks on child rows (c8b75f9)
  • Apply inherited locks in rule rows (fd83c7d)
  • Use shared parent lock toggle in ordering (052b66a)
  • Apply inherited locks in component rows (6944b35)
  • Add component discovery filtering alongside root disable (3a7e95f)
  • Register component discovery filter module (6dfd1aa)
  • Resync component policy after Xposed reconnect (7e24147)
  • Include component protection state in diagnostics (619a4ae)
  • Use AppWidget profile argument for discovery filtering (0fddca7)
  • Add root component boot reconciler (008d2d1)
  • Schedule component reconciliation after boot and updates (6a8033f)
  • Run component reconciliation in a scheduled job (e55810a)
  • Add reusable component state command line (c05e341)
  • Parse persisted component identities centrally (6f43826)
  • Register boot component reconciliation (81745b0)
  • Include boot reconciliation diagnostics (57dfb11)
  • Test reusable component state commands (8adeb7d)
  • Add settled boot reconciliation pass (d94f074)
  • Make reconcile job tracking thread-safe (2373f60)
  • Document locks and persistent component protection (0c7cb8f)
  • Document locks and persistent component protection in English (26a64ae)
  • Update LSPosed Chinese feature documentation (92e7713)
  • Update LSPosed English feature documentation (f29288e)
  • Update LSPosed Chinese summary (0ba008f)
  • Update LSPosed English summary (481930b)
  • Explain bulk locks in rule help (21df610)
  • Explain bulk locks in rule help (dfafe16)
  • Explain bulk locks in ordering help (17fb6ef)
  • Explain bulk locks in ordering help (20219bb)
  • Explain persistent Root component protection (744ec3c)
  • 说明持久 Root 组件保护 (5fb427b)
  • Document bulk locks and persistent component protection in release notes (3098fc2)
  • Bump version to 1.6.10 (56ec9cb)
  • Prepare List Cleaner 1.6.10 release (a764a8c)

原始发布 / Original release:https://github.com/yagay/ListCleaner/releases/tag/v1.6.10

使用要求 / Requirements:modern libxposed API 102;Android 12 及以上 / Android 12 or newer.

Assets

3

1.6.9

Stable

9/13/2026, 6:54:32 PM

列表清理 / List Cleaner 1.6.9

版本码 / Version code: 34

中文

  • 新增批量操作锁:规则、排序和组件页统一支持整体/部分锁定,“已锁定”可单独筛选;锁定项跳过全选/反选等批量操作,但仍可手动修改,且锁定不参与排序、不改变已选/半选/未选状态。
  • 强化 Root 组件持久保护:保留真实 pm disable,持久保存期望禁用状态,并加入 LSPosed/system_server 发现过滤,防止磁贴、快捷方式和小部件在系统临时恢复组件时重新出现在发现列表。
  • 新增开机/解锁/应用更新自动校正:启动后进行延迟检查和稳定后复查,只对实际已恢复的受保护组件重新执行 Root 禁用,同时记录校正结果到诊断包。
  • 修复多入口 LSPosed/libxposed 模块不支持热重载时仍尝试热重载的问题,改为使用兼容的更新路径,降低模块运行时异常风险。
  • 完善 Release 发布链路:自动补全完整 changelog,并确保 LSPosed 同步在完整发布说明生成后执行。
  • 改进 Telegram 发布流程,包括单条消息发布、可展开 changelog、链接处理、旧发布消息替换以及中英文检查一致性。
  • 本版本包含 v1.6.8 之后的全部改动;正式 Release 继续使用固定签名证书、R8 优化、zipalign、SHA-256 与 APK 身份/版本校验。

建议从旧 Debug 版本升级前先导出规则备份;正式 Release 应继续使用固定 Release 签名安装升级。


English

  • Added bulk-operation locks across Rules, Ordering, and Components. Full/partial locks can be filtered with Locked; protected entries skip Select All/Invert-style operations but remain manually editable, and locks never participate in ordering or alter selected/partial/unselected state.
  • Strengthened persistent Root component protection: real pm disable remains in place, desired disabled state is persisted, and an LSPosed/system_server discovery filter keeps protected tiles, shortcut entries, and widgets out of discovery results even if Android temporarily restores their components.
  • Added automatic reconciliation after boot, unlock, and app updates. A delayed pass plus a settled-startup recheck only re-disables protected components whose real state was restored, and reconciliation results are included in diagnostics.
  • Fixed unsupported hot reload attempts for multi-entry LSPosed/libxposed modules by using a compatible update path, reducing runtime failure risk.
  • Improved the Release pipeline with automatic complete changelog generation and ensured LSPosed synchronization happens after the finalized release notes are available.
  • Improved Telegram publishing with single-message releases, expandable changelogs, corrected links, stale-post replacement, and aligned bilingual validation.
  • This release includes all changes after v1.6.8. Production releases continue to use the pinned signing certificate, R8 optimization, zipalign, SHA-256, and APK identity/version verification.

Export a rule backup before replacing older Debug builds. Production Release upgrades should continue using the fixed Release signing certificate.

版本码:34

签名证书 SHA-256:674ebcf768b46b0277ca190149df4496ea9e41a3a0d3693239f9a7f4ad1039db

源码提交:3098fc2402ac5e00bbd28615f09bf4914e541b06

完整变更 / Full changelog

范围 / Range: v1.6.8...v1.6.9

  • Add automatic release changelog generator (bd11160)
  • Automatically complete release changelogs (ea8ba8c)
  • Make automatic changelog release lookup version-safe (2ad9485)
  • Refresh complete 1.6.8 release notes (b632cf8)
  • Replace stale Telegram release posts (22a7dec)
  • Publish Telegram after complete changelog (e2ff683)
  • Defer Telegram until changelog completion (512f6e2)
  • Republish Telegram v1.6.8 (5575024)
  • Sync LSPosed after complete changelog (41c8ef0)
  • Use expandable Telegram release captions (4a5b420)
  • Republish Telegram v1.6.8 with expandable changelog (116672f)
  • Fix Telegram release links and expandable changelog (d694f7f)
  • Republish Telegram v1.6.8 with fixed links (9e5b4a2)
  • Publish Telegram release as one expandable message (be9da14)
  • Republish Telegram v1.6.8 as single message (c796b22)
  • fix: persist desired disabled component state (93dcaba)
  • fix: keep disabled component intent persistent (2079392)
  • fix: block apps from re-enabling protected components (99e4344)
  • fix: register persistent component state guard (7de8e90)
  • ci: align Telegram bilingual check with current publisher (c2acfac)
  • fix: import component state validator (2d198a8)
  • fix: disable unsupported hot reload for multi-entry module (e87a93a)
  • Bump ListCleaner to 1.6.9 (54245ce)
  • Prepare ListCleaner 1.6.9 release (1b61d3a)
  • Fix Telegram release tag resolution (97a41ca)
  • Republish Telegram v1.6.9 (9b5fe55)
  • Add shared bulk action lock store (5e6680d)
  • Add page-scoped bulk selection locks (52e45c6)
  • Add locked filter label mapping (b428f50)
  • Show bulk lock controls in app rows (7e91cde)
  • Apply rule-page bulk selection locks (9c2d973)
  • Apply ordering-page bulk selection locks (7173f88)
  • Apply component-page bulk selection locks (a305988)
  • Add bulk lock English strings (0be3750)
  • Add bulk lock Chinese strings (3124b12)
  • Keep configured locked rules visible (cab6479)
  • Calculate rule lock state across full page scope (33d1ed2)
  • Calculate component lock state across full page scope (918cd0d)
  • Keep bulk lock state internal to UI (3160a74)
  • Refresh rule lock icons immediately (96e3bf6)
  • Refresh priority lock icons immediately (483fa7e)
  • Refresh component lock icons immediately (76392d7)
  • Make parent lock toggle follow tri-state semantics (357fb0c)
  • Expose inherited lock state to UI (9366241)
  • Show inherited app locks on child rows (c8b75f9)
  • Apply inherited locks in rule rows (fd83c7d)
  • Use shared parent lock toggle in ordering (052b66a)
  • Apply inherited locks in component rows (6944b35)
  • Add component discovery filtering alongside root disable (3a7e95f)
  • Register component discovery filter module (6dfd1aa)
  • Resync component policy after Xposed reconnect (7e24147)
  • Include component protection state in diagnostics (619a4ae)
  • Use AppWidget profile argument for discovery filtering (0fddca7)
  • Add root component boot reconciler (008d2d1)
  • Schedule component reconciliation after boot and updates (6a8033f)
  • Run component reconciliation in a scheduled job (e55810a)
  • Add reusable component state command line (c05e341)
  • Parse persisted component identities centrally (6f43826)
  • Register boot component reconciliation (81745b0)
  • Include boot reconciliation diagnostics (57dfb11)
  • Test reusable component state commands (8adeb7d)
  • Add settled boot reconciliation pass (d94f074)
  • Make reconcile job tracking thread-safe (2373f60)
  • Document locks and persistent component protection (0c7cb8f)
  • Document locks and persistent component protection in English (26a64ae)
  • Update LSPosed Chinese feature documentation (92e7713)
  • Update LSPosed English feature documentation (f29288e)
  • Update LSPosed Chinese summary (0ba008f)
  • Update LSPosed English summary (481930b)
  • Explain bulk locks in rule help (21df610)
  • Explain bulk locks in rule help (dfafe16)
  • Explain bulk locks in ordering help (17fb6ef)
  • Explain bulk locks in ordering help (20219bb)
  • Explain persistent Root component protection (744ec3c)
  • 说明持久 Root 组件保护 (5fb427b)
  • Document bulk locks and persistent component protection in release notes (3098fc2)

原始发布 / Original release:https://github.com/yagay/ListCleaner/releases/tag/v1.6.9

使用要求 / Requirements:modern libxposed API 102;Android 12 及以上 / Android 12 or newer.

Assets

3

1.6.8

Stable

9/8/2026, 9:37:37 PM

列表清理 / List Cleaner 1.6.8

版本码 / Version code: 33

中文

  • 本版本汇总自上一个正式版本 v1.6.7 之后的全部实际改动,而不只包含最后一轮性能优化。
  • 持续完善“打开方式”分类、继承和排序逻辑,包括通用 OPEN 与分类型配置、实际文件效果预览、selector / MIME / 文件后缀识别,以及相关回归覆盖。
  • 加强应用隐藏与来源应用兼容,继续修复 ES 等文件管理器场景,统一全选 / 半选 / 未选的筛选、排序和包级隐藏行为。
  • 改进 Root 组件管理,包括磁贴、快捷方式、小部件的状态读取、历史筛选、批量操作和修改后局部刷新,并保留串行 Root 操作和结果确认。
  • 重构并加强 LSPosed / libxposed 102 运行时状态管理,引入 ServiceSession、ModuleRuntimeController、RuntimeCapabilities、PackageIdentity 等结构,改善重连、热更新、目标版本校验、ACK 和能力判断。
  • 继续强化 system_server Hook 安全性与兼容性,保留 caller UID、package visibility、Resolver/Chooser、空结果恢复和 fail-open 等保护,同时增加实际 Hook 命中统计。
  • 改进远程配置与备份:配置写入和 revision 更一致,旧 DefaultOpenConfig / TileConfig 逐步退出新配置路径,备份继续保持旧版本导入兼容。
  • 完成诊断体系整理,减少敏感文件名/URI 暴露,补充运行时、Hook、Root 和能力信息,并缩减重复或低价值日志。
  • 完成本地化结构整理,拆分中英文资源,加入 README.en、发布/本地化文档,并在 CI 中加入源码本地化、翻译资源和双语一致性检查。
  • 完成一轮完整性能优化:缓存 system_server 反射访问器、减少 RemotePreferences 兜底轮询、加入 session + revision 同步 fast-path、复用候选和图标缓存、Scope 列表懒加载图标、Root 局部刷新,以及列表分组/搜索缓存与 120 ms debounce。
  • 改进 Debug / Release / LSPosed / Telegram 发布流程和校验,正式 Release 继续使用固定签名证书、R8 优化、签名校验、zipalign、SHA-256 与发布产物检查。
  • 本次 Release 后附“完整变更 / Full changelog”,范围固定为 v1.6.7 → v1.6.8,列出该区间内的全部非 merge commit,避免遗漏中间修改。

建议从旧 Debug 版本升级前先导出规则备份;正式 Release 应继续使用固定签名证书安装升级。


English

  • This release now summarizes the full set of real changes since the previous stable release v1.6.7, not only the final performance pass.
  • Continued improving Open-with classification, inheritance, ordering, real-file effect preview, selector/MIME/file-extension detection, and regression coverage for generic and type-specific OPEN behavior.
  • Strengthened app-hiding and source-app compatibility, including file-manager cases such as ES, with more consistent full/partial/unselected filtering, ordering, and package-level hiding behavior.
  • Improved Root component management for tiles, shortcuts, and widgets, including state reads, history filtering, batch operations, and local refresh after mutations while preserving sequential Root execution and state verification.
  • Refactored and hardened libxposed 102 runtime management with ServiceSession, ModuleRuntimeController, RuntimeCapabilities, PackageIdentity, stronger reconnect handling, hot reload, target-version checks, ACK handling, and capability detection.
  • Continued hardening system_server hooks while preserving caller-UID checks, package-visibility protections, Resolver/Chooser handling, empty-result recovery, and fail-open safety; actual hook-hit counters were also added.
  • Improved remote configuration and backups with more consistent revisions and writes, removal of legacy DefaultOpenConfig/TileConfig from new configuration paths, and continued backward-compatible backup imports.
  • Reworked diagnostics to reduce exposure of file names and URIs, add runtime/hook/root/capability information, and remove redundant or low-value logging.
  • Reorganized localization into split English/Chinese resources, added English README and release/localization documentation, and added CI checks for source localization, translation resources, and bilingual parity.
  • Completed a full performance pass: cached system_server reflection accessors, reduced RemotePreferences fallback polling, added a session + revision sync fast path, reused candidate/icon caches, lazy-loaded Scope icons, locally refreshed Root mutations, and cached list grouping/search work with a 120 ms debounce.
  • Improved Debug, Release, LSPosed, and Telegram publication workflows and validation. Production releases continue to use the pinned signing certificate, R8 optimization, signature verification, zipalign, SHA-256, and artifact checks.
  • The Release now appends a complete changelog for v1.6.7 → v1.6.8, listing every non-merge commit in that range so intermediate changes are not omitted.

Export a rule backup before replacing older Debug builds. Production Release upgrades should continue using the fixed release signing certificate.

版本码:33

签名证书 SHA-256:674ebcf768b46b0277ca190149df4496ea9e41a3a0d3693239f9a7f4ad1039db

源码提交:e87a93ad5425c5d042f08fe507db13c9280646fc

完整变更 / Full changelog

范围 / Range: v1.6.7...v1.6.8

  • Restore manual release trigger with automatic downstream sync (b3b1771)
  • Remove unreliable root component modification history (0d6267c)
  • Remove component modification history UI (46a17cf)
  • feat: add locale-aware English UI text layer (21dca15)
  • feat: route toolbar text through locale layer (a9696db)
  • feat: localize activity text and messages (8d0624b)
  • feat: expand English UI vocabulary (f80c973)
  • feat: localize component title dialog (3b1df13)
  • feat: localize open type filter labels (b67cf82)
  • feat: localize scope diagnostics screen (9513c5d)
  • feat: localize app and component rows (cc26f8b)
  • feat: localize display and filter states (aa3a5e6)
  • feat: localize open type names and descriptions (21cf6d8)
  • Expand English UI translations for remaining labels and dynamic messages (5578d70)
  • Route resolver scope screen text through localized UI wrapper (ca4c245)
  • fix(ui): localize accessibility labels in app component rows (7bec964)
  • fix(ui): localize root component accessibility labels (0fff9c4)
  • Complete English localization for resolver scope UI (78ec634)
  • Localize dynamic runtime panel messages (e557d22)
  • Fix scope screen build import (a77dbff)
  • Localize app scope picker accessibility label (c5a7aeb)
  • Add runtime locale helper for dynamic UI messages (410fa40)
  • Localize dynamic Root component runtime messages (abfcc10)
  • Localize Root component catalog status text (a217693)
  • Localize dynamic module runtime status messages (912375d)
  • Localize dynamic module runtime status at source (476469e)
  • Add resource-backed app localization layer (12ffec8)
  • Add locale override resource entrypoint (526a811)
  • Route runtime and Root messages through app localization (3d282da)
  • Resolve localization resources lazily across app startup (7747d0d)
  • Route all Compose UI text through resource localization (01321ad)
  • Initialize localization resources at process startup (7d2f48f)
  • Register localization startup provider (485b8cb)
  • Relocalize initial app status after resource init (94f2bc0)
  • Document scalable localization workflow (3b4cfb3)
  • Add localization resource template (7837ddb)
  • Declare supported app locales (2a1cfb4)
  • Expose supported app locales to Android (0ecdd5e)
  • Add resource catalog for domain and navigation labels (5f02bdd)
  • Add Chinese domain and navigation resources (5d99385)
  • Map domain enums to Android string resources (2c8b9b1)
  • Remove localized labels from IntentKind domain model (4fbfa13)
  • Remove localized labels from display mode model (59308df)
  • Remove localized labels from visibility scope model (4d6db5e)
  • Remove localized metadata from open preset domain model (1311513)
  • Remove localized validation text from open type domain model (ac4b8d1)
  • Add complete Root component localization resources (8dd8d35)
  • Add Chinese Root component localization resources (ec6a45e)
  • Make Root command failures language-neutral (f265f04)
  • Localize Root catalog directly from Android resources (c9a103e)
  • Use Android resources for all Root controller messages (728977b)
  • Add main UI localization resources (c98abae)
  • Add Chinese main UI localization resources (fb2d9b3)
  • Move main controls to standard string resources (370688e)
  • Complete dashboard diagnostic string resources (188ee97)
  • Complete Chinese dashboard diagnostic resources (cf92b88)
  • Move rules and dashboard UI to Android string resources (773c22b)
  • Add open type UI resources (505d361)
  • Add Chinese open type UI resources (a241c91)
  • Localize open preset filter tabs with resources (98858c8)
  • Add custom open editor resources (ec692ba)
  • Add Chinese custom open editor resources (6cb43b5)
  • Move custom open editor to standard localized resources (4c1d993)
  • Add complete ordering UI resources (4b27ae2)
  • Add Chinese ordering UI resources (44b77fd)
  • Move ordering UI to standard localized resources (e74aaaf)
  • Add component title dialog resources (afe4ede)
  • Add Chinese component title dialog resources (a282e26)
  • Localize component title dialog with standard resources (8bc70e8)
  • Add app and component row resources (9cc12cc)
  • Add Chinese app and component row resources (64c3b42)
  • Move app and component rows to localized resources (0bc97c6)
  • Add app visibility picker resources (fcfb8ef)
  • Add Chinese app visibility picker resources (a23c1b1)
  • Move app visibility picker to localized resources (d67e373)
  • Add resolver scope UI resources (e3bd849)
  • Add Chinese resolver scope UI resources (f7c7c7d)
  • Move resolver scope screen to localized resources (9a2bb9d)
  • Add runtime panel localization resources (3b416f0)
  • Add Chinese runtime panel localization resources (29d2688)
  • Move runtime panel to localized resources (69500ad)
  • Complete Root screen localization resources (88cbbfc)
  • Complete Chinese Root screen localization resources (5647762)
  • Move Root component screen to localized resources (8cb02c3)
  • Add backup and export resources (b6ec693)
  • Add Chinese backup and export resources (b08ca5f)
  • Move activity navigation and backup messages to resources (dd4017d)
  • Add runtime state localization resources (f78cfaf)
  • Add Chinese runtime state resources (2e5304c)
  • Use Android resources for runtime synchronization messages (22a7ee4)
  • Make open preview selection source language-neutral (d9b254c)
  • Update open preview tests for structured selection sources (717cac6)
  • Add ViewModel localization resources (6f827ee)
  • Add Chinese ViewModel resources (8ed2a92)
  • Move ViewModel dynamic text to Android resources (c2c6d3c)
  • Remove obsolete titleFor test dependency (3a1652f)
  • Add catalog localization resources (142ec96)
  • Add Chinese catalog resources (cc8036d)
  • Separate catalog diagnostics from localized UI text (d17c0c3)
  • Add repository localization resources (36d60a2)
  • Add Chinese repository resources (82feb8d)
  • Localize repository validation messages (791f264)
  • Add localized resolver detection scenarios (5926380)
  • Add Chinese resolver detection scenarios (6533d98)
  • Localize resolver scope detection evidence (fa06d3e)
  • Remove legacy AppLanguage bridge (beb4662)
  • Remove legacy runtime translation map (6c0ac3a)
  • Remove legacy Compose translation wrapper (0d342ba)
  • Remove obsolete localization startup provider (92d44c5)
  • Remove obsolete localization provider (4ae8c0d)
  • Remove legacy locale override array (038f700)
  • Make backup reader error locale-neutral (c3a7b9e)
  • Add localized backup size error (58587d4)
  • Add Chinese backup size error (2b41867)
  • Use localized backup size error (e2400cd)
  • Add production source localization guard (dc14349)
  • Enforce localization source guard in Debug CI (17370be)
  • Make priority validation errors language-neutral (d83f06b)
  • Make legacy tile validation error language-neutral (6bd6e6e)
  • Document standard Android localization architecture (103a75e)
  • Fix apostrophe escaping in ViewModel resources (88c4b5b)
  • Fix apostrophe escaping in UI resources (725d1a0)
  • Update catalog evidence tests for language-neutral markers (b3fa7c4)
  • Add Simplified Chinese README (2b16007)
  • Make English README the default (66fb165)
  • Add Simplified Chinese release notes (a87d2d9)
  • Make English release notes the default (6207122)
  • Add Simplified Chinese release documentation (dd5eb17)
  • Make English release documentation the default (ae6982e)
  • Add Simplified Chinese LSPosed README (4da7e86)
  • Make English LSPosed README the default (249c85c)
  • Add Simplified Chinese LSPosed summary (4e8dfbd)
  • Make English LSPosed summary the default (7f4cc07)
  • Synchronize bilingual LSPosed metadata (6bd5d7c)
  • Replace legacy localization override template (c20e6f7)
  • Sync localized LSPosed docs on main changes (0ecc850)
  • Add English README alongside Chinese default (e109632)
  • Make Chinese the default README (77f1976)
  • Make release notes bilingual with Chinese first (1889ace)
  • Add English LSPosed documentation (6c5a850)
  • Make Chinese the default LSPosed README (a070efb)
  • Add English LSPosed summary (a27dbfb)
  • Make Chinese the default LSPosed summary (e28d9c9)
  • Keep Chinese first in LSPosed synchronized metadata (654e573)
  • Keep bilingual Telegram release notes with Chinese first (7ae00f7)
  • Guard against hardcoded user-visible text (f5be342)
  • Add translation resource validation (9f94bd3)
  • Validate translation resources in Debug CI (79171fe)
  • Add English localization guide (fd26957)
  • Make localization guide Chinese first (c2384ae)
  • Add community translation guide (0f1c51d)
  • Document Weblate repository setup (b0762f6)
  • Add translation contribution entry (e9e1add)
  • Add translation links to English README (628496f)
  • Remove community translation guide (0bdd7a8)
  • Remove Weblate setup guide (8dffb53)
  • Remove community translation references (b84df30)
  • Remove translation contribution links (31960a1)
  • Fix LSPosed English documentation link (4964a00)
  • Fix LSPosed Chinese documentation link (f3a087c)
  • Keep LSPosed Chinese and English docs structurally paired (fbe2f91)
  • Expand LSPosed English docs to match Chinese (2122c95)
  • Validate LSPosed bilingual documentation parity (6b27ade)
  • Test LSPosed bilingual documentation parity (c5d6e7b)
  • Keep English README aligned with Chinese documentation (f20c407)
  • Define bilingual parity policy (2d3dc9a)
  • Align English bilingual parity policy (3037640)
  • Add paired Chinese and English diagnostic guides (f7a51c0)
  • Add bilingual parity validation (5704a20)
  • Enforce bilingual parity in Debug CI (dbb5980)
  • Add English release documentation counterpart (fd7d1cf)
  • Make Chinese release documentation default (3ab8ccb)
  • Remove redundant legacy Chinese release documentation (24dfd4a)
  • Validate release documentation parity (95fabd4)
  • Remove redundant Chinese README copy (8c5ce3d)
  • Remove redundant Chinese release notes copy (86b116b)
  • Remove redundant LSPosed Chinese README copy (a44c711)
  • Remove redundant LSPosed Chinese summary copy (44f9f3f)
  • Align LSPosed Chinese summary with English (b73f893)
  • Extend bilingual checks to release pipeline (87a7ecf)
  • Add English diagnostic guide resource (a753976)
  • Add Chinese diagnostic guide resource (14963e2)
  • Load diagnostic guides from localized resources (609f465)
  • Validate localized diagnostic resource pairing (41b3fdc)
  • Separate machine evidence from localized explanations (4857070)
  • Add localized diagnostic evidence explanation (7d817aa)
  • Add Chinese diagnostic evidence explanation (ccc8108)
  • Export bilingual diagnostic evidence explanations (0b53c1b)
  • Validate bilingual diagnostic evidence outputs (fb7918a)
  • Scope bilingual policy to user-facing content (50cac26)
  • Align English localization scope (d37b5e3)
  • Limit bilingual checks to user-facing content (d0e31a0)
  • Keep developer diagnostics English-only (efd98d5)
  • Keep developer diagnostics English-only (b68be42)
  • Keep developer evidence report single-language (18371eb)
  • Keep internal Root errors out of user messages (2e713d7)
  • Localize runtime errors shown to users (d57180f)
  • Keep internal exceptions out of app UI (1992031)
  • Hide exception class from recovery UI (cb4737f)
  • Hide exception class from Chinese recovery UI (6665e22)
  • Use localized recovery message without exception details (9a42c5c)
  • Keep Root exception details in developer logs (cab965b)
  • Remove developer exception details from Root UI (93af507)
  • Remove developer exception details from Chinese Root UI (2d2a170)
  • Keep scope detection exceptions out of user warnings (2b6946f)
  • Remove developer exception details from scope UI (8c8d3f0)
  • Remove developer exception details from Chinese scope UI (e630337)
  • Keep backup failures localized in UI (ea2e3c5)
  • Prevent developer exceptions from leaking into UI (f38ff5c)
  • Preserve coroutine cancellation during backup I/O (14019ca)
  • Limit non-cancellable Root work to individual mutations (2693406)
  • Make Xposed hook exception mode explicit (05bdb64)
  • Bypass privileged callers in resolver filtering (4b537f3)
  • Protect privileged package manager queries (caa2bea)
  • Cover privileged resolver caller protection (d4ed7e9)
  • Improve typed open extension fallback (bd3ffe5)
  • Cover encoded document path fallback (2835900)
  • Resolve missing content MIME in resolver queries (7c4847c)
  • Keep scope requests bound to their service (c30bb0d)
  • Ignore stale scope results after reconnect (528b221)
  • Block stale catalog publication after cancellation (730538d)
  • Prevent stale runtime status after service reconnect (3aa1785)
  • Bind hot reload batches to active service (a620a8e)
  • Refactor runtime sessions and module lifecycle (239da16)
  • Fix full-source audit findings (491226c)
  • Optimize ListCleaner performance (225f747)
  • Release List Cleaner 1.6.8 (5b0e4ee)
  • Run release workflow on release-note updates (ca9b956)
  • Trigger 1.6.8 signed release (7b5d830)
  • Add automatic release changelog generator (bd11160)
  • Automatically complete release changelogs (ea8ba8c)
  • Make automatic changelog release lookup version-safe (2ad9485)
  • Refresh complete 1.6.8 release notes (b632cf8)
  • Replace stale Telegram release posts (22a7dec)
  • Publish Telegram after complete changelog (e2ff683)
  • Defer Telegram until changelog completion (512f6e2)
  • Republish Telegram v1.6.8 (5575024)
  • Sync LSPosed after complete changelog (41c8ef0)
  • Use expandable Telegram release captions (4a5b420)
  • Republish Telegram v1.6.8 with expandable changelog (116672f)
  • Fix Telegram release links and expandable changelog (d694f7f)
  • Republish Telegram v1.6.8 with fixed links (9e5b4a2)
  • Publish Telegram release as one expandable message (be9da14)
  • Republish Telegram v1.6.8 as single message (c796b22)
  • fix: persist desired disabled component state (93dcaba)
  • fix: keep disabled component intent persistent (2079392)
  • fix: block apps from re-enabling protected components (99e4344)
  • fix: register persistent component state guard (7de8e90)
  • ci: align Telegram bilingual check with current publisher (c2acfac)
  • fix: import component state validator (2d198a8)
  • fix: disable unsupported hot reload for multi-entry module (e87a93a)

原始发布 / Original release:https://github.com/yagay/ListCleaner/releases/tag/v1.6.8

使用要求 / Requirements:modern libxposed API 102;Android 12 及以上 / Android 12 or newer.

Assets

3

1.6.7

Stable

9/7/2026, 12:29:58 PM

列表清理 / List Cleaner 1.6.7

  • “打开方式”规则与排序全面支持按类型管理:内置 PDF、Office、APK、图片、视频、音频、文本、压缩包、scheme 等分类,并支持最多 8 个自定义 MIME / 文件后缀类型。
  • “全部”与分类型配置加入继承语义:规则页显示“继承自全部 / 当前类型专用”,排序页支持继承通用 OPEN 排序并一键恢复继承。
  • 新增实际文件最终效果预览,可查看识别类型、原始候选、预计最终候选、规则来源、排序位置和空列表保护结果。
  • 加强 ES 等文件管理器的应用隐藏兼容:来源应用可单独配置,命中分类支持“全部 / 分享 / 多文件分享 / 打开方式 / 浏览器 / 文本处理”多选;仅完整勾选的应用整行参与包级隐藏,半勾选不加入。
  • 规则页和组件页默认按“完整勾选 → 半勾选 → 未勾选”排序;应用隐藏列表按“已勾选 → 未勾选”排序,同组继续按应用名称排序。
  • 修复 selector Intent 分类路径,并在 wildcard / opaque MIME 场景下增加受控文件后缀识别;具体未知 MIME 不会被后缀错误覆盖。
  • 状态页新增 system_server 实际 Hook 命中统计;诊断日志不再记录完整文件名或 URI,仅保留安全扩展名和识别类型。
  • Root 组件页新增“只看本应用修改”历史筛选;Root 操作和 OPEN 继承逻辑进一步拆分,降低 MainViewModel 职责。
  • 旧 DefaultOpenConfig / TileConfig 不再进入新远程配置和新备份;备份格式升级并保持旧版本导入兼容。
  • PR Debug 构建会上传 APK artifact;本版本同步补充自定义类型、继承、应用隐藏兼容和半勾选行为的回归测试。

旧 Debug 版签名可能不同;安装前请导出规则备份。

版本码:32

签名证书 SHA-256:674ebcf768b46b0277ca190149df4496ea9e41a3a0d3693239f9a7f4ad1039db

源码提交:50ae0039ee97aee335e863d66c7bf8eca123edce

原始发布 / Original release:https://github.com/yagay/ListCleaner/releases/tag/v1.6.7

使用要求 / Requirements:modern libxposed API 102;Android 12 及以上 / Android 12 or newer.

Assets

3

1.6.6

Stable

9/6/2026, 3:28:08 PM

列表清理 / List Cleaner 1.6.6

  • 加强 Android 12–17 的系统级应用可见性兼容,应用隐藏列表继续通过 system/system_server 生效。
  • 应用隐藏列表显示完整已安装应用,并加入应用图标,便于选择来源应用。
  • 规则页和排序页新增“自定义显示名称”,可按 Intent 分类修改分享、打开方式、浏览器、文本处理等候选项在系统菜单中的显示文字;不修改实际 Intent、包名、组件名或跳转目标。
  • 自定义显示名称与清理规则、优先排序相互独立;留空可恢复原名称,“全部显示”模式下暂停应用自定义名称。
  • 规则、排序和组件页补充全选/反选操作;组件页移除多余的手动刷新按钮。
  • 保留既有规则、排序、应用隐藏列表和备份兼容行为,并补充相关校验与回归测试。

旧 Debug 版签名可能不同;安装前请导出规则备份。

版本码:31

签名证书 SHA-256:674ebcf768b46b0277ca190149df4496ea9e41a3a0d3693239f9a7f4ad1039db

源码提交:8b457eda13626a6c5c4f020956543218199b5b4f

原始发布:https://github.com/yagay/ListCleaner/releases/tag/v1.6.6

需要 modern libxposed API 102;Android 12 及以上。

Assets

3

1.6.5

Stable

9/5/2026, 1:34:34 PM

列表清理 / List Cleaner 1.6.5

  • “全部显示”现在作为全局暂停模式:恢复 Android 原始候选显示,不执行规则过滤。
  • “全部显示”时同时暂停模块的 Resolver 排序与 PROCESS_TEXT 排序,真正恢复系统默认显示顺序。
  • 切换到“全部显示”不会清空规则页任何勾选,也不会删除已有排序配置。
  • 从“全部显示”切回“隐藏选中”或“只显示选中”后,原有规则和排序配置继续生效。

旧 Debug 版签名可能不同;安装前请导出规则备份。

版本码:30

签名证书 SHA-256:674ebcf768b46b0277ca190149df4496ea9e41a3a0d3693239f9a7f4ad1039db

源码提交:d62a3ac904c5346c9bd8d490c6a29371ba57dd47

原始发布:https://github.com/yagay/ListCleaner/releases/tag/v1.6.5

需要 modern libxposed API 102;Android 12 及以上。

Assets

3

1.6.4

Stable

9/4/2026, 5:41:15 AM

列表清理 / List Cleaner 1.6.4

  • 使用固定的 Release 签名,后续正式版本可使用同一签名覆盖升级。
  • 组件操作前检查 Root 权限,未授权或超时时明确提示授权方法。
  • 优先排序统一为勾选列表,支持全部/未优先/已优先筛选与单应用展开。
  • 勾选后按优先位置排列,取消后恢复默认顺序;长按已优先应用可拖动排序。
  • 补充规则页勾选作用说明,精简排序页标题和计数栏并整合操作介绍。
  • 搜索后仅交换匹配的优先应用,保留未显示的排序配置。
  • 宝石蓝列表与扫帚图标,支持圆形和系统主题图标。
  • 启用代码混淆及资源压缩,适用于 Android 12 及以上。

旧 Debug 版签名可能不同;安装前请导出规则备份。

版本码:29

签名证书 SHA-256:674ebcf768b46b0277ca190149df4496ea9e41a3a0d3693239f9a7f4ad1039db

源码提交:d33518b762f6d4d71904b9e11319e71df08fe570

原始发布:https://github.com/yagay/ListCleaner/releases/tag/v1.6.4

需要 modern libxposed API 102;Android 12 及以上。

Assets

3

1.6.3

Stable

9/3/2026, 5:54:37 PM

列表清理 / List Cleaner 1.6.3

  • 使用固定的 Release 签名,后续正式版本可使用同一签名覆盖升级。
  • 组件操作前检查 Root 权限,未授权或超时时明确提示授权方法。
  • 优先排序统一为勾选列表,支持全部/未优先/已优先筛选与单应用展开。
  • 搜索后仅交换匹配的优先应用,保留未显示的排序配置。
  • 宝石蓝列表与扫帚图标,支持圆形和系统主题图标。
  • 启用代码混淆及资源压缩,适用于 Android 12 及以上。

旧 Debug 版签名可能不同;安装前请导出规则备份。

版本码:28

签名证书 SHA-256:674ebcf768b46b0277ca190149df4496ea9e41a3a0d3693239f9a7f4ad1039db

源码提交:e1b7b249417f7985fce2f6967639653ab4d3ca17

原始发布:https://github.com/yagay/ListCleaner/releases/tag/v1.6.3

需要 modern libxposed API 102;Android 12 及以上。

Assets

3