Downgrade firmware: How to force? (G7X2, 116b -> 110b, says "already updated".) - General Discussion and Assistance - CHDK Forum supplierdeeply

Downgrade firmware: How to force? (G7X2, 116b -> 110b, says "already updated".)

  • 3 Replies
  • 145 Views
Advertisements
Hey there,
OK, I have a G7X Mark II with 116b firmware (1.1.0.0 from 2020-10-08 according to Canon, 116b according to ACID).
I see that CHDK is for this camera available only for 101a and 110b firmware. So I need to downgrade.
There is an official "1.0.1.0" version at Canon's website (this might be 110b, I need to check after downgrade).
How can I force my camera to downgrade? If I put the "1.0.1.0"-version-file on the SD card and select the upgrade function, the camera says already updated. Can I force it to downgrade?
Regards!
« Last Edit: 24 / November / 2022, 13:13:08 by oid_maps »
My cameras:
* Canon PowerShot:
  - G7X Mark II (Firmware 116b)
* Other manufacturers:
  - Pentax K10D (Firmware 1.31)

*

Offline philmoz

  • *****
  • 3441
    • Photos
The firmware dump you uploaded is 1.10B.


If it came from your camera then you can use the 1.10B version of CHDK for the G7X2.

CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)

How do you see it is 1.10B? ACID says 116b, how comes? sha256sums differ.
« Reply #2 on: 24 / November / 2022, 17:04:31 »
The firmware dump you uploaded is 1.10B.
You mean this one?

OK.
How do you see that it is 1.10B? Why does ACID then say it is 116b?
Attached the screenshot of ACID and the sample image.
If it really is 1.10B then this is happy news :-).
I did make a sha256sum check, and I see differences:
Code: [Select]
82b6e282d7c031183703fab98ec881140d12d3ed3aeb4dab3e968d90e022d966  g7x2_101b.BIN
397c68896313a7189c91ad86566e860b87d30b6e939c6cef13ca2c2342e96bef  g7x2_110b.BIN
76961c0c2d8f404423b2aae3653643de6cd4d5d83dc936bdb23ac5aad9597008  g7x2_116b.BIN
where `g7x2_101b.BIN` is the `PRIMARY.BIN` from `g7xm2_101b.7z` and `g7x2_110b.BIN` is the `PRIMARY.BIN` from `g7x2_110b.7z` from this page, and `g7x2_116b.BIN` is the `PRIMARY.BIN` from this dump.
So I see that it differs. How do you see that it is the same?
Regards!
« Last Edit: 24 / November / 2022, 17:46:19 by oid_maps »
My cameras:
* Canon PowerShot:
  - G7X Mark II (Firmware 116b)
* Other manufacturers:
  - Pentax K10D (Firmware 1.31)

*

Offline reyalp

  • ******
  • 13792
Re: How do you see it is 1.10B? ACID says 116b, how comes? sha256sums differ.
« Reply #3 on: 24 / November / 2022, 20:29:08 »
How do you see that it is 1.10B?
If you look in the dump, you will find "Firmware Ver GM1.10B"
Quote
Why does ACID then say it is 116b?
Attached the screenshot of ACID and the sample image.
This is a very good question  :blink:

ACID uses information from the EXIF to determine the firmware version. If your camera is actually putting 116b in the EXIF, that would be something new and worth investigating.

However, the sample image appears to be missing EXIF entirely. If you used a different image with ACID, please post it here (use a file sharing site if it's too big for the forum)

Quote
If it really is 1.10B then this is happy news :-).
The code portions of the ROM dump are at least equivalent:
Code: [Select]
$ tools/make-fw-crc.py -d ../dumps -v g7x2 116b
Loading stubs g7x2 116b D:/chdk/trunk/platform/g7x2/sub/116b/stubs_entry.S
g7x2 116b ../dumps/g7x2/sub/116b/PRIMARY.BIN
start_adr  offset     size    crc32      name
0xe0020000 0x00020000 5997088 0xa2bc6204 ROMCODE
0xe0e79d54 0x00e79d54  921112 0xf81ac2c9 zico_0, zico_1, zico_2
0xe0fd37b8 0x00fd37b8  334260 0x26b85e07 RAM data, RAM code, TCM code
3 blocks 7252444 bytes 21%
WARNING: Version string GM1.16B does not match dump b'GM1.10B'
ERROR: no valid subs processed, exiting

$ tools/make-fw-crc.py -d ../dumps -v g7x2 110b
Loading stubs g7x2 110b D:/chdk/trunk/platform/g7x2/sub/110b/stubs_entry.S
g7x2 110b ../dumps/g7x2/sub/110b/PRIMARY.BIN
start_adr  offset     size    crc32      name
0xe0020000 0x00020000 5997088 0xa2bc6204 ROMCODE
0xe0e79d54 0x00e79d54  921112 0xf81ac2c9 zico_0, zico_1, zico_2
0xe0fd37b8 0x00fd37b8  334260 0x26b85e07 RAM data, RAM code, TCM code
3 blocks 7252444 bytes 21%
e0020000 5b8220 a2bc6204
e0e79d54 e0e18 f81ac2c9
e0fd37b8 519b4 26b85e07
This means that the 110b build should almost certainly work on your cam.

Quote
I did make a sha256sum check, and I see differences:
Code: [Select]
82b6e282d7c031183703fab98ec881140d12d3ed3aeb4dab3e968d90e022d966  g7x2_101b.BIN
397c68896313a7189c91ad86566e860b87d30b6e939c6cef13ca2c2342e96bef  g7x2_110b.BIN
76961c0c2d8f404423b2aae3653643de6cd4d5d83dc936bdb23ac5aad9597008  g7x2_116b.BIN
Firmware dumps of the exact same model and firmware version are expected to differ, because the onboard flash that contains the firmware also includes calibration, settings, serial numbers, crash logs and so on. However, the sections that contain code should be identical, as they appear to be in the make-fw-crc output above.

Don't forget what the H stands for.


 

Related Topics