amnemonic / Quansheng_UV-K5_Firmware

Quansheng UV-K5 Firmware
620 stars 124 forks source link

Errors with 2.01.27 #73

Closed DartRM closed 7 months ago

DartRM commented 11 months ago

When trying to compile firmware 2.01.27, most mods give Errors in the logs

*on 2.01.26 k5(8) and some k5 - PMR at high power has 1-2 watts. On the new firmware - 2.01.27 it is fixed

amnemonic commented 11 months ago

Hi, yes this is known "issue" that all offsets to patched functions in 2.01.27 are different than in 2.01.26 and until someone do not rewrite all patches for newer version you are stuck with 2.01.26 if you want mods.

RE3CON commented 10 months ago

is there an easy way with python to make the offsets not hardcoded-constant but variable? search old hex string and replace with new pattern strings. Making it applicable for all fw versions. I mean for example: const offset = ?x???; const oldData = hexString("cf2a"); const newData = hexString("5de0");

1 match

so for bands RX and TX = 5000000 -> 1800000 = ...find (oldData hexString) 40 77 1B replace with (newData hexString) 40 4B 4C 2 matches and 2 matches 60000000 -> 130000000 string 80 A4 BF 07 etc..... band 760000 -> 10799990 find string ..... replace string

facsi found some offsets for v3 in his repo

amnemonic commented 10 months ago

Sure, it is possible. But is there an easy way? Probably it depends on what you will call easy 😉 You can search by offset, by bytes pattern, by function signatures, you can even disassemble firmware on the fly and then patch it. Only you imagination can limit you.

RE3CON commented 10 months ago

cool... with byte pattern search and replace it will work cause they will be always the same in every version... but not the offsets. I wish to have more time for it.