How I unbricked my Pixel 7a using tensor-usbdl by JoshuaDoes

How I unbricked my Pixel 7a using tensor-usbdl by JoshuaDoes

kazan

Hello everyone. English is not my native language, the text was written using Google Translate, so I apologize in advance.

I finally managed to get my Pixel 7a out of EDL mode using this tool (tensor-usbdl), so I thought I'd share my experience. Just a disclaimer: my results may not be the same for you. I'm not responsible for any damaged devices.

Bricking history:

In may 2024, I opened the bootloader and tried to flash a firmware on Linux using

flash-all.sh. The firmware failed and rebooted me into the opposite slot.

I tried flashing the firmware again using flash-all.sh in this slot. And again, the error was:

LOG:

extracting product.img to disk...: Zip: unable to allocate 3GB at offset 0: No space left on device

fastboot: error:

failed to extract 'product.img': I/O error).

Apparently, I'd killed the bootloader in both slots.

After that, the phone showed me the fastbootD window. It suggested a reboot. I did it. The phone rebooted twice until the Google logo appeared.

Then it finally shut down, and I was left with a completely bricked device.

In Windows, the phone was detected as a USB Serial Device (COM).

The phone remained in this state until October 2025.

And here's how I resurrected it.


0) At the time of death, the phone had firmware lynx-ap1a.240505.005 with bootloader lynx-14.4-11458464 , so I downloaded his factory image.

I unpacked the platform-tool of the version I was going to flash into the firmware folder. In my case, it's 34.0.5 (=Android 14).

You can download the tensor-usbdl application from the author's GitHub using the link at the end of the post.

1) D:\devices_win\pixel\brick\tensor-usbdl

e9a180d7c689e6eb6b5e92d702ad907852bc796d.2>tensor-usbdl -i sources\gs201

The device search begins.

2) Connect the phone while holding down three buttons.

3) Release the buttons.

4) Wait a few seconds for the process to begin.

5) The process will finish on BL3B. Do not disconnect the phone from the computer.

6) Wait 30 min; the phone will boot with errors in Fastboot [NOS production=error, device state=error].

7) Remove it from the computer and charge it for 3 hours [charging current ~0.7A]. (Photo_1)




8) Turn off the phone using the phone buttons: press the volume up once and then press the power button once.

9) start again D:\devices_win\pixel\brick\tensor-usbdl-e9a180d7c689e6eb6b5e92d702ad907852bc796d.2>tensor-usbdl -i sources\gs201

10) Connect to the computer as in step #2

11) Now you're in a semi-functional fastboot mode, but still in RAM (photo 2). [NOS production=yes, device state=unlocked]



12) Flash the bootloader from the firmware that caused the phone to die(in my case it is lynx-14.4-11458464.img).

  D:\devices_win\pixel\brick\lynx-ap1a.240505.005-factory-60dc7de9\lynx-ap1a.240505.005>fastboot flash bootloader bootloader-lynx-lynx-14.4-11458464.img

LOG:

Warning: skip copying bootloader_b image avb footer (bootloader_b partition size: 0, bootloader_b image size: 14663432).

Sending 'bootloader_b' (14319 KB)         OKAY [ 0.428s]

Writing 'bootloader_b'               (bootloader) Flashing pack version lynx-14.4-11458464

(bootloader) flashing platform gs201

(bootloader) Validating partition ufs

(bootloader) Validating partition ufs

(bootloader) Validating partition partition:0

(bootloader) Validating partition partition:1

(bootloader) Validating partition partition:2

(bootloader) Validating partition partition:3

(bootloader) Validating partition bl1_b

(bootloader) Validating partition pbl_b

(bootloader) Validating partition bl2_b

(bootloader) Validating partition abl_b

(bootloader) Validating partition bl31_b

(bootloader) Validating partition tzsw_b

(bootloader) Validating partition gsa_b

(bootloader) Validating partition ldfw_b

(bootloader) Flashing partition ufs

(bootloader) Flashing partition ufs

(bootloader) Flashing partition partition:0

