Cant unzip recovery file to get files for flashing partitions

I think there is some confusion of language going on here. We don’t want to be extracting anything from e-recovery.img; a file with that name is a complete recovery.img in itself.

eOS is intending to bundle the necessary .img files for booting recovery all together for downloading where the user can simply unzip them. Take a look for example at this download page for lemonade where for eOS-S the files are bundled together as “Recovery and boot img” (no .img).

The name of the bundle can be anything so long as it’s a zip.

For the time being users can extract the payload.bin from the OS download zip and extract the .img’s from that.

3 Likes

Indeed, I agree. The lemonade page demonstrates the intention well and I had not previously seen this provision of needed files, thanks.

I made an edit to the issue

The wording “First unzip the /e/OS Recovery file” does correctly apply when the files are published in the format used on this page. https://images.ecloud.global/dev/lemonade/. Perhaps users need to be aware to wait for the images to be published in the intended format.

1 Like

There is indeed confusion here…

I tried following @aibd 's instructions but running the payload thing gives an error, even when adjusting last argument to simply dtbo:
$ ./payload-dumper-go -partitions -o dtbo,vbmeta 2023/10/16 06:19:37 File does not exist: dtbo,vbmeta

Any guidance, please?
I’m following the install instructions for hotdog which is affected by this issue (that I can’t fully understand).

2 Likes

I worked this out whilst you were finding me the answer. Noch einmal, vielen Danke!

This is the slightly different answer that I worked out:
correct format:
./payload-dumper-go payload.bin -partitions dtbo,vbmeta

  • where dtbo and vbmeta are the names of the .img files you are trying to extract
  • nominating an output folder with -o name didn’t work for me
1 Like

In the wrong command payload.bin is missing, and the -o inbetween -partitions and dtbo,vbmeta breaks the -partitions parameter, letting payload-dumper-go either see dtbo,vbmeta as the file to work with (which doesn’t exist) or as the output folder specified after -o (which doesn’t exist) … I can’t test the specifics right now.

1 Like

I was bold in suggesting ‘Correct format’!

Perhaps better to say that it is a usable format! It did actually create a pretty expansive extraction of ¿all? .img files in the file, so I’m clearly getting it slightly wrong. I’ll link your answer on the gitlab workaround instructions.

I downloaded the Windows version just now, which gives the following usage info:

Usage: payload-dumper-go [options] [inputfile]
  -c int
        Number of multiple workers to extract (shorthand) (default 4)
  -concurrency int
        Number of multiple workers to extract (default 4)
  -l    Show list of partitions in payload.bin (shorthand)
  -list
        Show list of partitions in payload.bin
  -o string
        Set output directory (shorthand)
  -output string
        Set output directory
  -p string
        Dump only selected partitions (comma-separated) (shorthand)
  -partitions string
        Dump only selected partitions (comma-separated)

If I want to understand this in a strict sense, the input file (payload.bin) should be last after the options (-partitions dtbo,vbmeta), or even not given (I assume payload-dumper-go would work with payload.bin in the same directory then), so you could try whether
./payload-dumper-go -partitions dtbo,vbmeta payload.bin
or simply
./payload-dumper-go -partitions dtbo,vbmeta
would make a difference for you, extracting only the 2 given partitions.

2 Likes

Bingo! The Correct Syntax
Well done. I tested it in Linux

./payload-dumper-go -p dtbo,vbmeta -o FolderName payload.bin 

Results in the folder FolderName being created and these files extracted there:

payload.bin: payload.bin
Payload Version: 2
Payload Manifest Length: 101356
Payload Manifest Signature Length: 267
Found partitions:
LOGO (15 MB), abl (225 kB), aop (205 kB), bluetooth (881 kB), boot (101 MB), cmnlib (397 kB), cmnlib64 (516 kB), devcfg (57 kB), dsp (67 MB), dtbo (25 MB), hyp (492 kB), imagefv (20 kB), keymaster (262 kB), modem (158 MB), multiimgoem (16 kB), odm (191 MB), product (456 MB), qupfw (74 kB), recovery (101 MB), storsec (25 kB), system (1.5 GB), system_ext (372 MB), tz (3.2 MB), uefisecapp (127 kB), vbmeta (8.2 kB), vbmeta_system (4.1 kB), vendor (582 MB), xbl (3.2 MB), xbl_config (127 kB)
Number of workers: 4
vbmeta (8.2 kB)  [=======================================================] 100 %
dtbo (25 MB)     [=======================================================] 100 %
1 Like

Users must also be sure to adjust the command, careful to read the install instructions they are using.

For instance in the OP the required partitions are dtbo.img,vendor_boot.img.

1 Like

Hi

I only have a chromebook (yes, I know) and can’t find the way to unzip any file, even with linux (I’m too noob to easy use linux).
I can adb flash, but don’t know how to use payload-dumper.

Hello,
read here.
https://www.androidpolice.com/zip-and-unzip-files-chromebook/
Hope it helps you.

1 Like

Hi

thanks, I can unzip files like zip files, but for a .img file, I can’t. And I really don’t know how to use payload-dumper-go in command line, in chromeOS linux environnment.

I was thinking of writing a walkthrough …

and have now put it here [Walkthrough] Extract eRecovery and boot images using payload-dumper-go

4 Likes

Really thanks for help !
Now I have all necessary files.

I was trying to find a way to extract the boot and dtbo images from recovery.img/, but wasn’t able to understand the instructions for Windows 10. I found a simpler (for me) method and wrote this tutorial. It didn’t work on recovery.img, but it did work to get boot and dtbo from an e/OS build zip file.

[NB: Should you wish to paste in terminal, position your cursor in the window and right-click]

Here we go…

  1. Create a new folder on your C: drive. Name it AAA

[Left-click on This PC, double-click on Local Disc (C:), right-click in an empty space, click New, click Folder, type AAA.]

  1. In a browser window go to: Releases · ssut/payload-dumper-go · GitHub

Scroll down to “Assets”

Download “payload_dumper_go_x.x.x_windows_amd64.tar.gz”

Go to Downloads and rename it pay.tar

[Select the file, right-click on it, select Rename.]

  1. Extract pay.tar to AAA by:

a) going to your taskbar’s search box

b) typing cmd, and selecting Run as administrator

c) typing in or pasting this command:

tar -xvzf C:\PATH\TO\FILE\FILE-NAME.tar.gz -C C:\PATH\TO\FOLDER\EXTRACTION

BUT!!!..don’t press Enter until after changing

C:\PATH\TO\FILE\FILE-NAME.tar and C:\PATH\TO\FOLDER\EXTRACTION
to the paths used by your computer. `

For example, on mine the command is:
tar -xvzf C:\Users\User\Downloads\pay.tar.gz -C `C:\AAA

d) THEN press Enter

  1. Go back to your Downloads folder and:

a) right-click on the e/OS zip file you downloaded for flashing

b) left-click Extract All

c) verify that the “Show extracted files when complete” box is checked

d) Left-click Extract.

e) After the extraction completes, right-click on the payload BIN file and left-click on Copy.

  1. Open AAA, right-click inside and click Paste.

Right above the files you should see a rectangular box with something akin to This PC > Local Disc (C:) > AAA written inside. Left-click on a blank spot in that box, type cmd and press Enter.

Another terminal window will appear. In it type or paste:

payload-dumper-go.exe payload.bin

Press Enter.

When the extraction is complete, open AAA and double-click on “extracted_xxxxxxxx_xxxxxx” to see your unzipped files.

(Thanks to aibd in e/OS, ssut and siayi in github and Rootk1t in xda forums.)