Image 2 Image [ magisk module ] system, vendor image converter - Android General

Android system, vendor image converter tool
############## IMAGE 2 IMAGE ##############
Module Image Converter tools & setup v1.1
## MMT-EX .v 20.4 -Zackptg5
## Python .v 2.7.9 -Python.org
## Python .v 3.4.2 -Python.org
## Bash .v 4.3.4.2 -Bash GNU
## BusyBox .v 1.31.1 -topjohnwu
## Brotli .v 1.0.7-2 -brotli.org
Info:
For unpacking, repacking an creating system.new.dat.br, system.new.dat, system.img an vendor.new.dat.br vendor.new.dat vendor.img on android devices.
# STEPS:
Use a good android terminal emulator app , like Nethunter terminal app. (highly Recommended)
Download :
https://store.nethunter.com/repo/com.offsec.nhterm_2020030100.apk
-Grant your terminal app root: in Nethunter you would choose, android su
** You can also type " sudo " then press enter for root access **
Type without quotes " bash " then press enter
Type without quotes " ziona " then press enter
First time setup !
# INTERNAL STORAGE USAGE:
.You will be asked about which storage your using were the files to convert are located
if using internal storage then leave terminal an locate the folder named internal in that storage
place system.new.dat or dat.br an system.transfer.list here !!
use this location for your dat, dat.br an system|vendor image files
# EXTERNAL STORAGE USAGE:
.You will be asked about which storage your using were the files to convert are located
if using external storage then leave terminal an locate the folder named external in that storage
place system.new.dat or dat.br an system.transfer.list here !!
use this location for your dat, dat.br an system|vendor image files
Once your files are in one of the storage locations ,
Now go back to terminal app menu an press Enter .
# FIRST MENU:
Choose which storage you placed the files to convert
# SECOND MENU AND THIRD MENU:
Choose which convert action to do unpacking or repacking of the image file
Options:
1. unpack system.new.dat.br -------(to) system.new.dat
2. repack system.new.dat.br ------ (from) system.new.dat
3. unpack vendor.new.dat.br -------(to) vendor.new.dat
4. repack vendor.new.dat.br -------(from) vendor.new.dat
5. unpack system.new.dat ----------(to) {raw} system.img
6. repack system.new.dat ----------(from) {sparse} system.img
7. unpack vendor.new.dat ---------(to) {raw} vendor.img
8. repack vendor.new.dat ---------(from) {sparse} vendor.img
9. unpack sparse system.img -----(to) {raw} system.img
10. repack sparse system.img -----(from) {raw} system.img
11. unpack sparse vendor.img -----(to) {raw} system.img
12. repack sparse vendor.img -----(from) {raw} vendor.img
13. mount system.img
14. mount vendor.img
15. umount system.img
16. umount vendor.img
17. makefs raw system.img --------(from) {raw} system.img mounted
18. makefs raw vendor.img --------(from) {raw} vendor.img mounted
Mounting of raw system.img images made after unpacking are done automatically
Mounting of raw vendor.img images made after unpacking are done automatically
.You can also Manually mount system.img an umount system.img in internal|external
.You can also Manually mount vendor.img an umount vendor.img in internal|external
.You can type in terminal m1 to mount a system|vendor image in internal|external
.You can type in terminal u1 to unmount a system|vendor image in internal|external
Usage for storage internal|external folder convertions:
-Copy an Place your images files here for everything -- Unpacking & Repacking Also Mounting Images
system.transfer.list & system.new.dat -- needed for converting
system.transfer.list & system.new.dat.br -- needed for converting
vendor.transfer.list & vendor.new.dat -- optional for converting
file_contexts.bin & system.img -- optional to create a modified new image
.When image is converted from .dat to system.img (raw) it will be mounted
within the same external/internal storage folder look inside /system1 or 2 & /vendor1 or 2
.You can do whatever modifications there before making new image or just repacking after umount.
# NOTE CONVERTIONS:
Examples for image processing:
From; {raw} system.img > {sparse} system.img > system.new.dat & optional finally > system.new.dat.br
From; system.new.dat.br > system.new.dat > {raw} system.img
From; {sparse} system.img > {raw} system.img
~ You can repack raw system.img to sparse system.img
used this to flash images in twrp recovery to system or vendor partitions.
Remember on sparse images:
~ To unpack a sparse image to raw system.img or vendor.img you can sparse unpack,
you can also covert it to system|vendor.new.dat then to raw system|vendor.img.
(You can call help in menu by typing 4 an then enter . At main screen first menu only)
All info will display if successful or errors occur .
General logs are found in folders internal|external/logs .
Android 6 to 11 images:
.Both system an vendor images tested. Works on custom roms Lineage, CM, RR, Mokee rom images an more .
Terminal support for:
busybox, dash, bash, python2 & python3 - Shell Commands that are standalone in terminal.
For best results:
•Have 4GB or more of free internal or external storage available on device
•Operating convertions in internal storage is 3xxx faster than using external storage (sdcards)
•ALWAYS have a backup of your original images before converting an using delete old image option when preserving device storage space.
•Remember normally yellow text in the terminal when converting anything is successful and red is a error happened.
•If a image won't automatically or manually mount its more than likely because it's a bad system|vendor image.
TroubleShooting:
--Error logs are made within system*.logs in external or internal logs folder to report.
--Scroll up to view full menu options they are over 18 to choose from in terminal menu1-2 options, internal|external storage.
--If using Nethunter Terminal app if display freezes or weird behavior occurs restart app or start a new window.
--Always have just system.transfer.list with system image files in folder for convertions.
--Always have just vendor.transfer.list with vendor image files in folder for convertions.
--Always remove system.transfer.list an system image files from folder before convertions if using vendor files.
--Always have file_context.bin when creating new images from a mounted system|vendor image
--Have a image that wont convert even with the necessary files present it can mean a bad image or just incompatible with this module.
--If Nethunter Terminal app enter key stops working press the three dots in upper right corner,
and tap Preferences, now tap Function keys, then untick the (tab) option and go back to first terminal window,
now on top of keyboard theirs special functions a new (enter) tab should be on the end right corner.
--Full support for use on arm devices only
# Credits: For Tools & ideas
Kali NetHunter
@andii_nr
@Zackptg5
@topjohnwu
Python.org
Brotli.org
Bash GNU
Creator:
@Ziona
Created:
13/10/2020
Disclaimer :
* I am not responsible for bricked devices, dead SD cards, thermonuclear war,
* or you getting fired because the alarm app failed.
* Please do some research if you have any concerns about this feature included
* in the product you find here before flashing it!
* YOU are choosing to make these modifications.
This should be safe to use when properly install.
Click to expand...
Click to collapse
For arm devices only !
Download backup link:
image2image_v1.1 -
https://www.androidfilehost.com/?fid=10763459528675564171
.