(bootloader) Flashing partition partition:1

(bootloader) Flashing partition partition:2

(bootloader) Flashing partition partition:3

(bootloader) Flashing partition bl1_b

(bootloader) Flashing partition pbl_b

(bootloader) Flashing partition bl2_b

(bootloader) Flashing partition abl_b

(bootloader) Flashing partition bl31_b

(bootloader) Flashing partition tzsw_b

(bootloader) Flashing partition gsa_b

(bootloader) Flashing partition ldfw_b

(bootloader) Loading sideload ufsfwupdate

OKAY [ 0.433s]

Finished. Total time: 0.877s


13) reboot into fastboot, but now in UFS. (photo_3)

  D:\devices_win\pixel\brick\lynx-ap1a.240505.005-factory-60dc7de9\lynx-ap1a.240505.005>fastboot.exe reboot bootloader

  LOG:

Rebooting into bootloader             OKAY [ 0.000s]

Finished. Total time: 0.000s




14) Flash the radio module using the same firmware (I think this is an optional step).

  D:\devices_win\pixel\brick\lynx-ap1a.240505.005-factory-60dc7de9\lynx-ap1a.240505.005>fastboot.exe flash radio radio-lynx-g5300q-231218-240404-b-11673025.img

  LOG:

Warning: skip copying radio_b image avb footer (radio_b partition size: 0, radio_b image size: 81789068).

Sending 'radio_b' (79872 KB)            OKAY [ 2.363s]

Writing 'radio_b'                 (bootloader) Flashing pack version g5300q-231218-240404-M-11673025

(bootloader) Flashing partition modem_b

OKAY [ 0.143s]

Finished. Total time: 2.506s


15) Flash the firmware completely. I did it with the -w switch, which will delete all data!

  D:\devices_win\pixel\brick\lynx-ap1a.240505.005-factory-60dc7de9\lynx-ap1a.240505.005>fastboot.exe -w update image-lynx-ap1a.240505.005.zip

  LOG:

  --------------------------------------------

Bootloader Version...: lynx-14.4-11458464

Baseband Version.....: g5300q-231218-240404-B-11673025

Serial Number........: 3C**********

--------------------------------------------

extracting android-info.txt (0 MB) to RAM...

Checking 'version-baseband'            OKAY [ 0.000s]

Checking 'product'                 OKAY [ 0.000s]

Checking 'version-bootloader'           OKAY [ 0.000s]

Setting current slot to 'b'            OKAY [ 0.096s]

extracting fastboot-info.txt (0 MB) to RAM...

extracting super_empty.img (0 MB) to RAM...

extracting super_empty.img (0 MB) to disk... took 0.000s

extracting system.img (902 MB) to disk... took 2.498s

[liblp] Partition system_b will resize from 0 bytes to 946475008 bytes

extracting system_dlkm.img (0 MB) to disk... took 0.000s

[liblp] Partition system_dlkm_b will resize from 0 bytes to 348160 bytes

extracting system_ext.img (264 MB) to disk... took 0.752s

[liblp] Partition system_ext_b will resize from 0 bytes to 277016576 bytes

extracting product.img (3118 MB) to disk... took 8.519s

[liblp] Partition product_b will resize from 0 bytes to 3270004736 bytes

extracting vendor.img (727 MB) to disk... took 2.606s

[liblp] Partition vendor_b will resize from 0 bytes to 762724352 bytes

extracting vendor_dlkm.img (51 MB) to disk... took 0.113s

[liblp] Partition vendor_dlkm_b will resize from 0 bytes to 53944320 bytes

extracting system_other.img (17 MB) to disk... took 0.061s

[liblp] Partition system_a will resize from 0 bytes to 18255872 bytes

extracting super_empty.img (0 MB) to RAM...

extracting boot.img (64 MB) to disk... took 0.205s

archive does not contain 'boot.sig'

extracting super_empty.img (0 MB) to RAM...

Sending 'boot_b' (65536 KB)            OKAY [ 1.859s]

