Efforts to reverse engineer the Quanscheng UV-K5 radio (c) 2023 Jacek Lipkowski 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: UVK5_memory_map.ods is the memory map i've reverse engineered using 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 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. To use the experimental chirp driver on all OS-es: - Install chirp-next, minimum version 20230515 - 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). - Now you can select the UV-K5 from the list of radios - Download a copy of the radio memory with k5prog or chirp and keep it safe. 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 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. 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. 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. Chirp issue #10478 https://chirp.danplanet.com/issues/10478 Discussion regarding chirp support for the UV-K5, and my driver for it.