Releases: deserthouse/OptIcon
Release list
v0.9.4-beta (versionCode 57)
全新图标 🎨
Changes
- 全新 Adaptive Icon: 朝霞/晚霞渐变双背景, 昼夜模式自动切换
- Monochrome 层: Android 13+ 主题图标支持, 剪影跟随壁纸 Material You 配色
- Legacy PNG: 全密度兜底, 旧启动器兼容
- README 双图标展示 (中英文)
Upgrade
- 同签名可直接覆盖安装
- 覆盖后请检查 LSPosed 作用域勾选
AI 使用声明: 本版本由 AI 深度参与开发(人类提出需求与验收)。AS-IS 提供,使用风险自担。
v0.9.3-beta (versionCode 56)
OptIcon 进入 beta 阶段 🎉
首个 Latest 版本。代码与 v0.9.3-alpha 完全相同(0.9.3-alpha 已通过全部审查与模拟器验收),本版仅完成阶段转换与版本号规则递进。
v0.9.3 系列变更(自 0.9.2 起)
- 回归修复: 预览卡明暗语义复原 / 行布局崩塌修复 / 合规评估竞态修复
- 触摸几何归位: 卡片波纹满幅(裁剪先行+缩进内移), 尾随交互组件 48dp 达标
- M3E 表达: 波浪进度条 / MotionTokens 动效 / 列表重排动画 / 图例描边 / 明暗切换图标语义
- 打磨: 详情页关闭态引导 / Root 警示中性化 / 错误文案去术语化
升级注意
- 从 alpha 版覆盖安装无需卸载(同签名)
- 覆盖安装后请检查 LSPosed 作用域勾选(已知会掉勾)
AI 使用声明: 本版本由 AI 深度参与开发(人类提出需求与验收)。AS-IS 提供,使用风险自担。
OptIcon v0.9.3-alpha (versionCode 55)
OptIcon v0.9.3-alpha (versionCode 55)
批次 D(R7/R8/R9 回归修复 + 触摸几何归位)与批次 E(M3E 表达升级 + 打磨)同车发版(原计划 0.9.3 / 0.9.4 分发,因两批改动同文件耦合合并)。
批次 D · 回归修复 + 触摸几何归位
- D1 预览卡明暗语义复原:深/浅状态栏模拟改固定语义常量 + 前景按底配对(不再随主题表面色反转)
- D2 强制单色行布局修复:「状态未知」提示移 supporting text 槽,不再与开关抢宽度
- D3 合规评估竞态修复:hook 线程先捕获原始 smallIcon 引用再交后台线程,杜绝判定污染与 #14 存档污染
- D4 触摸几何反转:卡片内容层「裁剪先行、缩进内移」——行波纹与热区满幅覆盖卡片轮廓("波纹小一号"根治)
- D4b 尾随交互组件回落 48dp 默认触摸目标
- D5 触摸区审计原则升级为四问 + 「按压瞬间波纹边界对照」交付门禁
批次 E · M3E 表达升级 + 打磨
- E1 扫描进度条换 LinearWavyProgressIndicator
- E2 MotionTokens 动效 token(150/300/600ms)收敛全部散布时长
- E3 列表 animateItem() 重排动画(过滤/搜索切换滑入)
- E4 预览图例白点加描边(亮色主题可见)
- E5 预览模式切换图标换 Brightness6(语义对齐)
- E6 详情页关闭态补引导说明 + 灰化描述行对比度修复
- E7 Root 警示文案具体化并中性降色;重启反馈去 exit 术语
验证
代码/架构审查 P0/P1 零发现(P2 五项已收口);模拟器冷启 E2E 通过(亮暗双模式 / 死区坐标点击 / 波纹边界按压帧);visual-judge 视觉验收 10/10 pass。
AS IS, no warranty. Root/LSPosed operations at your own risk. Not affiliated with LSPosed or any icon project. AI-assisted development (human-directed and human-accepted).
v0.9.2-alpha (versionCode 54)
UX 三大(用户视角筛查落地)
Changes
- 首启不再误报「Module not activated」:心跳空窗期(≤5min)显示中性检查态
- 搜索体验:✕ 一键清空 + 搜索时收起首页仪表盘,结果首屏直出
- 保存 Snackbar 明确语义:「已保存——该应用的新通知立即使用新图标」
Notes
- 「发送测试通知」action 经论证不可行(hook 排除模块自身包,自发自测无法体现目标应用替换)
AI 使用声明: 本版本由 AI 深度参与开发(人类提出需求与验收)。AS-IS 提供,使用风险自担。
v0.9.1-alpha (versionCode 53)
affordance 收口 + 写失败可见性 + 死代码清理
Changes
- 致谢区 URL 整行可点; 预测性返回行接说明对话框; SelectionRow 三套并存收敛
- 删除永不生效的 hookGetSmallIcon 死代码与孤儿 ThreadLocal
- HookLibSync 新增 App 同步唤醒 (meta.json 事件 → 即时重同步, 消除 12h 空窗)
- 主开关写失败回滚 + Snackbar 提示; deleteIcon 补物理孤儿删除
- 合规评估移出 SystemUI 主线程 + 判定缓存
- readColorMode 区分'未设置'与'不可读', 后者 UI 显示'状态未知'
Verification
- 模拟器: 死 hook 注册日志=0; 合规 flag 后台写出; 替换链/A2 对话框实测
AI 使用声明: 本版本由 AI 深度参与开发(人类提出需求与验收)。AS-IS 提供,使用风险自担。
v0.9.0-alpha (versionCode 52)
M3E 架构收口版 (Architecture consolidation)
变更 / Changes
- hook 统一入口:
resolveReplacementIcon收敛 7 处图标替换点,色彩策略(强制单色/每应用覆盖)由仅 1 条路径生效提升为 7/7 全路径覆盖,附 mono 结果缓存 - 字符串 i18n 清零: 订阅同步状态与 hitLevel 来源行的中英混排消灭;失败类键值不再误显示为命中类别;zh/en 双语走查通过
- 修复 MediaStore 重命名孤儿缺陷: 存量升级场景下数据库行与物理文件解耦,写入被改名 "(N)" 而 hook 读取陈旧文件——改为原地更新 + 孤儿守卫 + 迁移清理范围收窄
- M3E 批次一~四(v0.8.6): 主题 token / 统一组件 / 设置分区合并 / 字体与色彩派生修复
验证 / Verification
- 模拟器 force_mono E2E: 彩色渐变 bitmap 通知 → 通知栏成员行头像饱和度 130 → 8/33(灰化生效)
- ANIP 重同步 781 图标零改名; zh/en 双语逐屏走查
AI 使用声明: 本版本由 AI 深度参与开发(人类提出需求与验收)。AS-IS 提供,使用风险自担。
v0.8.6-alpha — M3 Expressive alignment
M3 Expressive alignment / M3E 拉通版
Theme tokens / 主题基建
- New OptShapes tokens: small(12) / medium(16) / large(24) — 23 hand-written corner radii across 7 files collapsed to the 3-tier set; bottom-sheet top corners normalized
- Font weights normalized: SemiBold/ExtraBold collapsed to Bold; brand wordmark keeps serif+Bold
- Icon family audit: UI chrome all Rounded; MATERIAL_ICONS Filled set kept as content glyphs (user-pickable)
Components / 组件收敛
- New SelectionRow — the single single-choice row idiom, replaces StrategyRadio / AssetSubRadio / RadioSheet's inline rows (4 selection idioms → 2: SelectionRow + FilterChip)
- New OptCard — unified card language absorbs SettingsCard / StrategyCard; ModernAppCard stays list-specific (press-scale)
- App detail: strategy-3 icon source picker rebuilt as one row + bottom sheet (was stacked radios)
Feedback & menus / 反馈与菜单
- Save feedback moved from Toast to M3 SnackbarHost
- Settings sections consolidated 7→4 (merged 1-2-row sections)
Fixes / 修复
- Icon-pack grid label 8sp → labelSmall (readability)
- PreviewCard status-bar backgrounds derived from theme surface tones (was hardcoded)
Verified / 验证
- Light + dark walkthrough of list / settings / detail pages
- Hook injection + color-policy branch firing confirmed via logcat
- Crash buffer clean
Notes / 说明
- Hobby project, provided as-is. Full disclaimer and AI disclosure in the README. / 兴趣项目按现状提供,完整声明见 README。
Full changelog: v0.8.5-alpha...v0.8.6-alpha
v0.8.5-alpha
Changes / 更新内容
App detail page UX / 应用详情页交互升级
- Color policy now lives in the app detail page as a first-class row (same SettingItem idiom as Settings), opening the M3 bottom sheet for Inherit global / Force monochrome / Keep original color
- Strategy-3 icon source picker rebuilt as a single row + bottom sheet (App own icon / Upload image) replacing the stacked radios; shows the picked file name when a custom upload is active
Fixes / 修复
- Restored a brace lost in a text-splice during the previous commit's block rewrite (compile error, never shipped)
- Smart-cast fix on the custom icon path row
Verified / 验证
- Release build installs over 0.8.4 (same signature), module registration survives, app launches crash-free, detail page renders with both new rows (emulator + LSPosed, API 36)
Notes / 说明
- Hobby project, provided as-is — no functional guarantees or development commitments. Full disclaimer and AI disclosure in the README. / 兴趣项目按现状提供,完整声明见 README。
Full changelog: v0.8.4-alpha...v0.8.5-alpha
v0.8.4-alpha
Changes / 更新内容
#19 Hook-layer Throwable hardening / Hook 层 Throwable 加固
- All 28 hook-guard catch sites across NotificationHook / MainHook / HookLibSync / ComplianceDetector upgraded from
catch (Exception)tocatch (Throwable)— OOM and LinkageError from BitmapFactory / reflection can no longer escape into SystemUI - 覆盖 NotificationHook(25) MainHook(2) HookLibSync(1) 全部守卫点,堵住解码 OOM 与反射 LinkageError 穿透
Fixes / 修复
- About card: project home link row (github.com/deserthouse/OptIcon) — always visible, does not conflict with the easter-egg trigger
- Hit-area audit: 6 rows fixed where padding sat outside clickable (visible area larger than touch area) — SettingItem / strategy radios / asset radios / source rows / in-egg links
- SettingsViewModel startup crash: guarded reads of shared-dir color policy files (EACCES when owner mismatch)
Notes / 说明
- Hobby project, provided as-is — no functional guarantees or development commitments. Full disclaimer and AI disclosure in the README. / 兴趣项目按现状提供,完整声明见 README。
Full changelog: v0.8.3-alpha...v0.8.4-alpha
v0.8.3-alpha
Changes / 更新内容
Strategy 3 graduated / 策略三转正
- Compatibility Redraw is now a first-class feature (no longer WIP):
- New default source App own icon — zero-friction: redraw the app's own launcher icon into a compliant glyph with no rules, packs or uploads
- Source picker: App own icon / Upload image / Captured original (the latter appears once the app's original notification icon has been passively captured)
- Slider fine-tuning closed loop verified: scale/offset/purity sliders drive the live preview (debounced), E2E-asserted compliant output (clock glyph: 0 non-white pixels, 50% coverage)
Color strategy matrix verified / 色彩策略矩阵实证
- Full 3×2 policy matrix pixel-verified on emulator: global off/on × per-app inherit/force-mono/keep-color — per-app overrides correctly win over the global switch in both directions
- Per-app override UI (RadioSheet) writes verified: mono / color / inherit(=delete)
Fixes / 修复
- MediaStore sub-directory write bug: DISPLAY_NAME must be a bare file name — per-app color override files failed silently before (now RELATIVE_PATH carries the subdirectory)
Verified / 验证
- Self-filter compliance assertion, upload-path triangle assertion, slider→preview loop, 3×2 color matrix, release-build boot injection + keep-color smoke — all on emulator + LSPosed (API 36)
Notes / 说明
- Hobby project, provided as-is — no functional guarantees or development commitments. Full disclaimer and AI disclosure in the README. / 兴趣项目按现状提供,完整声明见 README。
Full changelog: v0.8.2-alpha...v0.8.3-alpha