Dump, edit, and reflash the SPI NOR on a 5″ Android Auto head unit: board SK-8168-MAIN-V6.3, SoC Allwinner F133-B, OS Melis RTOS (not Android Linux).
The included chipdump.modified.bin replaces the stock boot movie with a
~3 second clip. It was written with NeoProgrammer + CH341A Pro + SOIC
test clip and confirmed working on device.
- Hardware
- Quick start — download & flash
- Flash the modified image
- Repository layout
- Edit firmware (unpack → change → pack)
- Boot video
- How the image is laid out
- Checksums
- Credits
- License & safety
| Item | Detail |
|---|---|
| Board | SK-8168-MAIN-V6.3 |
| SoC | Allwinner F133-B |
| Display | 5″ Android Auto head unit |
| SPI NOR | XM25QH128C, 16 MB (128 Mbit), 3.3 V |
| NOR location | Package closest to the main processor (F133-B) |
| Stock firmware | SK1.4-8168V6.2-LVWMA-2504011620 |
| Programmer | CH341A Pro (Amazon) + SOIC test clip |
| Software | NeoProgrammer (verified); other CH341 tools OK at 3.3 V |
Voltage: 3.3 V only. 5 V will destroy the flash.
- Get v1.0.0 release assets, or clone this repo.
- Keep
chipdump.binas your recovery image. - Flash
chipdump.modified.bin(steps below). - Optional: verify SHA256 from §8 Checksums.
| File | Role |
|---|---|
chipdump.bin |
Original dump — recovery |
chipdump.modified.bin |
Flash this — new boot video |
desiredvideo/ |
Source clip, encode used in-image, stock backup |
- Open the unit and find the SPI NOR next to the F133-B (XM25QH128C).
- Attach the SOIC test clip (confirm pin 1 / notch orientation).
- Connect CH341A Pro at 3.3 V.
- In NeoProgrammer, select chip XM25QH128C.
- Confirm file size is 16 777 216 bytes.
- Erase + write
chipdump.modified.bin(full chip). - Read-back verify if the tool offers it.
- Power the head unit — boot animation should be the shorter clip.
If anything goes wrong, re-flash original chipdump.bin the same way.
chipdump.bin Original 16 MB SPI dump
chipdump.modified.bin Flash-tested image (boot video replaced)
unpacked/ Editable tree from dump_tool extract
boot0.bin eGON.BT0 SPL — do not touch casually
gpt.bin.out/
1_bootA.bin.out/ Melis kernel + sys_config.fex
2_ROOTFS.bin.out/ MinFS: apps, UI, res/stamovie.mp4
3_UDISK.bin.out/ FAT16: Config.ini + Save/
desiredvideo/ Boot-video source materials
melis-tools/ Windows dump_tool (Gamadril/d1s-melis-tools)
scripts/extract.ps1 Unpack chipdump.bin → unpacked/
scripts/pack.ps1 Rebuild chipdump.modified.bin (layout-aware)
CHECKSUMS.txt CRC32 / SHA1 / SHA256
LICENSE · NOTICE · SECURITY.md
- Windows + PowerShell
- Python 3 on
PATH(used bypack.ps1) - Tools under
melis-tools/(already vendored)
git clone https://github.com/Vabian124/chipdump.git
cd chipdump
.\scripts\extract.ps1 # optional if unpacked/ already present
# edit files under .\unpacked\
.\scripts\pack.ps1 # writes .\chipdump.modified.binThen flash as in §3.
| Goal | Path under unpacked/gpt.bin.out/ |
|---|---|
| Boot video | 2_ROOTFS.bin.out/res/stamovie.mp4 |
| Live settings | 3_UDISK.bin.out/Config.ini |
| Factory defaults | 2_ROOTFS.bin.out/apps/Config.ini |
| Wallpapers | 2_ROOTFS.bin.out/apps/WallPaper/*.jpg (800×480) |
| Logos | 2_ROOTFS.bin.out/apps/Logo/ |
| CarPlay icons | 2_ROOTFS.bin.out/apps/CarPlay/icon_*.png |
| Board / LCD / GPIO | 1_bootA.bin.out/sys_config.fex |
Harder: most UI chrome lives inside proprietary .data packs (Main.data,
etc.), not loose PNGs.
Do not expect .mod / .axf / epos.img to become editable C without a
full RISC-V reverse-engineering project.
Upstream dump_tool pack (v0.1.0) hardcodes GPT offsets/sizes from another
F133 layout and always patches uart_debug_rx. This dump has a larger
bootA, a 512 KiB UDISK, and only uart_debug_tx.
scripts/pack.ps1 therefore:
- Uses
dump_toolonly to rebuild MinFS (auart_debug_rxerror is expected). - Splices that ROOTFS into a copy of
chipdump.binat flash offset0x190000. - Leaves
boot0,bootA, andUDISKunchanged.
| Stock | Modified (in this repo) | |
|---|---|---|
| Path | d:\res\stamovie.mp4 |
same |
| Resolution | 800×480 | 800×480 |
| Codec | H.264 | H.264 baseline, yuv420p, 25 fps |
| Duration | ~6.1 s | ~3.0 s |
| Player | Melis mixture module |
same — length = MP4 duration |
ffmpeg -i input.mp4 -an -c:v libx264 -profile:v baseline -level 3.0 \
-pix_fmt yuv420p -s 800x480 -r 25 -movflags +faststart stamovie.mp4Copy over unpacked/gpt.bin.out/2_ROOTFS.bin.out/res/stamovie.mp4, run
.\scripts\pack.ps1, flash.
Optional override: Config.ini → [STARTUP] → startUpVideoPath=
(empty = default stamovie.mp4).
Source materials: desiredvideo/faseout_boot_video.mp4,
desiredvideo/stamovie.encoded.mp4, stock backup
desiredvideo/stamovie.mp4.stock.bak.
Useful if you are adapting this workflow to another dump or automating with an AI.
| Flash offset | Marker | Meaning |
|---|---|---|
0x000004 |
eGON.BT0 |
Allwinner boot0 |
0x00C000 |
GPT | Partition table |
0x010000 |
sunxi-package |
Melis boot package (bootA) |
0x190000 |
MINFS |
ROOTFS |
0xF80000 |
FAT16 | UDISK |
| Name | Offset | Size | Format |
|---|---|---|---|
boot0 |
0x000000 |
48 KiB | eGON.BT0 |
bootA |
0x010000 |
~1.5 MiB | sunxi-package (LZMA Melis + config) |
ROOTFS |
0x190000 |
~13.9 MiB | MinFS |
UDISK |
0xF80000 |
512 KiB | FAT16 |
Melis drive letters: D: ROOTFS, E: UDISK, F: SD (when present).
- Size must be 16 777 216 for XM25QH128C (or match your part).
- Confirm
eGON.BT0,sunxi-package,MINFS. - Prefer
dump_tool extract; if pack fails, parse GPT and splice ROOTFS yourself at the real offsets (as this repo does).
All images are 16 777 216 bytes. Full table: CHECKSUMS.txt.
| File | CRC32 | SHA256 |
|---|---|---|
chipdump.bin |
0x26430A0B |
4d236715e7eb6bdb50aceff6a381d453eff2bfe0f90025389cd956f20e3085e6 |
chipdump.modified.bin |
0xA347F5D5 |
5cc79aeb94e66337bc81c4c8fce54f84d1acba9ef4b5f13dc77a697e86105ff9 |
Get-FileHash .\chipdump.modified.bin -Algorithm SHA256| Who | Contribution |
|---|---|
| Vabian124 | Dump, hardware notes, boot-video mod, on-device verification, this repository |
| Gamadril / d1s-melis-tools | dump_tool, MinFS, Melis boot-package tooling |
| ChrisHughes / allwinner-image-tool | MinFS helpers used during verification |
| Melis / Allwinner community | eGON, MinFS, and F133 car-unit research |
| Cursor agent session | Unpack workflow, layout-aware pack script, documentation |
- Documentation & scripts: MIT
- Firmware binaries: third-party IP may apply — see NOTICE
- Security / bricking risk: SECURITY.md
Before you write the chip
- Keep a verified
chipdump.bin. - Use 3.3 V only.
- Confirm 16 777 216 byte file size.
- Program the NOR closest to the F133-B.
No warranty. Flashing modified firmware can brick the unit; you accept that risk.