List Cleaner 1.6.8
列表清理 / 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)