Writing 'boot_b'                  OKAY [ 0.112s]

extracting super_empty.img (0 MB) to RAM...

extracting init_boot.img (8 MB) to disk... took 0.033s

archive does not contain 'init_boot.sig'

extracting super_empty.img (0 MB) to RAM...

Sending 'init_boot_b' (8192 KB)          OKAY [ 0.226s]

Writing 'init_boot_b'               OKAY [ 0.013s]

extracting super_empty.img (0 MB) to RAM...

extracting dtbo.img (16 MB) to disk... took 0.032s

archive does not contain 'dtbo.sig'

extracting super_empty.img (0 MB) to RAM...

Sending 'dtbo_b' (16384 KB)            OKAY [ 0.462s]

Writing 'dtbo_b'                  OKAY [ 0.013s]

extracting super_empty.img (0 MB) to RAM...

extracting vendor_kernel_boot.img (64 MB) to disk... took 0.125s

archive does not contain 'vendor_kernel_boot.sig'

extracting super_empty.img (0 MB) to RAM...

Sending 'vendor_kernel_boot_b' (65536 KB)     OKAY [ 1.869s]

Writing 'vendor_kernel_boot_b'           OKAY [ 0.113s]

extracting super_empty.img (0 MB) to RAM...

extracting pvmfw.img (1 MB) to disk... took 0.000s

archive does not contain 'pvmfw.sig'

extracting super_empty.img (0 MB) to RAM...

Sending 'pvmfw_b' (1024 KB)            OKAY [ 0.032s]

Writing 'pvmfw_b'                 OKAY [ 0.002s]

extracting super_empty.img (0 MB) to RAM...

extracting vendor_boot.img (64 MB) to disk... took 0.196s

archive does not contain 'vendor_boot.sig'

extracting super_empty.img (0 MB) to RAM...

Sending 'vendor_boot_b' (65536 KB)         OKAY [ 1.859s]

Writing 'vendor_boot_b'              OKAY [ 0.116s]

extracting super_empty.img (0 MB) to RAM...

extracting vbmeta.img (0 MB) to disk... took 0.000s

archive does not contain 'vbmeta.sig'

extracting super_empty.img (0 MB) to RAM...

Sending 'vbmeta_b' (12 KB)             OKAY [ 0.001s]

Writing 'vbmeta_b'                 OKAY [ 0.000s]

extracting super_empty.img (0 MB) to RAM...

extracting vbmeta_system.img (0 MB) to disk... took 0.000s

archive does not contain 'vbmeta_system.sig'

extracting super_empty.img (0 MB) to RAM...

Sending 'vbmeta_system_b' (8 KB)          OKAY [ 0.000s]

Writing 'vbmeta_system_b'             OKAY [ 0.000s]

extracting super_empty.img (0 MB) to RAM...

extracting vbmeta_vendor.img (0 MB) to disk... took 0.000s

archive does not contain 'vbmeta_vendor.sig'

extracting super_empty.img (0 MB) to RAM...

Sending 'vbmeta_vendor_b' (4 KB)          OKAY [ 0.000s]

Writing 'vbmeta_vendor_b'             OKAY [ 0.000s]

Erasing 'userdata'                 OKAY [ 0.312s]

Erase successful, but not automatically formatting.

File system type raw not supported.

Erasing 'metadata'                 OKAY [ 0.006s]

Erase successful, but not automatically formatting.

File system type raw not supported.

Sending sparse 'super' 1/21 (254972 KB)      OKAY [ 7.158s]

Writing 'super'                  OKAY [ 0.327s]

Sending sparse 'super' 2/21 (254972 KB)      OKAY [ 7.151s]

Writing 'super'                  OKAY [ 0.373s]

Sending sparse 'super' 3/21 (254972 KB)      OKAY [ 7.182s]

Writing 'super'                  OKAY [ 0.371s]

Sending sparse 'super' 4/21 (254972 KB)      OKAY [ 7.325s]

Writing 'super'                  OKAY [ 0.386s]

Sending sparse 'super' 5/21 (254972 KB)      OKAY [ 7.333s]

