OptIcon 是一个 LSPosed 模块,用于将不规范的彩色通知图标替换为符合原生 Android 设计规范的 Material You 图标。
| 策略 | 说明 | 来源 |
|---|---|---|
| 通知图标适配 | 国内主流应用的适配规则库,开箱即用 | Android Notification Icon Project(ANIP,前 ANIA) |
| 资产导入提取 | 从第三方图标包或系统自适应图标分层提取 | 本地 + 完美图标补全计划 (PICP) |
| 智能算法重绘 | 四角采样自过滤算法,无规则也能生成规范图标;支持应用自身图标/本地上传/抓取原图三种来源与滑杆微调 | 内置引擎 |
应用发送通知时自动评估其原生图标是否合规,并在列表中以「符合规范 / 不符合规范」标签呈现——你可以清楚地知道哪些 App 正在破坏你的状态栏一致性。
- 🔴 Heads-up 全覆盖 —— 悬浮横幅、下拉列表、锁屏图标全路径替换
- 🎨 Material You 动态取色 —— 深浅色双主题,跟随系统壁纸配色
- ⚡ 热生效 —— 修改图标无需重启,FileObserver 实时监听
- 🌐 多语言就绪 —— 中文/英文,架构支持任意语言扩展
- 🔒 零网络依赖(可选) —— 规则库按需下载,无订阅、无遥测
- Android 12+(API 31,Material You 起始版本)
- 已 root 并安装 Magisk(Zygisk)/ KernelSU / SukiSU
- LSPosed v2.0+(libxposed API 102)
- 安装 OptIcon APK
- 在 LSPosed Manager 中启用模块,作用域勾选系统界面(SystemUI)
- 重启系统界面(或整机重启)
- 打开 OptIcon,在设置中同步图标规则库
- 在应用列表中选择应用 → 选择策略 → 保存
启用后没有效果? 依次检查:① LSPosed Manager 中模块是否已启用;② 作用域是否勾选了系统界面(SystemUI)——覆盖安装或更新模块后作用域勾选可能掉落,这是失效的第一嫌疑;③ 作用域变更后需重启系统界面(或整机重启)。
修改图标后需要重启吗? 不需要。规则与烘焙产物通过 FileObserver 实时监听,保存即热生效;若个别 ROM 上未生效,重启系统界面即可。
小米 / 一加等定制 ROM 上表现异常? 项目以 AOSP 为主线开发,OOS(一加 15)为第一真机环境;定制 ROM 的私有行为(MIUI / HyperOS / ColorOS 等)可能造成差异,不作逐家适配承诺。
会联网吗?上传数据吗? 仅在你主动同步规则库或下载图标资产时访问对应仓库;无订阅推送、无遥测、无崩溃上报、不上传任何数据。
| 项目 | 支持情况 |
|---|---|
| 最低版本 | Android 12 (API 31) |
| 目标版本 | Android 17 (API 37) |
| 已验证 | API 36 端到端(AOSP 模拟器 + LSPosed v2.2.0);Android 17(OOS 真机)验收中 |
| 定制 ROM | 以 AOSP 为主线开发;OOS(一加 15)为第一真机环境,其余理论可用不保证 |
┌────────────┐ 规则/烘焙产物 ┌──────────────────┐
│ OptIcon │ ──────────────────▶ │ Download/OptIcon │ (共享公共目录)
│ (App 进程) │ MediaStore 写入 │ (图标/开关/合规) │
└────────────┘ └────────┬─────────┘
│ File API 直读
┌────────────┐ hook createIcons ▼
│ SystemUI │ ◀──── 替换 smallIcon ── IconManager 管线
└────────────┘ (含 heads-up/列表/锁屏全路径)
- 方案 A:App 端 MediaStore 写入公共目录,SystemUI hook 端直读(Iconify 量产验证模式)
- 方案 B:SystemUI 进程内自下载规则库(ANIP 架构,零跨进程)
- 合规检测:寄生在已有的 createIcons hook 中,评估原始图标单色性,几乎零开销
本项目的诞生离不开以下项目与开发者(与应用内致谢同序同文):
- BetterAndroid / Android Notification Icon Project(前 AndroidNotifyIconAdapt / ANIA)—— 特别感谢:fankes 慷慨地授权本项目使用其团队《Android 通知图标规范适配计划》的适配规则库,该计划现已由 BetterAndroid 组织延续维护。
- pzcn / Perfect-Icons-Completion-Project —— 感谢《完美图标补全计划》团队对丰富 Android 图标生态的无私贡献。
- Howard20181 / NotificationIconFix —— 感谢 Howard20181,其技术路径为本项目提供了重要的灵感与参考。
- MohamedRejworkshop / Iconify —— 感谢 Iconify,其跨进程图标配送管线(共享目录模式)为本项目的生产配送方案提供了架构参考。
- LSPosed Team —— 一切的基石,谢谢你们。
OptIcon 申请 QUERY_ALL_PACKAGES(查询全部应用)权限。该权限仅用于在应用列表中枚举设备上已安装、可能发送通知的应用,以供用户逐个配置图标策略——通知并不只来自带桌面图标的应用(实测一台设备上 41% 的包没有 launcher 入口,其中包括 Play 服务等高频通知来源)。OptIcon 不收集、不上传任何数据,无遥测、无网络回传。
本项目为兴趣使然的个人作品,按“现状”提供,不含任何明示或默示的担保。
- 功能不保证:作者不保证任何功能在您的设备、ROM 或系统版本上正常运行;定制 ROM(MIUI / ColorOS / HyperOS 等)的私有行为可能造成无法预料的差异。
- 无开发承诺:作者不对后续的开发计划、排期、功能路线或是否继续维护作任何承诺;项目可能随时放缓、暂停或归档。
- 风险自担:使用本应用产生的任何后果(包括但不限于系统界面异常、通知丢失、功耗变化)由使用者自行承担;启用 root / Xposed 模块本身存在风险,请自行评估。
- 无关联声明:本项目与 Google、Android、一加及文中提及的任何厂商/项目无隶属关系;各商标归其各自所有者所有。
- 用途自决:项目用途由使用者自行决定,开发者不对任何滥用行为负责。
本项目由 AI(大语言模型)深度参与开发——包括架构设计、代码实现、测试与文档;人类(@deserthouse)提出需求、进行验收并拥有最终决策权。
本项目采用 AGPL-3.0 协议开源。
- 通知图标规则资源来自 ANIP(前 ANIA):ANIA 时期以 AGPL-3.0 授权,现 ANIP 以 Apache-2.0 授权;均以运行时下载方式使用,不内置分发
- PICP 图标资产按需下载供用户个人使用,不重分发(详见其仓库说明)
如果这个项目对你有帮助,欢迎 ⭐ Star 支持