Releases: CrazyCoder/free2-updater-patch
v1.0.0 - VID Check Bypass Patch
Release Notes
Patch for JieLi firmware updater (UpdateFirmware.exe) that bypasses the VID version check which incorrectly rejects compatible firmware.
The Problem
The updater fails to flash firmware even when device and firmware VIDs appear identical in the UI, showing error -30: "The firmware you selected does not match the device."
Root cause: A buffer handling bug in jl_firmware_upgrade_x86.dll. The firmware VID function (JL_getUfwPidVid) fills the buffer with 0xFF garbage bytes instead of proper null termination. When parsed by QString::toFloat():
- Device VID:
"0.12\0..."→ parses to 0.12 (correct) - Firmware VID:
"0.12\xFF\xFF..."→ parses to 0.0 (garbage causes parse failure)
The comparison 0.12 == 0.0 fails, triggering error -30.
This bug is locale-dependent — it works in Chinese (GBK) locale but fails in Western/Cyrillic locales due to how Qt handles the invalid 0xFF bytes.
The Fix
Single-byte patch at file offset 0x2BE2 that changes 7B (jnp) to EB (jmp), bypassing the VID comparison entirely.
| Item | Original | Patched |
|---|---|---|
| Offset | 0x2BE2 |
0x2BE2 |
| Bytes | 7B 07 |
EB 07 |
| Instruction | jnp +7 |
jmp +7 |
Downloads
| File | Description |
|---|---|
UpdateFirmware_patched.exe |
Patched version ready to use |
patch.ps1 / patch.cmd |
Scripts to patch the original yourself |
verify.ps1 |
Script to verify the patch was applied correctly |
Original file hash (SHA256): 76924667c6a75fec3a34f8a432c643e5a8cced3e0bca07866f0d69d1d2431e90
Alternative: Locale Emulator
If you prefer not to patch the executable, you can run the original with Chinese locale using Locale Emulator:
- Install Locale Emulator
- Right-click
UpdateFirmware.exe→ Locale Emulator → Run in Chinese (Simplified)
Compatibility
- Updater App: hanlinyue-win-1.2.3-ia32
- Tested Device: Xteink X4 with E730LJ firmware (VID 0.12)
Usage
Replace UpdateFirmware.exe in your installation directory with the patched version:
C:\Users\<username>\AppData\Local\Programs\hanlinyue\resources\extraResources\exe\
Warning
| Device | VID |
|---|---|
| Free2 | 0.12 |
| Free3 | 0.13 |
Before flashing, verify that the Device VID and Firmware VID displayed in the updater match your device generation. This patch bypasses the VID check, but flashing firmware for the wrong hardware generation may brick your device.