Writing 'super'                  OKAY [ 0.373s]

Sending sparse 'super' 6/21 (254972 KB)      OKAY [ 7.139s]

Writing 'super'                  OKAY [ 0.368s]

Sending sparse 'super' 7/21 (254972 KB)      OKAY [ 7.138s]

Writing 'super'                  OKAY [ 0.372s]

Sending sparse 'super' 8/21 (254972 KB)      OKAY [ 7.254s]

Writing 'super'                  OKAY [ 0.371s]

Sending sparse 'super' 9/21 (254972 KB)      OKAY [ 7.248s]

Writing 'super'                  OKAY [ 0.369s]

Sending sparse 'super' 10/21 (254972 KB)      OKAY [ 7.333s]

Writing 'super'                  OKAY [ 0.386s]

Sending sparse 'super' 11/21 (254972 KB)      OKAY [ 7.348s]

Writing 'super'                  OKAY [ 0.364s]

Sending sparse 'super' 12/21 (254972 KB)      OKAY [ 7.343s]

Writing 'super'                  OKAY [ 0.380s]

Sending sparse 'super' 13/21 (254972 KB)      OKAY [ 7.333s]

Writing 'super'                  OKAY [ 0.371s]

Sending sparse 'super' 14/21 (254972 KB)      OKAY [ 7.332s]

Writing 'super'                  OKAY [ 0.370s]

Sending sparse 'super' 15/21 (254972 KB)      OKAY [ 7.282s]

Writing 'super'                  OKAY [ 0.369s]

Sending sparse 'super' 16/21 (254972 KB)      OKAY [ 7.355s]

Writing 'super'                  OKAY [ 0.371s]

Sending sparse 'super' 17/21 (254972 KB)      OKAY [ 7.353s]

Writing 'super'                  OKAY [ 0.378s]

Sending sparse 'super' 18/21 (254972 KB)      OKAY [ 7.345s]

Writing 'super'                  OKAY [ 0.378s]

Sending sparse 'super' 19/21 (254972 KB)      OKAY [ 7.343s]

Writing 'super'                  OKAY [ 0.379s]

Sending sparse 'super' 20/21 (254972 KB)      OKAY [ 7.341s]

Writing 'super'                  OKAY [ 0.379s]

Sending sparse 'super' 21/21 (104468 KB)      OKAY [ 3.010s]

Writing 'super'                  OKAY [ 0.182s]

Erasing 'userdata'                 OKAY [ 0.263s]

Erase successful, but not automatically formatting.

File system type raw not supported.

wipe task partition not found: cache

Erasing 'metadata'                 OKAY [ 0.000s]

Erase successful, but not automatically formatting.

File system type raw not supported.

Rebooting                     OKAY [ 0.000s]

Finished. Total time: 179.248s


16) After this, the phone became like it was from the factory. (photo_4 and photo_5)





17) Next, I installed the same firmware (October 2025) in both slots via adb sideload ota-name_***.zip

18) That's all for now. If you notice any errors or disagree with anything, please report it in the Telegram group (link below)

PS. Thank you, JoshuaDoes, and thanks to everyone who participated in this.


Links:

1) Telegram group: https://t.me/tensorusbdl

2) Link to the app author's GitHub: https://github.com/JoshuaDoes/tensor-usbdl

3) Этот пост на русском: https://telegra.ph/Kak-ya-vosstanovil-svoj-Pixel-7a-s-pomoshchyu-tensor-usbdl-ot-JoshuaDoes-10-13


backup photos if they are deleted from the document


https://www.mediafire.com/view/7qlf1dcgle4b6mh/1.jpg/file

https://www.mediafire.com/view/8jjhv7avrqq9hll/2.jpg/file

https://www.mediafire.com/view/mqb9762w6j1v3hn/3.jpg/file

https://www.mediafire.com/view/mmi8za1lr06x86p/4.jpg/file

https://www.mediafire.com/view/nywyik8wrcn6ex4/5.jpg/file





Report Page