[Q] What's in the firmware blob? - Asus Transformer TF700

I'm currently looking at the latest firmware update zip file (WW_epad_user_10_4_4_18_UpdateLauncher.zip), hoping it contains driver binaries etc. that could be reused in a custom rom (a script that downloads the latest official firmware and extracts needed bits is legal -- just distributing the drivers and all might not be).
The content is another zip file, that in turn contains a META-INF directory with information and an updater, and one huge file called "blob" that probably contains all we care about.
Has anyone investigated that "blob" file yet?
Unfortunately it doesn't seem to be an ext4 image like what you'd flash with "fastboot flash system"...
If nobody else has done it, I'll look into this more myself, but obviously if it's already been done, no need to start over.

The blob can be unpacked using BlobTools (https://github.com/AndroidRoot/BlobTools). It contains partition images:
PT ... Tegra Partition Table
EBT ... bootloader
SOS ... recovery kernel image
LNX ... Android kernel image
APP ... /system partition
The kernel images can again be split into the kernel itself and the initramfs image, and APP is an ext4 image.

Related

[Q] Boot Process

I've looked in quite a few threads, including the custom mix ROMs. What I want to know is who has knowledge of how this thing boots? I've noticed on the 2 droids I've messed with you upgrade them with an update.zip and basically an empty file on the SD card.
I'm guessing the update.zip contains a squashfs or something similar along with a kernel, but I don't know for sure. Who can explain exactly what happens on boot, what devices it looks for filesystems/loop filesystems on etc?
muqali said:
I've looked in quite a few threads, including the custom mix ROMs. What I want to know is who has knowledge of how this thing boots? I've noticed on the 2 droids I've messed with you upgrade them with an update.zip and basically an empty file on the SD card.
I'm guessing the update.zip contains a squashfs or something similar along with a kernel, but I don't know for sure. Who can explain exactly what happens on boot, what devices it looks for filesystems/loop filesystems on etc?
Click to expand...
Click to collapse
The best way to learn about this stuff is by tearing down existing .zip flashers and reading about how boot.img files are built and trying to build your own.
The boot process is controlled by the bootloader (the thing that displays the Viewsonic birds logo and decides whether you are trying to boot into recovery, APX mode, or a standard boot).
The ZIP files that you flash actually run a script that writes an .IMG file contents to one or more partitions.
Most ROM flashers have two images they flash - a boot.img and a system.img. The system.img is a filesystem image of the system partition. The boot.img consists of two parts - a kernel and a ramdisk image (well, and a boot header). The kernel is the Linux kernel that's been compiled to provide all the core system functionality for Android. The ramdisk image (which is a GZIPed CPIO file) contains the init.rc file that does all the initialization, mounting of the main filesystem images and so on.
Once everything is mounted and configured, the Android ROM itself boots up.
I recommend reading this page for more info:
http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images
Hope that helps!
That's more or less what I wanted, but for our device do you know the exact boot order? Mtd partitions then SD sd2 and maybe a USB disk? I'd really like to put a custom Roman on the sd2 and leave the rom factory.
muqali said:
That's more or less what I wanted, but for our device do you know the exact boot order? Mtd partitions then SD sd2 and maybe a USB disk? I'd really like to put a custom Roman on the sd2 and leave the rom factory.
Click to expand...
Click to collapse
I *think* (could be wrong) that both the externalSD (/sdcard2) and the USBDISK (/usbdisk) are mounted dynamically, via vold.
At least that's the way I understood it...
There's a thread here in this forum, about (dual) booting Ubuntu, that does something along the lines of what you're asking about...
Jim
rcgabriel said:
The best way to learn about this stuff is by tearing down existing .zip flashers and reading about how boot.img files are built and trying to build your own.
The boot process is controlled by the bootloader (the thing that displays the Viewsonic birds logo and decides whether you are trying to boot into recovery, APX mode, or a standard boot).
The ZIP files that you flash actually run a script that writes an .IMG file contents to one or more partitions.
Most ROM flashers have two images they flash - a boot.img and a system.img. The system.img is a filesystem image of the system partition. The boot.img consists of two parts - a kernel and a ramdisk image (well, and a boot header). The kernel is the Linux kernel that's been compiled to provide all the core system functionality for Android. The ramdisk image (which is a GZIPed CPIO file) contains the init.rc file that does all the initialization, mounting of the main filesystem images and so on.
Once everything is mounted and configured, the Android ROM itself boots up.
I recommend reading this page for more info:
http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images
Hope that helps!
Click to expand...
Click to collapse
rcgabriel,
When you do an nvflash (ala bekit's), does the contents of bootloader.bin end up getting stored permanently on the Gtab's internal SDcard? And, whenever the Gtab is booted, the code in that bootloader is the first code that runs, deciding, as you said, whether or not to do a recovery or execute the boot.img?
Thanks,
Jim
Isn't the bootloader on one of the MTD partitions and not the sdcard? What I'm having the hardest time wrapping my head around is how this system boots in comparison to an x86 Debian 5.0 system.
The basic picture I have is that there is the rom/flash portion of the boot process and then the kernel and real filesystem are loaded and mounted. But using these custom roms, is it changing the flash and bootloader or just the kernel and OS? Meaning where exactly is the first thing the CPU hits to boot? Flash MTD partitions for the bootloader. Then is the kernel on the mtd partitions or on some separate partition on sdcard.
Since you can basically stick 2 files on an external uSD and send it into upgrade mode, can't you customize the filesystem contained in a zip and then stick it in and have a custom system with whatever you wanted added or removed?

[Q] Is it safe to flash this?

Hi there XDA! I have a really big question/problem. I want to theme Clockworkmod Recovery with custom pictures/icons/themes and such. So far I installed Ubuntu VM, decompiled the Recovery Image into Kernel and Ramdisk, replaced the pre-loaded icons with my custom icons to the ramdisk. Finally, I recompiled it into a new recovery image!
However, since this program is designed for device boot images, Im still curious, can this be used for recovery images? I haven't editing anything within the kernel, just opened the ramdisk, replaced the /res/images with my own and did abootimg --create newcwm.img.
EDIT : All I know is that in the boot.cfg the boot parameter size has to be exact fit or hardbrick.
so I have attached the 2 files that shows the recovery image data/config of both of them.
Don't worry its just 2 txt files. Inside the other archive has the flash ready images. BOTH OF THEM. Also includes the already decompiled ramdisk and kernel to take a look at. In addition the bootimg.cfg is also in. It has everything you need to know
So, heres the question. If I decide to flash it to mmcblk0p21 which is the verified recovery partition for the GT-i9505, (Info on the partition informations/mount points below
http://forum.xda-developers.com/showthread.php?t=2342841
Then, hopefuly the flash to the recovery partition shouldn't hardbrick my device. Am I right? Or missing something.
I will attach both my image and the cwm recovery Image I decompiled. Please if you can tell me if theres something that has to be fixed to prevent me getting a $700 paperweight.
Note: The layout might be confusing inside the Archive, just please bear with me and just take your time. I can wait
PRESS ME TO DOWNLOAD

[Resolved] Best way to make odin system.img into a flashable zip?

Hi, I'm a Galaxy S7 user and I've been trying to make sparse system.img from firmware tar file into a twrp-flashable zip file but I'm not sure which is the best way.
All operations are performed on latest linux mint and I'm not going to use any kitchen. All binaries used to convert images are compiled from latest AOSP sources.
Here are some of the methods I've tried.
a) Extract everything from system.img and set metadata infos in updater-script, just like any other "rom"s. (e.g. SuperMan Rom)
Probably one of the simplest ways, and system files inside the zip can be modified easily - extract, edit, recompress.
But this method has a potential of destroying unique permissions/owner infos, such as those of symlinks.
I'd like to flash the system.img "as-is," without making a mess with whatever's inside the image.
b) Extract raw system.img directly to /dev/block/platform/155a0000.ufs/by-name/SYSTEM.
Not so bad. Raw system.img can be easily generated with simg2img. But turns out to take too much time to flash and doesn't get along well with DualBoot patcher.
c) Sparse dat, like the ones used in most AOSP-based roms
Probably the most ideal one. But when I took the following steps to make it, I found out that system partition size gets kinda damaged or something.
- Convert system.img to raw system.img with simg2img.
- Convert the raw system.img to sparse image again with ext2simg, to make img2sdat.py work properly.
- Convert the sparse image to sparse dat with xpirt's img2sdat.py.
- Finally, convert the generated sparse dat to raw system image with sdat2img.py to check if partition size matches.
Then I get the following results.
- Size of original raw system.img : 4404019200
- Size of raw system.img generated in last step : about ~100MB smaller
I know I can loop mount system.img and then make a new sparse image with make_ext4fs,
but it also breaks some permissions and make_ext4fs won't recognize file_contexts.bin from nougat firmware whereas it worked well with marshmallow's.
If anyone's got a better method or a solution for method c please leave a reply. Thanks in advance.
kykint said:
Hi, I'm a Galaxy S7 user and I've been trying to make sparse system.img from firmware tar file into a twrp-flashable zip file but I'm not sure which is the best way.
All operations are performed on latest linux mint and I'm not going to use any kitchen. All binaries used to convert images are compiled from latest AOSP sources.
Here are some of the methods I've tried.
a) Extract everything from system.img and set metadata infos in updater-script, just like any other "rom"s. (e.g. SuperMan Rom)
Probably one of the simplest ways, and system files inside the zip can be modified easily - extract, edit, recompress.
But this method has a potential of destroying unique permissions/owner infos, such as those of symlinks.
I'd like to flash the system.img "as-is," without making a mess with whatever's inside the image.
b) Extract raw system.img and directly to /dev/block/platform/155a0000.ufs/by-name/SYSTEM.
Not so bad. Raw system.img can be easily generated with simg2img. But turns out to take too much time to flash and doesn't get along well with DualBoot patcher.
c) Sparse dat, like the ones used in most AOSP-based roms
Probably the most ideal one. But when I took the following steps to make it, I found out that system partition size gets kinda damaged or something.
- Convert system.img to raw system.img with simg2img.
- Convert the raw system.img to sparse image again with ext2simg, to make img2sdat.py work properly.
- Convert the sparse image to sparse dat with xpirt's img2sdat.py.
- Finally, convert the generated sparse dat to raw system image with sdat2img.py to check if partition size matches.
Then I get the following results.
- Size of original raw system.img : 4404019200
- Size of raw system.img generated in last step : about ~100MB smaller
I know I can loop mount system.img and then make a new sparse image with make_ext4fs,
but it also breaks some permissions and make_ext4fs won't recognize file_contexts.bin from nougat firmware whereas it worked well with marshmallow's.
If anyone's got a better method or a solution for method c please leave a reply. Thanks in advance.
Click to expand...
Click to collapse
What you're doing is quite complicated if you don't use kitchen. Simplify it for yourself and use kitchen.
Sent from my SM-S903VL using Tapatalk
Droidriven said:
What you're doing is quite complicated if you don't use kitchen. Simplify it for yourself and use kitchen.
Sent from my SM-S903VL using Tapatalk
Click to expand...
Click to collapse
I know that kitchens can do that for me, but they also don't flash system.img as-is.
Maybe I should just take a more look into the sparse dat method and see what breaks the partition size.