Reserved

@Ziona
Nice work!
If you're looking for some more up to date binaries like bash and brotli, you can grab them from here: https://github.com/Zackptg5/Cross-Compiled-Binaries-Android

Zackptg5 said:
@Ziona
Nice work!
If you're looking for some more up to date binaries like bash and brotli, you can grab them from here: https://github.com/Zackptg5/Cross-Compiled-Binaries-Androidy
Click to expand...
Click to collapse
Thanks
Cool no prob, will be sure to add what i can for next release. With credits to you again also.

file seems to be corrupt, tried downloading many times but it always stops at 4.5mb

dead0 said:
file seems to be corrupt, tried downloading many times but it always stops at 4.5mb
Click to expand...
Click to collapse
Thanks for pointing that out, xda server seems to be experiencing difficulties.
Theirs a new working link above.

Ziona said:
Thanks for pointing that out, xda server seems to be experiencing difficulties.
Theirs a new working link above.
Click to expand...
Click to collapse
thanks
been trying to unpack the vendor image from miui 12 for poco f2 global. unfortunately the furthest i get is the creation of vendor.img which i am unable to mount - seems to be an error on header magi which im not sure what it means

dead0 said:
thanks
been trying to unpack the vendor image from miui 12 for poco f2 global. unfortunately the furthest i get is the creation of vendor.img which i am unable to mount - seems to be an error on header magi which im not sure what it means
Click to expand...
Click to collapse
What is the default vendor image type before converting? .bin .img .dat or .dat.br . (sparse or raw format)

