# 图标命名对照表 —— Xiaomi Watch S4 eSIM (o62lte, 固件 3.202.79) 把你的 **144×144 PNG** 按下面的「PNG 文件名」命名,放进同一个目录,我就能一次性生成完整补丁包。 - 共 **39** 个可替换图标 - 文件名规则:目录层级用 `_` 连接,去掉结尾的 `launcher` (`alarm/launcher.bin` → `alarm.png`,`sports/training/launcher.bin` → `sports_training.png`) - PNG 请带透明通道(RGBA);圆形外圈留透明即可,不要自己画背景 | PNG 文件名 | 原厂尺寸 | 槽位格式 | 槽位字节 | 数据偏移 | 注意 | |---|---|---|---|---|---| | `alarm.png` | 144x144 | ARGB8888 | 82956 | `0x0f3a7e00` | | | `barometer.png` | 144x144 | ARGB8888 | 82956 | `0x0e825c00` | | | `breath.png` | 144x144 | ARGB8888 | 82956 | `0x0bd54c00` | | | `calendar.png` | 144x144 | ARGB8888 | 82956 | `0x0bc4b200` | | | `chronograph.png` | 144x144 | ARGB8888 | 82956 | `0x0ba47e00` | | | `compass.png` | 144x144 | I8 | 21772 | `0x0b8a1400` | ⚠ 需 I8 编码(256 色) | | `debug.png` | 144x144 | I8 | 21772 | `0x0b81a200` | ⚠ 需 I8 编码(256 色) | | `esimsms.png` | 144x144 | ARGB8888 | 82956 | `0x0b762200` | | | `find_phone.png` | 144x144 | ARGB8888 | 82956 | `0x0b6f0000` | | | `flashlight.png` | 144x144 | ARGB8888 | 82956 | `0x0b6dba00` | | | `health_today.png` | 144x144 | ARGB8888 | 82956 | `0x0a223a00` | | | `heartrate.png` | 144x144 | ARGB8888 | 82956 | `0x09fea800` | | | `innovation_research.png` | 144x144 | ARGB8888 | 82956 | `0x096efa00` | | | `interconnect.png` | 144x144 | ARGB8888 | 82956 | `0x096d8000` | | | `lua.png` | 144x144 | I8 | 21772 | `0x096b5200` | ⚠ 需 I8 编码(256 色) | | `media.png` | 144x144 | ARGB8888 | 82956 | `0x0968e200` | | | `mijia.png` | 144x144 | ARGB8888 | 82956 | `0x09599200` | | | `nfccard.png` | 144x144 | ARGB8888 | 82956 | `0x093f2c00` | | | `oxygen.png` | 144x144 | ARGB8888 | 82956 | `0x08f08c00` | | | `perpetual_calendar.png` | 144x144 | I8 | 21772 | `0x07b3be00` | ⚠ 需 I8 编码(256 色) | | `phone.png` | 144x144 | ARGB8888 | 82956 | `0x07a4d000` | | | `phone_contacts.png` | 144x144 | ARGB8888 | 82956 | `0x07a82200` | | | `pressure.png` | 144x144 | ARGB8888 | 82956 | `0x07908400` | | | `recorder.png` | 144x144 | ARGB8888 | 82956 | `0x067a4600` | | | `remote_camera.png` | 144x144 | I8 | 21772 | `0x06593a00` | ⚠ 需 I8 编码(256 色) | | `settings.png` | 144x144 | ARGB8888 | 82956 | `0x052e8000` | | | `sleep.png` | 144x144 | ARGB8888 | 82956 | `0x05156400` | | | `sports.png` | 144x144 | ARGB8888 | 82956 | `0x04baee00` | | | `sports_course.png` | 144x144 | ARGB8888 | 82956 | `0x05132400` | | | `sports_record.png` | 144x144 | ARGB8888 | 82956 | `0x04a63000` | | | `sports_training.png` | 144x144 | ARGB8888 | 82956 | `0x0466b000` | | | `timer.png` | 144x144 | ARGB8888 | 82956 | `0x03ad3c00` | | | `todolist.png` | 144x144 | ARGB8888 | 82956 | `0x03aa9000` | | | `voice_aivs.png` | 144x144 | ARGB8888 | 82956 | `0x0341c400` | | | `voice_alexa.png` | 144x144 | I8 | 6005 | `0x032fa000` | ⛔ 格式特殊,暂不支持 | | `walkie_talkie.png` | 144x144 | ARGB8888 | 82956 | `0x02d45600` | | | `weather.png` | 144x144 | ARGB8888 | 82956 | `0x017de200` | | | `womenhealth.png` | 144x144 | ARGB8888 | 82956 | `0x00047a00` | | | `wxpay.png` | 144x144 | I8 | 21772 | `0x0000bc00` | ⚠ 需 I8 编码(256 色) | ## 两点必须注意 **1. 槽位字节必须完全相等。** ROMFS 是绝对偏移顺序排布,替换文件的字节长度必须和原文件一模一样,否则后面所有文件的偏移整体平移、镜像损坏。正因为你的 PNG 是 144×144、与原厂一致,编码后长度天然相等,可以直接原地覆盖。 **2. 标注「需 I8 编码」的那几个,会被自动量化成 256 色。** 它们的槽位只有 21772 字节,装不下 ARGB8888(82956 字节),所以只能用索引色。实测对扁平图标平均误差 0.22/255,肉眼无差别;但如果你的图标有渐变/照片级内容,这几个会有可见色带。 `voice_alexa` 是 6005 字节的特例(`flags=0x0008`),格式未确定,建议先不动。 ## 生成命令 ``` python _tools/iconpack.py make _x/vela_app.bin <你的PNG目录> _out/mypack --patched ``` 产出:`icons.patch`(补丁表)、`icons.rollback`(回滚包)、`payload/`(每个图标的 .bin)、`manifest.json`(含偏移与 SHA256)、`vela_app_patched.bin`(可直接写入的整分区镜像)。