[Q] Installing System raw image with flashable .zip

I'm trying to make a flashable zip for TWRP to install a Lenovo Z6 Pro stock ROM. I create the .zip file with Boot, System and Vendor (I'd add the rest of the firmware later). Boot and Vendor are installed but system.img is not installed. I know that I could use .dat files but I'm specially interested on using the image files.
I took as template another ROM which uses .IMG files too with the function 'package_extract_file'. I just replaced the .IMG files making sure that the names are exactly the same, and also I'm sure that my system.img is raw. When I try to install the flashable zip from recovery it prompts the uiprint "Patching system unconditionally" but nothing is installed and skips directly to patch the vendor partitions which is successfully patched.
Any help or clue will be much appreciated. Thanks in advance.

[REQUEST] Build system.img

Hello,
I have an ASUS K01A tablet with a blank system partition and unusable recovery. I can flash img files to their respective partitions just fine (boot.img, droidboot.img) in fastboot, but 'system' in the stock firmware zip is a directory instead of a flashable image. Of course, this (and other reasons) means I can't just flash the stock firmware in fastboot, nor flash over the entire 'system' directory.
I need a system.img to recover my tablet from softbrick, but I can't for the life of me compile one. I've exhausted every method and tool I could find in both Windows and Ubuntu.
I beseech the community; if there is anyone reading this who could build such a file for me, I would be eternally grateful. I believe I only need the system.img to recover the tablet.
The stock firmware is at the ASUS website. Here is the download link: UL-K01A-WW-12.8.1.41-user.zip.
Thanks in advance!
Why not extract the system folder of the ZIP linked to, then pack it into a ZIP what you then convert to IMG using an online-convertor that does the job?
jwoegerbauer said:
Why not extract the system folder of the ZIP linked to, then pack it into a ZIP what you then convert to IMG using an online-convertor that does the job?
Click to expand...
Click to collapse
"Why not" indeed; that sounds like it would more than suffice. Can you please recommend one?
Anyone? I have been unable to find this "online-converter" despite days of searching; still at square one.
Only as example ( found via Google search !!! )
Archive Converter - Convert your a7z, rar, zip, gzip, bzip2, tar archives to another format online
Free Archive Converter. Convert your archive files to a7z, rar, zip, gzip, bzip2, tar format online for free using OnlineConvertFree.
onlineconvertfree.com
jwoegerbauer said:
Only as example ( found via Google search !!! )
Archive Converter - Convert your a7z, rar, zip, gzip, bzip2, tar archives to another format online
Free Archive Converter. Convert your archive files to a7z, rar, zip, gzip, bzip2, tar format online for free using OnlineConvertFree.
onlineconvertfree.com
Click to expand...
Click to collapse
Thank you, but I've tried this one and all the others on Google, and none will handle the filesize (~650 MB). It must be purpose-made for Android .img files it seems, which I've been unable to find.
Kehkou said:
Hello,
I have an ASUS K01A tablet with a blank system partition and unusable recovery. I can flash img files to their respective partitions just fine (boot.img, droidboot.img) in fastboot, but 'system' in the stock firmware zip is a directory instead of a flashable image. Of course, this (and other reasons) means I can't just flash the stock firmware in fastboot, nor flash over the entire 'system' directory.
I need a system.img to recover my tablet from softbrick, but I can't for the life of me compile one. I've exhausted every method and tool I could find in both Windows and Ubuntu.
I beseech the community; if there is anyone reading this who could build such a file for me, I would be eternally grateful. I believe I only need the system.img to recover the tablet.
The stock firmware is at the ASUS website. Here is the download link: UL-K01A-WW-12.8.1.41-user.zip.
Thanks in advance!
Click to expand...
Click to collapse
maybe that video helps you...
good luck
solong
speedson
I built it finally using IMGBurn to create the raw img and Sparse Converter to convert it to sparse img fragments.
But now the tab has formatting error, and with -u option, flashing errors (all partitions and imgs now). Ah, well.
Thank you to everyone! Hopefully someone else reading this will have better luck than me.
Kehkou said:
I built it finally using IMGBurn to create the raw img and Sparse Converter to convert it to sparse img fragments.
But now the tab has formatting error, and with -u option, flashing errors (all partitions and imgs now). Ah, well.
Thank you to everyone! Hopefully someone else reading this will have better luck than me.
Click to expand...
Click to collapse
Download the attached file from the link at the bottom of this post and unzip it somewhere on your PC. It is a temporary recovery launcher. We'll come back to it in a moment. Based on your original post I'm assuming you already have your stock firmware downloaded as well as ADB and Fastboot setup. From your stock firmware unpack the following files: fastboot.img, splashscreen.img, and boot.img and place them in your ADB/Fastboot folder. Copy the stock firmware to your sd card (in its original, unzipped form...the way it was when you first downloaded it). Put the tablet in fastboot mode. Run the following fastboot commands from a command prompt.
- fastboot flash fastboot fastboot.img
- fastboot flash boot boot.img
- fastboot flash splashscreen splashscreen.img
Reboot back to fastboot mode. Go to wherever you unzipped the temp recovery that you downloaded earlier. Double click on launcher.bat. Type accept in the window, then type T2 and your device should boot into CWM recovery. Now choose install zip>install from se card>and choose the stock firmware.zip that you previously copied to your sd card then let it do its thing. Once its finished go back to the first page of the CWM recovery that you're in and select reboot system now>no>no. You should be golden now. Post back if you have any issues.
Download Disposable Recovery

Categories

Resources