Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backing up Unifying firmware #33

Open
RChadwick7 opened this issue Nov 25, 2022 · 5 comments
Open

Backing up Unifying firmware #33

RChadwick7 opened this issue Nov 25, 2022 · 5 comments

Comments

@RChadwick7
Copy link

I've got a number of Logitech unifying dongles. Some are vulnerable, some are not. I want to flash some of the updated dongles with older firmware. Since it seems the older vulnerable firmware is no longer available, is it possible to back up the firmware on a device with older firmware and flash it on a new device?

@zra123
Copy link

zra123 commented Dec 2, 2022

I've got a number of Logitech unifying dongles. Some are vulnerable, some are not. I want to flash some of the updated dongles with older firmware. Since it seems the older vulnerable firmware is no longer available, is it possible to back up the firmware on a device with older firmware and flash it on a new device?

xxIndirect@80ea828

@nibirrayy
Copy link

@zra123 hey I saw that you have a from of this repo and you have updated the scripts to python3. I tried you repo to flash my old unifying receiver and I am getting this error

[2023-03-20 21:07:51.855]  Mark firmware update as completed
Traceback (most recent call last):
  File "/home/nibir/src/nrf-research-firmware/./prog/usb-flasher/logitech-usb-restore.py", line 57, in <module>
    response = dongle.send_command(0x21, 0x09, 0x0200, 0x0000, b"\x20\x00\x00\x01\x02" + b"\x00"*27)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/nibir/src/nrf-research-firmware/prog/usb-flasher/unifying.py", line 186, in send_command
    response = self.dongle.read(ep, 32, timeout=timeout)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/usb/core.py", line 1029, in read
    ret = fn(
          ^^^
  File "/usr/local/lib/python3.11/site-packages/usb/backend/libusb1.py", line 864, in intr_read
    return self.__read(self.lib.libusb_interrupt_transfer,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/usb/backend/libusb1.py", line 954, in __read
    _check(retval)
  File "/usr/local/lib/python3.11/site-packages/usb/backend/libusb1.py", line 602, in _check
    raise USBTimeoutError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBTimeoutError: [Errno 110] Operation timed out

any idea what is going on

@zra123
Copy link

zra123 commented Apr 27, 2023

any idea what is going on

what firmware version do you have? example RQR12.11_B0032
what version of the bootloader? BOT01.02_B0015
if your bootloader has version BOT01.04_B0016, this script will not work, this version needs a signed firmware. use the logitech Firmware Update Tool or fwupdmgr
issue #19

@kaliloua7
Copy link

@zra123 could you explain where I should get formatted-backup.bin and infopage.bin referred to in
"Usage: sudo ./logitech-usb-backup.py [firmware-backup.bin] [infopage.bin]"

@zra123
Copy link

zra123 commented Aug 26, 2023

@kaliloua7 This is reading the firmware from the device, you need to give two names for the files, the firmware will be written to them

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants