Skip to content

Releases: deserthouse/OptIcon

v0.9.4-beta (versionCode 57)

Choose a tag to compare

@deserthouse deserthouse released this 25 Sep 19:11

全新图标 🎨

Changes

  • 全新 Adaptive Icon: 朝霞/晚霞渐变双背景, 昼夜模式自动切换
  • Monochrome 层: Android 13+ 主题图标支持, 剪影跟随壁纸 Material You 配色
  • Legacy PNG: 全密度兜底, 旧启动器兼容
  • README 双图标展示 (中英文)

Upgrade

  • 同签名可直接覆盖安装
  • 覆盖后请检查 LSPosed 作用域勾选

AI 使用声明: 本版本由 AI 深度参与开发(人类提出需求与验收)。AS-IS 提供,使用风险自担。

v0.9.3-beta (versionCode 56)

Choose a tag to compare

@deserthouse deserthouse released this 25 Sep 14:59

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)

Pre-release

Choose a tag to compare

@deserthouse deserthouse released this 24 Sep 20:50

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)

Pre-release

Choose a tag to compare

@deserthouse deserthouse released this 24 Sep 14:27

UX 三大(用户视角筛查落地)

Changes

  • 首启不再误报「Module not activated」:心跳空窗期(≤5min)显示中性检查态
  • 搜索体验:✕ 一键清空 + 搜索时收起首页仪表盘,结果首屏直出
  • 保存 Snackbar 明确语义:「已保存——该应用的新通知立即使用新图标」

Notes

  • 「发送测试通知」action 经论证不可行(hook 排除模块自身包,自发自测无法体现目标应用替换)

AI 使用声明: 本版本由 AI 深度参与开发(人类提出需求与验收)。AS-IS 提供,使用风险自担。

v0.9.1-alpha (versionCode 53)

Pre-release

Choose a tag to compare

@deserthouse deserthouse released this 24 Sep 14:10

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)

Pre-release

Choose a tag to compare

@deserthouse deserthouse released this 23 Sep 21:11

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

Choose a tag to compare

@deserthouse deserthouse released this 23 Sep 19:42

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

v0.8.5-alpha Pre-release
Pre-release

Choose a tag to compare

@deserthouse deserthouse released this 19 Sep 15:46

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

v0.8.4-alpha Pre-release
Pre-release

Choose a tag to compare

@deserthouse deserthouse released this 18 Sep 21:42

Changes / 更新内容

#19 Hook-layer Throwable hardening / Hook 层 Throwable 加固

  • All 28 hook-guard catch sites across NotificationHook / MainHook / HookLibSync / ComplianceDetector upgraded from catch (Exception) to catch (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

v0.8.3-alpha Pre-release
Pre-release

Choose a tag to compare

@deserthouse deserthouse released this 18 Sep 14:58

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