Ziona said:
What is the default vendor image type before converting? .bin .img .dat or .dat.br . (sparse or raw format)
Click to expand...
Click to collapse
its dat.br in raw format from here: http://airtel.bigota.d.miui.com/V12...IGlobal_V12.0.4.0.QJKMIXM_72b1da9230_10.0.zip

dead0 said:
its dat.br in raw format from here: http://airtel.bigota.d.miui.com/V12...IGlobal_V12.0.4.0.QJKMIXM_72b1da9230_10.0.zip
Click to expand...
Click to collapse
Generally you know it would go like this: vendor.img (raw) > vendor.img (sparse) > vendor.new.dat (data sparse format) > finally compressed again using brotli > vendor.new.dat.br (data sparse format) .
Things to consider
You get header errors also when unpacking images that are bad or when using the wrong decompression tool on it.
Is the .dat.br image for 32 or 64 bit device.
Using google drive, mega or android host create a link here to only the vendor.new.dat.br for me to try

Ziona said:
Generally you know it would go like this: vendor.img (raw) > vendor.img (sparse) > vendor.new.dat (data sparse format) > finally compressed again using brotli > vendor.new.dat.br (data sparse format) .
Things to consider
You get header errors also when unpacking images that are bad or when using the wrong decompression tool on it.
Is the .dat.br image for 32 or 64 bit device.
Using google drive, mega or android host create a link here to only the vendor.new.dat.br for me to try
Click to expand...
Click to collapse
i'll upload it after work. the dat.br is for 64bit. I can extract on the pc using CRB from xda chef central but cant compress it back again

dead0 said:
i'll upload it after work. the dat.br is for 64bit. I can extract on the pc using CRB from xda chef central but cant compress it back again
Click to expand...
Click to collapse
Ok send it then, btw did you try the options in the module on your device an followed the steps to unpack an repack dat.br.
Am not clear on if you did or not

Ziona said:
Ok send it then, btw did you try the options in the module on your device an followed the steps to unpack an repack dat.br.
Am not clear on if you did or not
Click to expand...
Click to collapse
i have tried the steps but only gone as far as creating the vendor.img, after that i get a mounting error

dead0 said:
i have tried the steps but only gone as far as creating the vendor.img, after that i get a mounting error
Click to expand...
Click to collapse
I'll have to check that vendor file, you have busybox installed in your system

Ziona said:
I'll have to check that vendor file, you have busybox installed in your system
Click to expand...
Click to collapse
yes busybox installed. heres the link for the vendor image: https://mega.nz/file/UdEHSCjB#XVgUjFMd2KEfoiaH53z_AyDIB_TGhYWRwyQYRap-2uI

dead0 said:
yes busybox installed. heres the link for the vendor image: https://mega.nz/file/UdEHSCjB#XVgUjFMd2KEfoiaH53z_AyDIB_TGhYWRwyQYRap-2uI
Click to expand...
Click to collapse
Ok
Is this the vendor.new.dat.br image unconverted? If so its really large for a compressed vendor image file

Ziona said:
Ok
Is this the vendor.new.dat.br image unconverted? If so its really large for a compressed vendor image file
Click to expand...
Click to collapse
yes. this is from stock

dead0 said:
yes. this is from stock
Click to expand...
Click to collapse
The vendor image is good .
Android 10
Redmi K30
Xiaomi
It unpacks fine.
It mounts fine.
It repacks fine.
So your sure it was mounted , prop files from the image !

