How to extract vendor blobs from stock rom?
I got asked this question a lot, so I’ll post it here. Its gonna just be steps on how to do it.
⚠️ Note that you need a fully synced rom source for this.
Place the Device Tree with the extract-files.sh inside.
If your device tree doesn’t have an extract-files script, get it from github, its almost on every tree.
Grab the stock rom for your device, MIUI/OOS or OneUI whatever.
Create a new folder named dump and extract it there.
Now see if it has a payload.bin or system.dat.br and vendor.dat.br
If it has a payload.bin, then, your device is A/B, and the job is actually very easy,
- Use this tool and run the python file in it.
- You will now have img files ready.
You are unlucky and have br files inside.
So what? We can still extract them, a bit of more work, but yes we can.
- Install brotli from your package manager
- Run the following commands, it will decompress the brotli compression of your images
brotli --decompress system.new.dat.br brotli --decompress vendor.new.dat.br
- Now we to convert the dat files to img, run these commands on terminal, to convert it
curl -sLo sdat2img.py https://raw.githubusercontent.com/xpirt/sdat2img/master/sdat2img.py python3 sdat2img.py system.transfer.list system.new.dat python3 sdat2img.py vendor.transfer.list vendor.new.dat vendor.img
- Now you would have both the images ready for extracting.
Lets Extract the img files we have!
- Create folders for extracting.
mkdir -p system mkdir -p vendor
Install P7-Zip from your package manager
Now the extraction.
7z x system.img -y -osystem 7z x vendor.img -y -ovendor
In your folder, there would be two folders system and vendor, with many files now.
The work directory which had the system and vendor folders is assumed to be at ~/dump for now.
cd to the device tree, and run the command
bash extract-files.sh ~/dump
- Your vendor blobs would be at
2019-10-10 15:54 +0000