bishopdynamics / superbird-tool

Cross-Platform Spotify Car Thing (superbird) hacking toolkit
129 stars 7 forks source link

Unable to backup device (Windows & Linux) #17

Open Frontesque opened 1 month ago

Frontesque commented 1 month ago

I'm attempting to back up my carthing (OS Version 8.4.4) using --dump_device. I've tried on Windows 11, in a VM, and on actual hardware, aswell as my Linux machine. All 3 give me the same timeout error, so I'm lead to believe that it isn't something that I'm doing. Below are the logs for each system.

Windows 11 x64 ``` D:\Documents\tmp\carthing\superbird-tool>python superbird_tool.py --dump_device backup Spotify Car Thing (superbird) toolkit, v0.1.0, by bishopdynamics https://github.com/bishopdynamics/superbird-tool Found device booted in USB Mode (buttons 1 & 4 held at boot) Entering USB Burn Mode writing images/superbird.bl2.encrypted.bin at 0xfffa0000 writing to: 0xfffa0000 AMLC dataSize=16384, offset=65536, seq=0 [DONE] AMLC dataSize=49152, offset=393216, seq=1 [DONE] AMLC dataSize=16384, offset=229376, seq=2 [DONE] AMLC dataSize=49152, offset=180224, seq=3 [DONE] AMLC dataSize=16384, offset=65536, seq=4 [DONE] AMLC dataSize=1224048, offset=81920, seq=5 [DONE] [BL2 END] Waiting for device... Device is now in USB Burn Mode executing bulkcmd: "amlmmc part 1" result: success dumping entire device to backup Validating size of partition: bootloader size: 0x200000 2MB - OK dumping partition: "bootloader" 0x0+0x1e0200 into file: backup/bootloader.dump chunk_size: 128.0KB, speed: 321KB/s progress: 94% remaining: 0MB / 2MB Validating size of partition: env size: 0x800000 8MB - OK dumping partition: "env" 0x3a000+0xe0000 into file: backup/env.dump chunk_size: 128.0KB, speed: 326KB/s progress: 11% remaining: 7MB / 8MB Error while reading partition env, [Errno None] b'libusb0-dll:err [control_msg] sending control message failed, win error: The semaphore timeout period has expired.\r\n\n' Traceback (most recent call last): File "D:\Documents\tmp\carthing\superbird-tool\superbird_device.py", line 411, in dump_partition rdata = self.read_memory(self.ADDR_TMP, chunk_size) File "D:\Documents\tmp\carthing\superbird-tool\superbird_device.py", line 314, in read_memory read_data = self.device.readSimpleMemory(address + offset, 64).tobytes() File "C:\Users\kenny\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pyamlboot\pyamlboot.py", line 91, in readSimpleMemory ret = self.dev.ctrl_transfer(bmRequestType = 0xc0, File "C:\Users\kenny\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\usb\core.py", line 1082, in ctrl_transfer ret = self._ctx.backend.ctrl_transfer( File "C:\Users\kenny\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\usb\backend\libusb0.py", line 601, in ctrl_transfer return _check(_lib.usb_control_msg( File "C:\Users\kenny\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\usb\backend\libusb0.py", line 447, in _check raise USBError(errmsg, ret) usb.core.USBError: [Errno None] b'libusb0-dll:err [control_msg] sending control message failed, win error: The semaphore timeout period has expired.\r\n\n' ```
Linux x64 (Fedora 40) ``` front@pavilion: ~/Downloads/superbird-tool$ sudo python [superbird_tool.py](http://superbird_tool.py/) --dump_device backup Spotify Car Thing (superbird) toolkit, v0.1.0, by bishopdynamics https://github.com/bishopdynamics/superbird-tool Found device booted in USB Mode (buttons 1 & 4 held at boot) Entering USB Burn Mode writing images/superbird.bl2.encrypted.bin at 0xfffa0000 writing to: 0xfffa0000 AMLC dataSize=16384, offset=65536, seq=0 [DONE] AMLC dataSize=49152, offset=393216, seq=1 [DONE] AMLC dataSize=16384, offset=229376, seq=2 [DONE] AMLC dataSize=49152, offset=180224, seq=3 [DONE] AMLC dataSize=16384, offset=65536, seq=4 [DONE] AMLC dataSize=1224048, offset=81920, seq=5 [DONE] [BL2 END] Waiting for device... Device is now in USB Burn Mode executing bulkcmd: "amlmmc part 1" result: success dumping entire device to backup Validating size of partition: bootloader size: 0x200000 2MB - OK dumping partition: "bootloader" 0x0+0x200 into file: backup/bootloader.dump chunk_size: 128.0KB, speed: 0KB/s progress: 0% remaining: 2MB / 2MB Error while reading partition bootloader, [Errno 110] Operation timed out Traceback (most recent call last): File "/home/front/Downloads/superbird-tool/superbird_device.py", line 411, in dump_partition rdata = self.read_memory(self.ADDR_TMP, chunk_size) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/front/Downloads/superbird-tool/superbird_device.py", line 314, in read_memory read_data = self.device.readSimpleMemory(address + offset, 64).tobytes() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/pyamlboot/pyamlboot.py", line 91, in readSimpleMemory ret = self.dev.ctrl_transfer(bmRequestType = 0xc0, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/usb/core.py", line 1082, in ctrl_transfer ret = self._ctx.backend.ctrl_transfer( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/usb/backend/libusb1.py", line 893, in ctrl_transfer ret = _check(self.lib.libusb_control_transfer( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/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 ```
Frontesque commented 1 month ago

Just tried again on Ubuntu 22.04 with a different cable. Still the same result as on Fedora 40.