Ziona said:
The vendor image is good .
Android 10
Redmi K30
Xiaomi
It unpacks fine.
It mounts fine.
It repacks fine.
So your sure it was mounted , prop files from the image !
Click to expand...
Click to collapse
Strange. I'll try it again 2moro but using stock ROM as base os. I was testing it with a custom ROM. Any chance u can upload the repacked image?

dead0 said:
Strange. I'll try it again 2moro but using stock ROM as base os. I was testing it with a custom ROM. Any chance u can upload the repacked image?
Click to expand...
Click to collapse
I'll upload it.
You may have to tell me step process your doing to unpack an repack so can point out anything wrong

Related

Easy (but long) sgs2 to ext4 image unpack script for Windows+adb+Phone

The common way to unpack such images - is to convert img file to ext4 with sgs2toext4.jar utility, and then, using LinuxReader to open and save files.
The other way I suppose to you - to use android phone and adb. It takes a few minutes - so it`s quite long.
Theory step by step:
1. Convert system.img to ext4.img with the same sgs2toext4.jar
2. Push ext4.img to sdcard
3. Loop mount image to data/ext4 folder
4. Make tar archive of it
5. Pull back ext4.img.tar to PC
6 Unpack it as zip - and you have unpacked image on PC.
Conditions:
- ADB, Java on PC
- root and busybox in the phone
- important! loop mounting support in kernel (boot)
- sdcard with free space mounted as /sdcard/
How to:
drag system.img to system_unpaсk.bat
Bonus:
system_img_remake.bat - all th same, but it let You to make changes in data/ext4/system folder - change apk and so on - and get back to PC new ext4 image - and flash it via FlashTool for ex.
michfood said:
The common way to unpack such images - is to convert img file to ext4 with sgs2toext4.jar utility, and then, using LinuxReader to open and save files.
The other way I suppose to you - to use android phone and adb. It takes a few minutes - so it`s quite long.
Theory step by step:
1. Convert system.img to ext4.img with the same sgs2toext4.jar
2. Push ext4.img to sdcard
3. Loop mount image to data/ext4 folder
4. Make tar archive of it
5. Pull back ext4.img.tar to PC
6 Unpack it as zip - and you have unpacked image on PC.
Conditions:
- ADB, Java on PC
- root and busybox in the phone
- important! loop mounting support in kernel (boot)
- sdcard with free space mounted as /sdcard/
How to:
drag system.img to system_unpaсk.bat
Bonus:
system_img_remake.bat - all th same, but it let You to make changes in data/ext4/system folder - change apk and so on - and get back to PC new ext4 image - and flash it via FlashTool for ex.
Click to expand...
Click to collapse
You sir are a Genius (гений) pure and simple :highfive:
PS: Can you please support your MoreApp.apk here on xda so you can be given credit for this too :good:
MoreApp.apk is not mine ))) - some time ago I`ve made some changes to it - but I do not really think it is needed - my device (and others) have a lot of free memory to install apps - 2,5gb and internal flash 27gb - can be resized to increase data partition - so moreapp or app2sd and so on - are not actual anymore

[DEV] sdat2img 1.1 - img2sdat 1.7 ◦ Unpack/re-pack android DAT files

Introduction
You probably know already that starting from Android 5.x (Lollipop) compiled roms (aosp,cm,stock) are not compressed anymore the way they used to be on previous android versions. On previous versions all content inside /system folder that has to be extracted within our device was either uncompressed (simple /system folder inside our flashable zip) or compressed in a system.img file, which it is a ext4 compressed file; both of these, anyway, were readable and we could see all system files (app,framework, etc).
The problem comes in >=5.0 versions, this method is not used anymore. Why? Because roms started to be always larger, so it is necessary to compress them even more.
What does new Android zips (full roms, but also otas) contain?
New Android flashable zips are made this way:
boot.img (kernel)
file_contexts (selinux related)
META-INF (folder containing scripts)
system.new.dat (compressed /system partition)
system.patch.dat (for OTAs)
system.transfer.list (see explanation below)​
What does updater-script contains then?
The updater-script uses a brand new function: block_image_update(), this method basically decompresses necessary files inside the device. Let's study it.
From google git source code, if we go inside the new file /bootable/recovery/updater/blockimg.c, we find at the end of it the registration of the function block_image_update() as the method BlockImageUpdateFn() which starts at line 254. Here finally we find all information we need to know about the decompression of the .dat file(s). First file we analyze is system.transfer.list which Google tells us:
The transfer list is a text file containing commands to transfer data from one place to another on the target partition.
Click to expand...
Click to collapse
But what each line means?:
First line is the version number of the transfer list; 1 for android 5.0.x, 2 for android 5.1.x, 3 for android 6.0.x, 4 for android 7.x/8.x
Second line is the total number of blocks being written
Third line is how many stash entries are needed simultaneously (only on versions >= 2)
Fourth line is the maximum number of blocks that will be stashed simultaneously (only on versions >= 2)
Fifth line and subsequent lines are all individual transfer commands.
Click to expand...
Click to collapse
Ok, but how to decompress the system.new.dat file?
All instructions are below. sdat2img, rimg2sdat and img2sdat binaries are involved. Please read carefully step by step.
NOTE for OTAs
If you are looking on decompressing system.patch.dat file or .p files, therefore reproduce the patching system on your PC, check imgpatchtools out by @erfanoabdi.
You can use/modify these files and/or include them in your work as long as proper credits and a link to this thread are given.
If you have questions or problems write here
Are you building from source and want to revert to the old flashing method without DAT files?
Do this (thx @Elluel):
1 - Delete this line
2 - Make sure you have this commit
Thanks
- howellzhu & luxi78 - for initial source codes
- all contributors from github
Ubuntu
Ubuntu 64-bit - Guide
Step 1 - Decompressing = DAT (sparse data) -> EXT4 (raw image)
We're now using sdat2img binary, the usage is very simple (make sure you have python 2.7+ installed):
./sdat2img.py <transfer_list> <system_new_file> [system_img]​- <transfer_list> = input, system.transfer.list from rom zip
- <system_new_file> = input, system.new.dat from rom zip
- [system_img] = output ext4 raw image file
and a quick example:
./sdat2img.py system.transfer.list system.new.dat system.img​by running this command you will get as output the file my_new_system.img which is the raw ext4 image.​
Step 2 - Decompress EXT4 (raw image) -> OUTPUT folder -> Compress EXT4 (raw image)
Now we need to mount or ext4 raw image into an output folder so we can see apks/jars etc.
To do this we need to type this command:
sudo mount -t ext4 -o loop system.img output/​As you can see there is a new folder called output which we can edit/modify/delete your files (not able to? see here)
Now we need to compress it back to a raw ext4 image, to do this we need the make_ext4fs binary. Make sure you have the file_contexts file (taken from the Rom zip) inside the make_ext4fs path. Then type this (got issues? see here)
./make_ext4fs -T 0 -S file_contexts -l 1073741824 -a system system_new.img output/​You will get the new raw ext4 image called 'system_new.img' ready for the next step.​
Step 3 - Converting = EXT4 (raw image) -> IMG (sparse image)
Now we need to convert the ext4 raw image into a sparse image. For this you need img2simg binary you can find here (thx to @A.S._id).
The usage is simple:
img2simg <raw_image_file> <sparse_image_file>​Pretty self-explanatory, the output will be a new sparse image (.img).​
Step 4 - Converting = IMG (sparse image) -> DAT (sparse data)
Now we need the img2sdat binary, the usage is very simple (make sure you have python 2.7+ installed):
./img2sdat.py <system_img>​- <system_img> = name of input sparse image file (from step 3)
As you can see the output is composed by system.transfer.list, (system.patch.dat) & system.new.dat, ready to be replaced inside your Rom zip.​
DOWNLOADs
sdat2img.py
- github.com
make_ext4fs
- mega.co.nz
img2sdat.py
- github.com
Source - Changelog
sdat2img
Repo: https://github.com/xpirt/sdat2img
Changelog: https://github.com/xpirt/sdat2img/commits/master
Source: https://github.com/xpirt/sdat2img/blob/master/sdat2img.py
img2sdat
Repo: https://github.com/xpirt/img2sdat
Changelog: https://github.com/xpirt/img2sdat/commits/master
Source: https://github.com/xpirt/img2sdat/blob/master/img2sdat.py
Windows
Windows 32/64 bit - Guide
Step 1 - Decompressing = DAT (sparse data) -> EXT4 (raw image)
We're now using sdat2img.py binary, the usage is very simple (make sure you have python 3.x installed):
sdat2img.py <transfer_list> <system_new_file> <system_ext4>​- <transfer_list> = input, system.transfer.list from rom zip
- <system_new_file> = input, system.new.dat from rom zip
- <system_ext4> = output ext4 raw image file
and a quick example:
sdat2img.py system.transfer.list system.new.dat system.img​by running this command you will get as output the file my_new_system.img which is the raw ext4 image.​
Step 2 - Decompress EXT4 (raw image) -> OUTPUT folder -> Compress EXT4 (raw image)
Now you should either move to Ubuntu x64/x86 or follow the 2nd step from the Ubuntu guide on cygwin 32 bit.​
Step 3 - Converting = EXT4 (raw image) -> IMG (sparse image)
Now we need to convert the ext4 raw image into a sparse image. For this you need img2simg binary you can find here (thx to @A.S._id).
The usage is simple:
img2simg.exe <raw_image_file> <sparse_image_file>​Pretty self-explanatory, the output will be a new sparse image (.img).​
Step 4 - Converting = IMG (sparse image) -> DAT (sparse data)
Now we need the img2sdat binary, the usage is very simple (make sure you have python 2.7+ installed):
img2sdat.py <system_img>​- <system_img> = name of input sparse image file (from step 3)
As you can see the output is composed by system.transfer.list, (system.patch.dat) & system.new.dat, ready to be replaced inside your Rom zip.​
DOWNLOADs
sdat2img.py
- github.com
make_ext4fs
- mega.co.nz
img2sdat.py
- github.com
Is there any tool to browse (and/or manipulate) these .dat files in Windows?
01 Vlatce said:
Is there any tool to browse (and/or manipulate) these .dat files in Windows?
Click to expand...
Click to collapse
i don't think so, though you can install ubuntu in a virtual machine as 64-bit and decompress there without problems.
edit: windows binaries added to OP.
xpirt said:
i don't think so, though you can install ubuntu in a virtual machine as 64-bit and decompress there without problems.
Click to expand...
Click to collapse
I found one, Ext2Explore, it can browse and extract lollipop .dat files
01 Vlatce said:
I found one, Ext2Explore, it can browse and extract lollipop .dat files
Click to expand...
Click to collapse
Can you explain how to work in more detail ? Thanks.
chihliouma said:
Can you explain how to work in more detail ? Thanks.
Click to expand...
Click to collapse
With that application you can open the system.new.dat file like a zip archive
Sent from my Nexus 5
xpirt said:
i don't think so, though you can install ubuntu in a virtual machine as 64-bit and decompress there without problems.
Click to expand...
Click to collapse
01 Vlatce said:
I found one, Ext2Explore, it can browse and extract lollipop .dat files
Click to expand...
Click to collapse
Confirmed.
Works perfectly..
Thanks a lot! This will save a lot of time theming.. (pulling the system, settings, framework without having to flash the rom first)
Oh, just for s&g's i extracted ("decompiled") the system.new file, the files (app, prive-app, framework, media, etc) all got placed on my desktop -- i deleted the system.new file from the rom -- i then placed the folders and files that got extracted and placed them in the rom -- i flashed it -- it booted! lol.. didnt think it would... but anyways, there's that.
For those who want to try:
--- > its basically self explanatory.
- once downloaded (the link above) extract the contents from the zip (i just went ahead and extracted to my desktop)
- right click the linux penguin
- run as administrator - the window will pop up
- go to file > open image > find your system.new image (should already be extracted from the rom and placed on your desktop)
- click open
- you should now see your image (or path) in the windows -- double click them (i doubled clicked both the right and left side)
- now you should be able to see all the folders
---> if you want to extract those folders
- just go up to the top
- click save and choose an extraction (i chose Desktop)
Hoped i helped -- any questions or confusion, dont be shy to ask -- i probably went too fast, idk lol
Enjoy!
Incredible_Culp said:
Confirmed.
Works perfectly..
Thanks a lot! This will save a lot of time theming.. (pulling the system, settings, framework without having to flash the rom first)
Oh, just for s&g's i extracted ("decompiled") the system.new file, the files (app, prive-app, framework, media, etc) all got placed on my desktop -- i deleted the system.new file from the rom -- i then placed the folders and files that got extracted and placed them in the rom -- i flashed it -- it booted! lol.. didnt think it would... but anyways, there's that.
For those who want to try:
--- > its basically self explanatory.
- once downloaded (the link above) extract the contents from the zip (i just went ahead and extracted to my desktop)
- right click the linux penguin
- run as administrator - the window will pop up
- go to file > open image > find your system.new image (should already be extracted from the rom and placed on your desktop)
- click open
- you should now see your image (or path) in the windows -- double click them (i doubled clicked both the right and left side)
- now you should be able to see all the folders
---> if you want to extract those folders
- just go up to the top
- click save and choose an extraction (i chose Desktop)
Hoped i helped -- any questions or confusion, dont be shy to ask -- i probably went too fast, idk lol
Enjoy!
Click to expand...
Click to collapse
I can't get this to work at all. I'm using Win 7 Pro and I've actually used this app before with stock Nexus 7 factory images and it worked fine.. What file did you actually download? I d/l 2 different versions, one was beta 2.0 and the other was a zip that said 2.2.71 but the about on the exe says 2.1, which is the version I've been using for quite a while.
With the beta 2.0, there's not even an option to open a file and with the 2.1, it errors out every time. After opening system.new.dat image and double clicking, it just hangs and the program stops responding. If I try clicking on it and selecting save, it allows me to select a folder to save it in but I just get a dialog box that says saving files and then hangs at 24% every time, finally crashing with a Microsoft C++ runtime error.
Oh btw, you didn't go too fast LOL, this is really a simple app to use but it's just not working for me with these block image files. Maybe I'm missing something but it's got me scratching my head. :laugh: If you have any ideas, I'm all ears.
Thanks,
Mike T
webdroidmt said:
I can't get this to work at all. I'm using Win 7 Pro and I've actually used this app before with stock Nexus 7 factory images and it worked fine.. What file did you actually download? I d/l 2 different versions, one was beta 2.0 and the other was a zip that said 2.2.71 but the about on the exe says 2.1, which is the version I've been using for quite a while.
With the beta 2.0, there's not even an option to open a file and with the 2.1, it errors out every time. After opening system.new.dat image and double clicking, it just hangs and the program stops responding. If I try clicking on it and selecting save, it allows me to select a folder to save it in but I just get a dialog box that says saving files and then hangs at 24% every time, finally crashing with a Microsoft C++ runtime error.
Oh btw, you didn't go too fast LOL, this is really a simple app to use but it's just not working for me with these block image files. Maybe I'm missing something but it's got me scratching my head. :laugh: If you have any ideas, I'm all ears.
Thanks,
Mike T
Click to expand...
Click to collapse
hmm interesting..
im using windows 8.1
idk how much help i can be because i just downloded the first option (provided by the link above) and went from there.
like you said, theres two.. the .exe and the .zip.. i downloaded the .exe
Incredible_Culp said:
hmm interesting..
im using windows 8.1
idk how much help i can be because i just downloded the first option (provided by the link above) and went from there.
like you said, theres two.. the .exe and the .zip.. i downloaded the .exe
Click to expand...
Click to collapse
So, did you d/l the zip that was modified 2006-8-26, which is version 2.0 beta, or did you click the link which said download latest release?
Mike T
webdroidmt said:
So, did you d/l the zip that was modified 2006-8-26, which is version 2.0 beta, or did you click the link which said download latest release?
Mike T
Click to expand...
Click to collapse
ha! didnt even see there was a latest release..
i downloaded the 2006-8-26 apparently -- didnt even look at that date either LOL
i dont want to try the latest now -- this one works fine for me lmao -- dont want to ruin it.. ah, screw it, im downloading the latest now
EDIT: Ok, i lied.. i just checked my trash.. i did download the lastest release .zip .. the 2271..
@webdroidmt @Incredible_Culp Download from here lol: http://sourceforge.net/projects/ext2read/
Maybe something with my PC setup or Win 7 because the 2006-8-26 version doesn't even give me an option for opening a file image. It actually loads up looking like an incomplete application, it's also a very small filesize. Did you just d/l the ext2explore exe, or did you also d/l ext2read2 beta zip?
Mike T
webdroidmt said:
Maybe something with my PC setup or Win 7 because the 2006-8-26 version doesn't even give me an option for opening a file image. It actually loads up looking like an incomplete application, it's also a very small filesize. Did you just d/l the ext2explore exe, or did you also d/l ext2read2 beta zip?
Mike T
Click to expand...
Click to collapse
Use the download link in the above post and click the green download button, and it should be the correct version, from 2012 rather than 2006.
Lethargy said:
@webdroidmt @Incredible_Culp Download from here lol: http://sourceforge.net/projects/ext2read/
Click to expand...
Click to collapse
That's the one I've been using for quite some time. As mentioned in my previous post, the system.new.dat file just "appears" to be saving but hangs at 24%, then eventually crashes. I'm stumped, should be so easy but it doesn't want to cooperate. LOL
Thanks anyway,
Mike T
webdroidmt said:
That's the one I've been using for quite some time. As mentioned in my previous post, the system.new.dat files just "appear" to be saving but hangs at 24%, then eventually crashes. I'm stumped, should be so easy but it doesn't want to cooperate. LOL
Thanks anyway,
Mike T
Click to expand...
Click to collapse
Weird. Try redownloading the ROM you're trying to extract?
Lethargy said:
Use the download link in the above post and click the green download button, and it should be the correct version, from 2012 rather than 2006.
Click to expand...
Click to collapse
Thanks for trying guys, that is exactly the one I've been using. I downloaded it again a few seconds ago and still getting the same result. :laugh:
Thanks.
Mike T
---------- Post added at 01:09 AM ---------- Previous post was at 01:08 AM ----------
Lethargy said:
Weird. Try redownloading the ROM you're trying to extract?
Click to expand...
Click to collapse
I've actually tried with images from 3 different roms and they all give me the same result. It's cool, I just won't be able to play around as much as I used to porting stuff.
Mike T
---------- Post added at 01:15 AM ---------- Previous post was at 01:09 AM ----------
Lethargy said:
Weird. Try redownloading the ROM you're trying to extract?
Click to expand...
Click to collapse
Just curious, you guys aren't changing the file extension to something other than .dat, right?
Mike T

[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.

[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

Modifying system.img

Hello guys. I have a simple question. I am trying to modify ROM for xiaomi a2. I have official .iso images. For test i trying to remove "grep" binary file. I mount system.img, change it, unmount, pack and flash using fastboot. But the file is still is visble using adb.
When i try TWRP file manager, the file is absent. How is it possible?
Then i try to change one file directly in .iso using hex editor, but the changes is not visible. But when i install magisk, all changes became visible. Can android store copy of system.img somewhere else?
Not sure what you have done or what you mean with "official .iso images" but consider three possibilities:
Magisk is systemless-root method, it provides overlay for modifying /system content without modifying system partition
A/B devices have two slots, system_a and system_b partition
dm-verity provides FEC feature to correct modifications on file system

Categories

Resources