2023-05-15 20:14:58 +00:00
|
|
|
Efforts to reverse engineer the Quanscheng UV-K5 radio
|
|
|
|
(c) 2023 Jacek Lipkowski <sq5bpf@lipkowski.org>
|
|
|
|
|
|
|
|
Licensed cc-by-sa-4.0
|
|
|
|
|
|
|
|
This repository contains my efforts at reverse engineering the programming
|
|
|
|
protocol and memory contents of the Quansheng UV-K5 radio, so that the radio
|
|
|
|
is supported by opensource software (chirp or other).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Files in this repository:
|
|
|
|
|
2023-05-29 18:35:15 +00:00
|
|
|
UVK5_memory_map.ods is the memory map i've reverse engineered using
|
2023-05-15 20:14:58 +00:00
|
|
|
the UK-K5 emulator.
|
|
|
|
|
|
|
|
sample_read.txt - dump of communication while reading the radio
|
|
|
|
|
|
|
|
sample_write.txt - dump of communication while writing to the radio
|
|
|
|
|
|
|
|
deobfuscate.py - a script to deobfuscate reading the above files. usage:
|
|
|
|
./deobfuscate.py < sample_read.txt |less
|
|
|
|
|
2023-05-21 10:55:05 +00:00
|
|
|
uvk5.py - experimental driver for chirp. Sometimes it's more useful than
|
|
|
|
hexediting by hand. It will be later removed it i can get it into the chirp
|
|
|
|
repository.
|
|
|
|
|
|
|
|
|
2023-05-21 13:33:36 +00:00
|
|
|
To use the experimental chirp driver on all OS-es:
|
2023-05-21 10:55:05 +00:00
|
|
|
|
|
|
|
- Install chirp-next, minimum version 20230515
|
|
|
|
|
2023-05-29 18:35:15 +00:00
|
|
|
- Click Help -> Load module from issue and enter 10478, and select the newest
|
|
|
|
uvk5.py file from the list (this should be the default selection).
|
2023-05-21 13:12:41 +00:00
|
|
|
|
|
|
|
- Now you can select the UV-K5 from the list of radios
|
2023-05-21 10:55:05 +00:00
|
|
|
|
|
|
|
- Download a copy of the radio memory with k5prog or chirp and keep it safe.
|
|
|
|
|
2023-05-29 18:35:15 +00:00
|
|
|
You will need to do this every time chirp is started. This will load the
|
|
|
|
driver i have posted in chirp issue 10748 at this url:
|
|
|
|
https://chirp.danplanet.com/issues/10478
|
2023-05-15 20:14:58 +00:00
|
|
|
|
2023-05-21 13:33:36 +00:00
|
|
|
|
|
|
|
Alternate instructions for linux users:
|
|
|
|
|
|
|
|
- Install chirp-next, minimum version 20230515
|
|
|
|
|
|
|
|
- Find the drivers directory (it's easiest to search for an existing driver,
|
|
|
|
for example uv5r.py). Put the uvk5.py file there
|
|
|
|
|
|
|
|
- Launch chirp. No need to enable developer mode, no need to load the
|
|
|
|
driver on each program start etc.
|
|
|
|
|
|
|
|
|
2023-05-15 20:14:58 +00:00
|
|
|
Resources:
|
|
|
|
|
|
|
|
Quansheng UV-K5 EEPROM programmer
|
|
|
|
https://github.com/sq5bpf/k5prog
|
|
|
|
|
|
|
|
k5prog is a tool to read and write the radio eeprom. This can be used to
|
|
|
|
reverse engineer the eeprom contents, backup the radio etc.
|
|
|
|
|
|
|
|
|
|
|
|
Quansheng UV-K5 emulator
|
|
|
|
https://github.com/sq5bpf/k5emulator
|
|
|
|
|
|
|
|
k5emulator is a tool that looks like a real radio to UV-K5 programming
|
|
|
|
software. The eeprom contents are stored in a file. Changes to this file can
|
|
|
|
be studied to see what the original software does.
|
|
|
|
|
2023-05-29 18:35:15 +00:00
|
|
|
|
2023-05-15 20:14:58 +00:00
|
|
|
Quansheng UV-K5 Firmware collection
|
|
|
|
https://github.com/amnemonic/Quansheng_UV-K5_Firmware
|
|
|
|
|
|
|
|
amnemonic's repository of firmware. Also has various bits and pieces reversed.
|
|
|
|
This includes the firmware files xor obfuscation, which is great because in
|
|
|
|
the future maybe they will be reverse engineered to see what the radio is
|
|
|
|
capable of, or to make opensource firmware for this radio.
|
2023-05-29 18:35:15 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Chirp issue #10478
|
|
|
|
https://chirp.danplanet.com/issues/10478
|
|
|
|
|
|
|
|
Discussion regarding chirp support for the UV-K5, and my driver for it.
|
|
|
|
|