[Samsung Galaxy Gio GT-S5660][Tutorial] Export ROM for use in Odin - Android Software/Hacking General [Developers Only]

This tutorial is about how to export your /system partition or your own ROM.
Requirements
- ADB Shell for Windows, Linux, Mac OSX or Android Terminal Emulator installed on your GT-S5660
- If you are using Windows use cygwin else use Terminal in Linux.
Process
1. Install Cygwin from here, skip this step if you use Linux
2. Connect the Gio to the computer.
3. a) Open windows command prompt and type:
adb shell
Click to expand...
Click to collapse
3. b) If you use Android Terminal, open it
4. Whether you use option a or b from the previous step type this
dd if=/dev/block/stl12 of=/sdcard/system.rfs bs=4096
Click to expand...
Click to collapse
5. Now you have a system.rfs file on your sdcard.
6. If you use cygwin place the system.rfs in this folder (where you installed it):
C:\Cygwin\home\%yourusername%
Click to expand...
Click to collapse
If you use Linux I assume you have the skill to set the correct paths yourself...
7. Now we are going to pack it into a tarball:
tar -H ustar -c system.rfs > thisismyrom.tar
Click to expand...
Click to collapse
if you have an additional moddified boot.img for example you could have typed this as well:
tar -H ustar -c boot.img system.rfs > thisismyrom.tar
Click to expand...
Click to collapse
8. Add md5 hash to our tarball for security and integrity checks
md5sum -t thisismyrom.tar >> thisismyrom.tar
Click to expand...
Click to collapse
9. Renaming our tarball with md5 extension:
mv thisismyrom.tar thisismyrom.tar.md5
Click to expand...
Click to collapse
10. Happy flashing with odin!

Shouldn't stl12 be system? And stl14 cache?
Also, you could make a shell script to automate part of your process. Scripts can be run from Cygwin and Linux.
Regards,
Darkshado

Sorry! Made a typing mistake. Corrected it!

No need of cygwin, adb in windows cmd will do fine, and use total commander to tarball it on windows, other tools mess it up n can brick your device

Hi!
How can i export the CSC (or all the ROM) from Android 2.2.1?
thanks

I may have got the wrong end of the stick here and this could be the wrong thread, but it does seem to be the most specific to my interest.
I'd like to be of service by exporting my own ROM (Stock Firmware) so others can use it themselves in case of disaster. I started a thread at Samfirmware.com here http://www.sammobile.com/forum/showthread.php?t=3420 because they don't have it on their list for Samsung Galaxy Ace, and I was surprised to see it got 64 views, so I presume there would be some modicum of interest in it.
I really don't have any experience with this but I am fascinated and keen to learn. I had assumed (and I know assumption is the mother of all f*** ups) that I could simply create a CWMrecovery backup and it could be zipped up and exported to other phones. But I read somewhere that this would include my google account details.
Anyway. If you can tell me a) how to be of some use regarding this b) tell me its not worth it but point me in the direction of a place where I can start to learn what to do or c) politely show me the exit sign and tell me not to darken your door again...I'd be most grateful

Related

[HOW TO] Open CGs

Hi all :
I try open all CGs for see the files, but i only know to open CG39 and some more..
sudo mount -o loop CG.39.smg CG39
But the others ¿¿
Some one have the answer ¿?¿?¿?
There is a Perl script which can unpack boot and recovery (CG35 & CG47) in this thread: http://forum.xda-developers.com/showthread.php?t=443994
Filipitripi said:
Hi all :
I try open all CGs for see the files, but i only know to open CG39 and some more..
sudo mount -o loop CG.39.smg CG39
But the others ¿¿
Some one have the answer ¿?¿?¿?
Click to expand...
Click to collapse
CG64.smg & CG65.smg: partition tables that you can open using fdisk/sfdisk
CG33.smg is a CDROM ISO file!
iirc one or two of them are the splash image (not 100% sure now)
Filipitripi said:
Hi all :
I try open all CGs for see the files, but i only know to open CG39 and some more..
sudo mount -o loop CG.39.smg CG39
But the others ¿¿
Some one have the answer ¿?¿?¿?
Click to expand...
Click to collapse
how to repack cg39.smg
if you have any details on windows 7 how to open repack do send me.
rachit2588 said:
how to repack cg39.smg
if you have any details on windows 7 how to open repack do send me.
Click to expand...
Click to collapse
http://sourceforge.net/projects/ext... 2.2 (Latest)/ext2explore-2.2.71.zip/download
It will allow you opening ext3 images inside Windows
^very good idea
danimagrin said:
http://sourceforge.net/projects/ext... 2.2 (Latest)/ext2explore-2.2.71.zip/download
It will allow you opening ext3 images inside Windows
Click to expand...
Click to collapse
so now i can see files on cg39.smg using ext2reader but the thing is now how to get system image from cg39.smg to system.img ??
rachit2588 said:
so now i can see files on cg39.smg using ext2reader but the thing is now how to get system image from cg39.smg to system.img ??
Click to expand...
Click to collapse
System.img to be restored with Nandroid? If yes you have to extract all files with ext2reader then use mkyaffs2image to build system.img.
danimagrin said:
System.img to be restored with Nandroid? If yes you have to extract all files with ext2reader then use mkyaffs2image to build system.img.
Click to expand...
Click to collapse
with mkyaffs2image its jus showing me a cmd windows for some less thn 1 sec and its jus goes away...please upload the version you are using...also let me know if it needs any prerequisite software to be installed.
It's because mkyaffs2image is a command line app, just like in the DOS days... To use it you should open a cmd window (type cmd at Windows menu and press enter), go to the directory right before the one you extracted files (you use cd "dirname" to enter in a directory and "cd .." to leave it. So when you are in the directory right before the one in which you've extracted files type "mkyaffs2image CG39extracteddir system.img"
danimagrin said:
It's because mkyaffs2image is a command line app, just like in the DOS days... To use it you should open a cmd window (type cmd at Windows menu and press enter), go to the directory right before the one you extracted files (you use cd "dirname" to enter in a directory and "cd .." to leave it. So when you are in the directory right before the one in which you've extracted files type "mkyaffs2image CG39extracteddir system.img"
Click to expand...
Click to collapse
oh , ok.. its working..thanks
danimagrin said:
It's because mkyaffs2image is a command line app, just like in the DOS days... To use it you should open a cmd window (type cmd at Windows menu and press enter), go to the directory right before the one you extracted files (you use cd "dirname" to enter in a directory and "cd .." to leave it. So when you are in the directory right before the one in which you've extracted files type "mkyaffs2image CG39extracteddir system.img"
Click to expand...
Click to collapse
ok last doubt...after creating system.img can it be restored via custom recovery..??
how to add md5 check sums for that so that custom recovery can identify as proper nandorid..!!??
rachit2588 said:
oh , ok.. its working..thanks
Click to expand...
Click to collapse
You welcome!
Sure you can use it with nandroid, you must download md5sum.exe, place it together with mkyaffs2image, after you used mkyaffs2image then type "md5sum system.img" and it will generate checksum. Create a file called "nandroid.md5" and paste what md5sum returned. You can open a nandroid.md5 file of another backup and you'll understand better how it's done..
excellent..i got it
@danimagrin help me how to add root files if our cg39 image is unrooted..??
ie how to manually add root files from some rooted cg39 image to some non rooted original image..which files and folders are required to add/replace..?? ne thoughts..
rachit2588 said:
@danimagrin help me how to add root files if our cg39 image is unrooted..??
ie how to manually add root files from some rooted cg39 image to some non rooted original image..which files and folders are required to add/replace..?? ne thoughts..
Click to expand...
Click to collapse
I know how to do it on Linux, because you've to run chmod and chown to set su and Superuser.apk permissions. I'll see if it's possible to do it inside Windows and I'll answer you asap.
Where did you get mkyaffs2image for Windows? Are you running it with -f flag or not? Have you already made an image and restored it and did it really work? I'm afraid if will not work because of the same problem above...
danimagrin said:
I know how to do it on Linux, because you've to run chmod and chown to set su and Superuser.apk permissions. I'll see if it's possible to do it inside Windows and I'll answer you asap.
Where did you get mkyaffs2image for Windows? Are you running it with -f flag or not? Have you already made an image and restored it and did it really work? I'm afraid if will not work because of the same problem above...
Click to expand...
Click to collapse
yes i have made an system.img with md5 nandroid check sum...but still not restored with CWM Recovery...yeah mkyaffs2image works on windows...find out in the attached IMG depacker
rachit2588 said:
yes i have made an system.img with md5 nandroid check sum...but still not restored with CWM Recovery...yeah mkyaffs2image works on windows...find out in the attached IMG depacker
Click to expand...
Click to collapse
I'll test it as soon as I get home and then I tell you!

[HOW-TO]Create Custom ODIN Images for Backup/Restore

I'm sure several people will be wanting this information, so I figured I would post it here for everyone. This will allow you to backup your system and create custom Odin images for restore purposes. For anyone unfamiliar with the Samsung system, they use Odin to flash things to the device, much like HTC has RUU and Moto has SBF. Odin files are either .tar files, or .tar.md5 files.
The .tar.md5 files are .tar files with the md5 checksum added to the end of the file. If you attempt to flash a .tar.md5 file, Odin will automatically check that the contents are what they should be before flashing and proceed with the flash if the md5 is valid, otherwise it will stop.
In Odin, you should use the PDA button for all flashing. The PIT button may be used as well, if we can get a valid .pit file for the device, but for now, PIT won't be used either. Other than PDA, Start/Reset are the only other buttons you need to worry about.
Now, on to creating the backup files. First, you will need your device to be rooted (perm or temp root will work), and you also need to have access to terminal on the phone, either via an emulator or adb shell access. To create the backup files, you won't need a Linux/UNIX system, but you will if you want to create a flashable Odin package. The following will output the files on the root of the SDCard, adjust the "of=" path if you want them somewhere else. It will also create the files for the proper filename for Odin as well. So to create the files, here are the commands you will use from root shell (#):
System:
Code:
dd if=/dev/block/stl10 of=/sdcard/factoryfs.rfs bs=4096
Kernel:
Code:
dd if=/dev/block/bml8 of=/sdcard/zImage bs=4096
Recovery:
Code:
dd if=/dev/block/bml9 of=/sdcard/recovery.bin bs=4096
DO NOT INCLUDE THE FOLLOWING IN ANYTHING BUT A PERSONAL BACKUP
Cache:
Code:
dd if=/dev/block/mmcblk0p3 of=/sdcard/cache.rfs bs=4096
DBData:
Code:
dd if=/dev/block/stl11 of=/sdcard/dbdata.rfs bs=4096
Data:
Code:
dd if=/dev/block/mmcblk0p1 of=/sdcard/movinand.bin bs=4096
The last three files (cache, dbdata, data) may contain personal information, so do not include these 3 files in anything but a personal backup/recovery package.
To create a flashable Odin package, you need to pull all of the files off of the phone/sdcard and onto your computer. From there, you use the following to create the package:
Code:
tar -H ustar -c factoryfs.rfs recovery.bin zImage > package_name.tar
md5sum -t package_name.tar >> package_name.tar
mv package_name.tar package_name.tar.md5
If you want to include cache/dbdata/data in the above for personal use, just add them after the "-c" and before the ">".
There are other files that may be in Odin packages, but they are protected by Samsung and cannot be dumped properly. The files are the bootloader, secondary bootloader, modems, and .lfs partitions. The files would be boot.bin, Sbl.bin, modem.bin (not sure what it would be for the CDMA/LTE dual modem here), and param.lfs. It however isn't that big of an issue that these can't be dumped as the can't really be altered by normal flashing of the device, and are usually only altered via OTA updates.
Thanks for this info imnuts! I unfortunately updated to the new update and would like to go back to rooted but cant until I downgrade.
Thanks!
Thanks for posting this. I'm going to attempt to make a personal backup and then I can factory reset the phone and make a stock version for people to use. I'm haven't installed the update yet either, so I'm hoping this will let people get back to ED1. I've also been playing around with theming using the fascinate community rom theme and ninjamorph to swap files. It'll take a while, but it's currently the only way I feel safe messing with framework-res.
wynalazca said:
Thanks for posting this. I'm going to attempt to make a personal backup and then I can factory reset the phone and make a stock version for people to use. I'm haven't installed the update yet either, so I'm hoping this will let people get back to ED1. I've also been playing around with theming using the fascinate community rom theme and ninjamorph to swap files. It'll take a while, but it's currently the only way I feel safe messing with framework-res.
Click to expand...
Click to collapse
I'm definitely looking forward to having a downgrade ROM image to get back to ED1!
So how do you add the last personal 3 i just got the droid charge and i am not very familiar with samsung files i had a droid x and a thunderbolt very shortly and am familiar with ruu and sbf but how do you add cache dbdata and the other one. I meab like the actual command not the instruction to put it after c
rami98 said:
So how do you add the last personal 3 i just got the droid charge and i am not very familiar with samsung files i had a droid x and a thunderbolt very shortly and am familiar with ruu and sbf but how do you add cache dbdata and the other one. I meab like the actual command not the instruction to put it after c
Click to expand...
Click to collapse
The only thing that would change would be the tar command. If you want to include the other files, it would be:
Code:
tar -H ustar -c cache.rfs dbdata.rfs factoryfs.rfs movinand.bin recovery.bin zImage > package_name.tar
md5sum -t package_name.tar >> package_name.tar
mv package_name.tar package_name.tar.md5
You just need to pull the files from your phone and have them in the same directory that you're in in terminal, and have them named appropriately. It also doesn't matter what order they are in (that I know of), I just have them in alphabetical order for ease of reading.
So im going to try and do the voodoo lagfix for the first time ever but I wanted to make a backup. Im on ED2 and NOT rooted so how would I go about making these backups?
imnuts said:
The only thing that would change would be the tar command. If you want to include the other files, it would be:
Code:
tar -H ustar -c cache.rfs dbdata.rfs factoryfs.rfs movinand.bin recovery.bin zImage > package_name.tar
md5sum -t package_name.tar >> package_name.tar
mv package_name.tar package_name.tar.md5
You just need to pull the files from your phone and have them in the same directory that you're in in terminal, and have them named appropriately. It also doesn't matter what order they are in (that I know of), I just have them in alphabetical order for ease of reading.
Click to expand...
Click to collapse
I tried the above and I keep getting this error message in the command prompt:
'tar' is not recognized as an internal or external command, operable program or batch file.
(I'm trying this on windows 7 professional)
Any help would be appreciated, thanks!
mypantsaretorn said:
I tried the above and I keep getting this error message in the command prompt:
'tar' is not recognized as an internal or external command, operable program or batch file.
(I'm trying this on windows 7 professional)
Any help would be appreciated, thanks!
Click to expand...
Click to collapse
You wouldn't by any chance be trying the "tar" command at a windows command prompt, would you?
imnuts said:
To create the backup files, you won't need a Linux/UNIX system, but you will if you want to create a flashable Odin package.
To create a flashable Odin package, you need to pull all of the files off of the phone/sdcard and onto your computer. From there, you use the following to create the package:
Code:
tar -H ustar -c factoryfs.rfs recovery.bin zImage > package_name.tar
md5sum -t package_name.tar >> package_name.tar
mv package_name.tar package_name.tar.md5
If you want to include cache/dbdata/data in the above for personal use, just add them after the "-c" and before the ">".
Click to expand...
Click to collapse
Course you might be running Linux in a vmware or Hyper-V environment....hint?
HTH
Damn! I didn't pay attention to the second part of that sentence! Lol
Thanks for the "hint"..
Sent from my SCH-I510 using XDA App
The other option would be using Cygwin, but I've never tried it, so it may or may not work.
imnuts said:
The other option would be using Cygwin, but I've never tried it, so it may or may not work.
Click to expand...
Click to collapse
cygwin works!
Edit: Here is how:
1. Search google for cygwin - download
2. Run - you will be prompted to get packages - I assumed "archive" was a good place to start - not sure if you need this or not...
3. When complete you will see a new icon on your desktop - double-click
4. Be patient as it loads
5. Copy the files output'ed from first post to same folder on PC
6. Back in cygwin:
a. cd x: (where x: is the drive letter of the drive that has the folder with the files)
b. tar -H ustar -c cache.rfs dbdata.rfs movinand.bin factoryfs.rfs recovery.bin zImage > package_name.tar
c: md5sum -t package_name.tar >> package_name.tar
d: mv package_name.tar package_name.tar.md5
Complete output of commands:
These files are for the users to personalise their cygwin experience.
They will never be overwritten nor automatically updated.
`./.bashrc' -> `/home/UWINKET//.bashrc'
`./.bash_profile' -> `/home/UWINKET//.bash_profile'
`./.inputrc' -> `/home/UWINKET//.inputrc'
`./.profile' -> `/home/UWINKET//.profile'
Your group is currently "mkgroup". This indicates that neither
your gid nor your pgsid (primary group associated with your SID)
is in /etc/group.
The /etc/group (and possibly /etc/passwd) files should be rebuilt.
See the man pages for mkpasswd and mkgroup then, for example, run
mkpasswd -l [-d] > /etc/passwd
mkgroup -l [-d] > /etc/group
Note that the -d switch is necessary for domain users.
[email protected] ~
$ cd h:
System Volume Information
[email protected] /cygdrive/h
$ cd downloads
[email protected] /cygdrive/h/downloads
$ cd charge
[email protected] /cygdrive/h/downloads/charge
$ cd tarbackup/
[email protected] /cygdrive/h/downloads/charge/tarbackup
$ tar -H ustar -c cache.rfs dbdata.rfs movinand.bin factoryfs.rfs recovery.bin
zImage > package_name.tar
[email protected] /cygdrive/h/downloads/charge/tarbackup
$ md5sum -t package_name.tar >> package_name.tar
[email protected] /cygdrive/h/downloads/charge/tarbackup
$ mv package_name.tar package_name.tar.md5
[email protected] /cygdrive/h/downloads/charge/tarbackup
$
Hmm flash did not work with my personal data in it - got an error. Created a new .tar file with just factoryfs.rfs recovery.bin and zImage and was able to flash that. TG for TiBu!
jism31 said:
Thanks for this info imnuts! I unfortunately updated to the new update and would like to go back to rooted but cant until I downgrade.
Click to expand...
Click to collapse
How do you start doing this. How do I get to root shell (#)... Thanks
AD
I plan to get rooted on ED1 so I can get a stock image backed up, and have a clean base to work from. Still getting my head around the odin stuff first.
RaptorMD said:
I plan to get rooted on ED1 so I can get a stock image backed up, and have a clean base to work from. Still getting my head around the odin stuff first.
Click to expand...
Click to collapse
you dont have to do that its already done
http://forum.xda-developers.com/showthread.php?t=1085190
Well, I successfully followed all the instructions and have created my first ODIN flashable file, I have not tried to flash it yet. I'm just curious, I pull all the different .rfs, .bin, and zImage on this file and noticed it's about 1.8gb file. Is this normal?
Also, before I try to flash this. Should I have dissable voodoo lagfix and converted back to rfs before I dumped the files?
Thanks for all the help!
JKChad said:
Well, I successfully followed all the instructions and have created my first ODIN flashable file, I have not tried to flash it yet. I'm just curious, I pull all the different .rfs, .bin, and zImage on this file and noticed it's about 1.8gb file. Is this normal?
Also, before I try to flash this. Should I have dissable voodoo lagfix and converted back to rfs before I dumped the files?
Thanks for all the help!
Click to expand...
Click to collapse
Yes, that's normal for it to be so large as dd will dump the partition, including empty space. If you were to compress it with zip or lzma, it'd drop down considerably.
Not sure about the voodoo part as I've never dumped files from an ext4 partition. I don't see any reason why it wouldn't work, but I'd flash with caution and have another working image ready just in case.
imnuts said:
Not sure about the voodoo part as I've never dumped files from an ext4 partition. I don't see any reason why it wouldn't work, but I'd flash with caution and have another working image ready just in case.
Click to expand...
Click to collapse
Shouldn't be an issue as long as he keeps the voodoo kernel.
Sent from my SCH-I510 using Tapatalk
Anybody try this with voodoo yet ?

[GUIDE] How To Convert ODIN Tars to System.imgs for CWM (and vice versa)

This will probably get moved, but I do believe it is development related because it is important to everyone who flashes ROMs but can't use ODIN for whatever reason (ie Linux/Mac users).
Seeing all the ROM cookers get asked so much to make system.imgs or update.zips to cater to the Linux/Mac users, I decided it was time to tell people how to just convert an ODIN Tar.
I will tell people how to do it on Ubuntu seeing that is what I have (in a VM), but once I have the patience to install Mac OS in a VM, I shall make a guide for that.
Please note that if the factoryfs.rfs is in RFS format (ie it's a stock ROM or it's a ROM by someone who doesn't like EXT4 for whatever reason), you will not be able to do this. The format the factoryfs.rfs is in (EXT2, 4, JFS, whatever) needs to be supported by your Linux kernel. You can check that by doing cat /proc/filesystems
After a lot of investigating, I have learnt that RFS is a broken version of FAT. You could poke around with it and try mounting it as vfat but I don't guarantee success.
ODIN TAR -> System.img
Download your TAR and save it to your Desktop (I will use Kyorarom Ascendency Beta)
Open the TAR with Archive Manager (or whatever you use) and extract the factoryfs.rfs from it to your desktop. You don't need anything else
Open Terminal (under Applications > Accessories)
Go into superuser mode:
Code:
sudo -s
Make a mountpoint for the system:
Code:
mkdir /mnt/system
Mount the image
Code:
mount -o loop ~/Desktop/factoryfs.rfs /mnt/system
Change directory to /mnt and make the tarball for the system.img
Code:
cd /mnt
tar cvf system.img system
Unmount and clean up
Code:
umount /mnt/system
rm -rf /mnt/system
Copy the system.img to your phone
System.img -> ODIN TAR
Download a TAR from another ROM, and the system.img to your desktop.
Open the TAR with Archive Manager (or whatever you use) and extract the factoryfs.rfs from it to your desktop. You don't need anything else
Open Terminal (under Applications > Accessories)
Go into superuser mode:
Code:
sudo -s
Make a mountpoint for the system:
Code:
mkdir /mnt/system
Mount the image
Code:
mount -o loop ~/Desktop/factoryfs.rfs /mnt/system
Change directory to /mnt and make the tarball for the system.img
Code:
cd /mnt
rm -rf system/*
tar xvf ~/Desktop/system.img
Unmount and clean up
Code:
umount /mnt/system
rm -rf /mnt/system
Put the factory.rfs into a TAR and flash it with ODIN.
Done! Hopefully this should all work nicely for everyone.
Nice One... Should be helpful for ROM Developers to provide system.img for their ROM's...
Nice one. Thanks. Though I don't use .imgs still was quite Informative.
Sent from my GT-I5800 using xda premium
Nice tut, on windows they can use adb and dd/ mkyaffs2img
From my fingers to your eyez
cdesai said:
Nice tut, on windows they can use adb and dd/ mkyaffs2img
From my fingers to your eyez
Click to expand...
Click to collapse
Can u pls explain tht furthur.
vsoft11 said:
Can u pls explain tht furthur.
Click to expand...
Click to collapse
Pretty much do the same thing but from in ADB shell, and instead of the command:
Code:
sudo -s
with
Code:
su
and
Code:
tar cvf system.img system
gets changed to
Code:
tar cvf /sdcard/system.img system
Also I'm pretty sure on the phone, /dev/loop0 is called /dev/block/loop0.
I'll probably have to wait until you put up a mac tutorial..
harkan89 said:
I'll probably have to wait until you put up a mac tutorial..
Click to expand...
Click to collapse
As MacOS is basically Unix you should be able to do the same with/on/in a mac when you open a Terminal/Console (forgot how it's called exactly)....
Wouldnt it be easier if you run this commands?
Code:
mount -o loop factoryfs.rfs ~/Desktop/system
tar cvf system.img system
the mount command mounted it succesfully for me
mankokoma said:
As MacOS is basically Unix you should be able to do the same with/on/in a mac when you open a Terminal/Console (forgot how it's called exactly)....
Click to expand...
Click to collapse
Wait a sec.. I have to use adb for this? Cuz I tried the commands as mark mentioned but it didnt turn up any results.. I do recognize some of these commands, so probably it should run on the mac Terminal..
TearsDontFalls said:
Wouldnt it be easier if you run this commands?
Code:
mount -o loop factoryfs.rfs ~/Desktop/system
tar cvf system.img system
the mount command mounted it succesfully for me
Click to expand...
Click to collapse
Because I am foolish. I shall improve the guide later today.
harkan89 said:
Wait a sec.. I have to use adb for this? Cuz I tried the commands as mark mentioned but it didnt turn up any results.. I do recognize some of these commands, so probably it should run on the mac Terminal..
Click to expand...
Click to collapse
I got my Mac VM working so I will use that and make a Mac guide.
hillbeast said:
I got my Mac VM working so I will use that and make a Mac guide.
Click to expand...
Click to collapse
Yaay! Finally!
harkan89 said:
Wait a sec.. I have to use adb for this? Cuz I tried the commands as mark mentioned but it didnt turn up any results.. I do recognize some of these commands, so probably it should run on the mac Terminal..
Click to expand...
Click to collapse
You can use adb too (but these commands should work on a Mac too, as Mac | Linux -- UNIX (based on)
Or you can always use cwm!
is there also a way to convert system.img to tar files...
cdesai said:
You can use adb too (but these commands should work on a Mac too, as Mac | Linux -- UNIX (based on)
Or you can always use cwm!
Click to expand...
Click to collapse
I have superuser enabled on mac.. WHen I try the first command.. mkdir /mnt/system.. it says no such file or directory found.. and losetup is apparently not a command recognized by mac terminal..
mohsin2cool said:
is there also a way to convert system.img to tar files...
Click to expand...
Click to collapse
Yes, I shall make a guide for that after Christmas.
harkan89 said:
I have superuser enabled on mac.. WHen I try the first command.. mkdir /mnt/system.. it says no such file or directory found.. and losetup is apparently not a command recognized by mac terminal..
Click to expand...
Click to collapse
Macs don't use a /mnt directory. They use /Volumes, just like how Ubuntu is moving over to /media.
And I don't think the mach kernel supports losetup type stuff. I will make a Mac guide after Christmas.
HI
If u got the time, Can u pls make a tutorial video for this using adb. Would have bn very helpful.
devc0ol said:
If u got the time, Can u pls make a tutorial video for this using adb. Would have bn very helpful.
Click to expand...
Click to collapse
Sure. I will do it in the coming days.
nice guide, but will it also work if you convert it with CWM recovery?
JasonPurungrit said:
nice guide, but will it also work if you convert it with CWM recovery?
Click to expand...
Click to collapse
What do you mean?

[GUIDE] How to make a nandroid backup directly to your computer without using sdcard

INFORMATION
This guide is intended to make a full backup of your android phone (the entire memory block with all partitions) or a single partition (including sdcards, etc) directly to your computer, in either
Block level (with dd): for single partitions or whole memory block (all partitions in one piece). The backup always has the same size which is the size of the partition.
File level (with tar): only for individual partitions. This only includes files and folders, so occupies much less space, depending on how much filled is the partition.
It can be done with the phone powered on or from ClockWorkMod Recovery (from both ADB works, while in Fastboot doesn't so won't apply). Unless specified the commands meant to be used from Windows. For Linux and Unix is similar.
REQUIREMENTS
Rooted Android Phone
Busybox installed on your phone
If you are using Linux / OS X you have native tools, for Windows download Cygwin, and install with it netcat, pv and util-linux. Get them from Cygwin's setup.exe
ADB installed.
Make sure adb.exe is in your windows' path. See here and here, or use Path Manager.
Android phone with USB Debugging enabled, and the proper drivers installed on Windows so the phone is recognized. Typing 'adb devices' on a terminal should show your device.
PARTITION IDENTIFICATION
You now have to identify the partition or block device that you want to backup. For a single partition you can use either tar or dd, while for the entire memory block you can only use dd.
For example, on Galaxy Nexus you have the list of partitions here and for Galaxy S2 here.
Usually on android, the entire block containing all partitions is located at /dev/block/mmcblk0 and the data partitions is a subpartition of it. You can push parted with GPT support to your device and see all information on a partition or block.
Whole phone memory -> /dev/block/mmcblk0 (may vary, in some phones this is the sdcard)
Subpartitions -> depends on each device. Usually at /dev/block/platform/dw_mmc/by-name/ there are listed by name linking to the real device.
Back up of the whole memory block (via adb)
Connect the phone in ADB mode and unlock the screen.
Open one Cygwin Terminal and enter (replace mmcblk0 if needed):
Code:
adb forward tcp:5555 tcp:5555
adb shell
su
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox dd if=/dev/block/mmcblk0
You will see the cursor blinking at the left. Now the phone is waiting to send the block over the network.
Open another Cygwin terminal and type:
Code:
adb forward tcp:5555 tcp:5555
cd /path/to/store/the/backup
nc 127.0.0.1 5555 | pv -i 0.5 > mmcblk0.raw
You will see how the image size is growing until it finishes. Now you have the whole phone backed up in raw format. You can see the contents of the GPT partition with gptfdisk tool, available for windows, linux and such. See official website and sourceforge to get it. You can do it the same from ClockWorkMod Recovery but you have to mount first the /system partition since the busybox included with clockworkmod does not come with netcat and you have to use the one from the system partition.
With further linux tools you could edit or extract single partitions from the whole block.
You can use adb via wifi as well with applications like WiFi ADB.
Back up of the whole memory block (via wifi)
Original post: [Q] Nandroid directly to computer w/o sdcard
We need to install a FTP server on the computer or the other device, configure a user with a password if we want to, and set some port. It uses by default 21 but this example uses 40. We must set a home dir for the user with write permissions.
Usually is a good idea to put myfifo in /cache not in /data because we may overwrite sensitive data in case we want to use that raw image for data recovery.
Open one Cygwin terminal
Code:
adb shell
su
mkfifo /cache/myfifo
ftpput -v -u user -p pass -P 40 COMPUTER_IP block.raw /cache/myfifo
Open another Cygwin terminal
Code:
adb shell
su
dd if=/dev/block/mmcblk0p12 of=/cache/myfifo
Tips:
- Fifos only can be made on linux native filesystems, for example on a FAT partition is not possible.
- Reading from a partition does not modify it.
Now check on Filezilla Server the speed
Back up of the whole memory block (USB tethering, Wifi tethering)
To use tethering you have to disconnect the computer from all networks and connect it only to the phone with the type of connection you want.
Once you connect it, you can view the IP of the computer and the IP of the phone from connection properties. The ip is the computer ip and the gateway is the phone's ip.
Wifi Tethering: Computer <---Wifi---> Phone <---3G---> Internet
USB Tethering:
Computer <---USB---> Phone <---Wifi---> Internet
Conputer <---USB---> Phone <---3G---> Internet
This is exactly the same as via wifi, except that the transfer speed is much higher because the computer and the phone are directly connected, instead of using a router as a gateway. In this case, the gateway is the phone. USB tethering has the highest transfer rate.
Back up of a single partition (raw = every bit of the partition)
It is exactly the same as the the previous but replacing mmcblk0 by the corresponding partition. You can use in this particular case several software to read the partition from windows, depending on partition filesystem: DiskInternals Linux Reader, Ext2Read, Ext2 File System Driver for Windows, Ext4Explore, plugin for Total Commander and ImDisk Virtual Disk Driver. You can also use recovery software on individual partitions like Recuva in combination with VHD Tool or command line tools included with operating systems.
Back up of a single partition (tar = only files and folders)
In this case, you need the partition mounted. To see the list of mounted partitions type on Cygwin Terminal
Code:
adb shell mount
Now you need to know where is mounted the partition you want to backup, for example the firmware is mounted on /system, which is the ROM.
In this case you will have to open three terminals, because of android limitations:
Open one Cygwin terminal and create a fifo, in /cache, for example, and redirect the tar there
Code:
adb forward tcp:5555 tcp:5555
adb shell
su
/system/xbin/busybox mkfifo /cache/myfifo
/system/xbin/busybox tar -cvf /cache/myfifo /system
We have to do it this way because redirecting the tar to stdout (with - ) is broken on android and will corrupt the tar file.
Open a second Cygwin terminal and type:
Code:
adb forward tcp:5555 tcp:5555
adb shell
su
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox cat /cache/myfifo
Open a third Cygwin terminal and type:
Code:
adb forward tcp:5555 tcp:5555
cd /path/to/store/the/backup
nc 127.0.0.1 5555 | pv -i 0.5 > system.tar
You can browse the tar file with Winrar, Total Commander, PeaZip and almost any compression tool. Note that you shouldn't extract files or edit it since the tar format saves the permission and owner data for each file, that is lost when extracted to FAT / NTFS partitions and you will mess things when restoring.
LINKS
[GUIDE] Internal Memory Data Recovery - Yes We Can!
How to Create and Attach a Virtual Hard Disk in Windows 7
[Guide] Types of Android backups
mohsyn said:
On newer android versions (Im on 7.2) data folder has a folder media which is link to sdcard and one ends up backing up entire sd card. I had a 64gb backup which wasn't necessary
In order to avoid skipping the media folder i had to do some trial and error because busybox tar command is not completely the same as GNU tar.
Would appreciate if you can mention it in the mail guide to use the following command to backup /data folder without copying sdcard files
In first terminal
tar cv --exclude data/media/0 -f /cache/myfifo /data
in 3rd terminal
nc 127.0.0.1 5555 | pv -i 0.5 > data.tar
no change in second terminal
Cheers
Click to expand...
Click to collapse
Umm...how to restore back from computer?
Sent from MARVEL
I am a little new to this, I have installed Android sdk and i am able to see my device by using "adb devices" , i have also installed Cygwin, now i want to backup whole phone memory block so i tried executing the first line on cygin "adb forward tcp:5555 tcp:5555" i get an error saying -bash: adb :command not found.
I am sorry if i am missing any thing, please guide me, and also what do you mean by "download Cygwin, and install with it netcat, pv and util-linux"
Thanx a ton !!
aunriz said:
I am a little new to this, I have installed Android sdk and i am able to see my device by using "adb devices" , i have also installed Cygwin, now i want to backup whole phone memory block so i tried executing the first line on cygin "adb forward tcp:5555 tcp:5555" i get an error saying -bash: adb :command not found.
I am sorry if i am missing any thing, please guide me, and also what do you mean by "download Cygwin, and install with it netcat, pv and util-linux"
Thanx a ton !!
Click to expand...
Click to collapse
You've done almost everything! But you skipped the section "make sure adb is in your path"
Probably you have adb.exe in the path
Code:
C:\Program Files (x86)\android-sdk\platform-tools\adb.exe
So you have to just add it to the Cygwin's path (would be better if you had added it earlier to the windows' path and cygwin will import it automatically but it is ok)
Code:
export PATH="/cygdrive/c/Program Files (x86)/android-sdk/platform-tools":$PATH
Remember to backup the path previously if you want.
Code:
echo $PATH > mypathbackup.txt
scandiun said:
You've done almost everything! But you skipped the section "make sure adb is in your path"
Probably you have adb.exe in the path
Code:
C:\Program Files (x86)\android-sdk\platform-tools\adb.exe
So you have to just add it to the Cygwin's path (would be better if you had added it earlier to the windows' path and cygwin will import it automatically but it is ok)
Code:
export PATH="/cygdrive/c/Program Files (x86)/android-sdk/platform-tools":$PATH
Remember to backup the path previously if you want.
Code:
echo $PATH > mypathbackup.txt
Click to expand...
Click to collapse
Thanks for replying but i cant seem to run the 3rd line , see this
[email protected] ~
$ adb forward tcp:5555 tcp:5555
[email protected] ~
$ adb shell
$ /system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox dd if=/dev/block/mmcblk0
reloc_library[1311]: 10182 cannot locate 'android_reboot'...
CANNOT LINK EXECUTABLE
i hav sucessfully installed busybox v1.14.3, i am not sure what is causing the problem
EDIT:
i found that my directory ws system/bin instead of xbin
so i changed it and first part worked correctly, now i cant seem to get the second part
[email protected] ~
$ adb forward tcp:5555 tcp:5555
[email protected] ~
$ cd c:/
[email protected] /cygdrive/c
$ nc 127.0.0.1 5555 | pv -i 0.5 > mmcblk0.raw
-bash: nc: command not found
-bash: pv: command not found
aunriz said:
[email protected] /cygdrive/c
$ nc 127.0.0.1 5555 | pv -i 0.5 > mmcblk0.raw
-bash: nc: command not found
-bash: pv: command not found
Click to expand...
Click to collapse
You don't have installed pv and netcat on cygwin. Run the setup.exe and install them.
If you run
Code:
whereis pv
whereis nc
should give you some path (in cygwin) but applies similar inside android.
scandiun said:
You don't have installed pv and netcat on cygwin. Run the setup.exe and install them.
If you run
Code:
whereis pv
whereis nc
should give you some path (in cygwin) but applies similar inside android.
Click to expand...
Click to collapse
Now i hav installed cv and nc and commands run sucessfully, but i get the raw file as just 1kb
First terminal:
[email protected] ~
$ adb forward tcp:5555 tcp:5555
adb shell
[email protected] ~
$ adb shell
$ /system/bin/busybox nc -l -p 5555 -e /system/bin/busybox dd if=/dev/block/mmcblk0
/system/bin/busybox nc -l -p 5555 -e /system/bin/busybox dd if=/dev/block/mmcblk0
$
second terminal:
[email protected] ~
$ adb forward tcp:5555 tcp:5555
[email protected] ~
$ cd c:/
[email protected] /cygdrive/c
$ nc 127.0.0.1 5555 | pv -i 0.5 > mmcblk0.raw
55 B 0:00:00 [10.7kiB/s] [<=> ]
[email protected]
No idea what you may be doing wrong
Listen, I appreciate the guide, and it being basically the only one which popped up in google results, I can't gripe too much, but... you really, really need to make it more clear.
The point of a guide is to help a large group of people with varying degrees of knowledge (and if it's a guide targeted at a specific group of people, i.e tech savvy, then it needs to be indicated as such).
With that working definition in place, it follows that you should be as specific as possible; think of *everything*. By doing so, you not only avoid headaches for the people reading the guide, but for yourself as well since you don't have to reply to comments which might've otherwise been avoided.
I would post a question, but I'll probably have figured this out (with a good 1+ hours of searching no doubt) before anyone responds.
Here are some examples of what could be more specific:
"ADB installed." - what is ADB? Where's the link? It's not reasonable to assume people use these tools on a regular basis or remember them.
"You can push parted with GPT support to your device and see all information on a partition or block." - okay, so we know what it does but not how to install it or use it.
"ADB mode" - is this important? What is it? Not sure because it was glossed over.
These are just some examples. It's not the most horrendous trespass ever committed, but definitely annoying. Just spell it out from one step to the next, it works far better than topics with subheadings and unintuitive concepts being assumed as general knowledge on the behalf of noobs like me.
Edit: I'm just going to take everything off my SD card, use nandroid, and then copy the nandroid backup to computer as well. Please improve the guide, thanks.
Greatly appreciate this!
For me, a long-time UNIX and Linux administrator, this little guide was a breath of fresh air. Scandiun, *Thank You* for putting it together. It makes perfect sense to me -- just treat the phone as the linux machine it is. I'm becoming convinced that most of the more recent "developers" hanging around the android community have never used a linux machine before -- they don't seem to know what's going on, they go way out of their way to write overkill tools to do things clumsily that can already be done cleanly and quickly from the command line, and then they wrap those tools in so much mystery, black magic, and script-kiddie terminology that I can't figure out what they do either, and I certainly don't trust them doing things to my phone.
For example, I've got a new Galaxy S3, and just wasted a whole day digging around on xda, reviewing all of the "kewl rooting mods" until I got sick of it. Why the *heck* are people flashing entire partitions just to install a setuid /system/xbin/su on these devices? The rooting method I wound up using was dirt simple -- just find an rc exploit and use it to install an 'su' binary, by typing a few commands via adb. I used a variation of the exploit mentioned in http://seclists.org/fulldisclosure/2012/Aug/171, and elaborated in http://forum.xda-developers.com/showthread.php?t=1790104, http://forum.xda-developers.com/showthread.php?t=1792342, http://galaxys3root.com/galaxy-s3-root/how-to-root-u-s-canadian-dual-core-galaxy-s3-on-mac-osx/, and http://forum.xda-developers.com/showthread.php?t=1827518. If you are a UNIX person, you'll recognize what's going on with that exploit and be able to come up with something that suits your own needs. If you aren't a UNIX person, then you'll be completely lost. Sorta like this guide.
For anyone who doesn't yet know what adb is, or who's never used standard UNIX/Linux tools like dd, netcat, gparted, or busybox, I agree that this guide is not only not going to help you, but may actually aid you in shooting yourself in the foot with extreme efficiency. But please don't criticize or nag the OP in return for helpful advice freely given. You won't learn much about UNIX tools on an Android-related web site in any case. I recommend starting with a Linux systems administration book -- the Nemeth series is always good. But if you do take that route, you need to expect to take time to learn the basics.
Absolutely beautiful!
Thank you for this work. I was able to recover deleted files from my Galaxy Nexus' internal memory using this technique. I made a [GUIDE] using most of what you accomplished here: http://forum.xda-developers.com/showthread.php?p=34185439
Thank you, thank you, thank you! It can't be said enough. I had family photos that I would not have been able to reproduce. Much love to you and yours!
:good: :highfive: :victory:
so did anyone dare to restore the drive (all of storage, everything !)? without bricking the thing ?
mai77 said:
so did anyone dare to restore the drive? w.o bricking the thing ?
Click to expand...
Click to collapse
What drive? A partition?
scandiun said:
If you are using Linux / OS X you have native tools, for Windows download Cygwin, and install with it netcat, pv and util-linux. Get them from Cygwin's setup.exe
Click to expand...
Click to collapse
netcat is obsolete (mark to even find it) install net / nc instead
---------- Post added at 01:03 PM ---------- Previous post was at 01:03 PM ----------
scandiun said:
What drive? A partition?
Click to expand...
Click to collapse
all of storage I mean. the full monty ...
----------------------
parted seems to not work fully with Samsung galaxy Y = SGY proprietary rfs filesystem
on SGY mmcblk0 gives you the sd card, not internal storage with android.
backing up my sd card was a thing I could even do before I read this (lol)
mai77 said:
netcat is obsolete (mark to even find it) install net / nc instead
Click to expand...
Click to collapse
nc is an abbreviation for netcat. On Cygwin, you choose to install either, but for the original, written by the *Hobbit*, that allows direct execution of commands with -e and -t, you have to uncheck "Hide obsolete packages" on Cygwin's setup.exe.
The two of them are here:
Netcat 1.10 (netcat.traditional): http://www.netgull.com/cygwin/release-legacy/netcat/
Netcat 1.107 (netcat.openbsd): http://www.netgull.com/cygwin/release/nc/
mai77 said:
parted seems to not work fully with Samsung galaxy Y = SGY proprietary rfs filesystem
on SGY mmcblk0 gives you the sd card, not internal storage with android.
backing up my sd card was a thing I could even do before I read this (lol)
Click to expand...
Click to collapse
Can you post where is your whole memory block then or even the PIT file for that phone? You have an example here:
[Info] List of Samsung Galaxy S2 GT-I9100 devices and partitions
scandiun said:
Can you post where is your whole memory block then or even the PIT file for that phone? You have an example here:
[Info] List of Samsung Galaxy S2 GT-I9100 devices and partitions
Click to expand...
Click to collapse
I don't know where the "whole memory block" is or what it is. is it internal storage = NAND ?
here is the pit file:
mai77 said:
I don't know where the "whole memory block" is or what it is. is it internal storage = NAND ?
Click to expand...
Click to collapse
Yes it is the NAND. See your pit analysis here:
[INFO] Samsung Galaxy Y GT-S5360 PIT File Analysis
OK
scandiun said:
Yes it is the NAND. See your pit analysis here:
[INFO] Samsung Galaxy Y GT-S5360 PIT File Analysis
Click to expand...
Click to collapse
very interesting tool.
but how do I backup NAND in one piece on SGY ?
mmcblk0 = sd card
???blk0 = NAND
it must be somewhere ...
mai77 said:
but how do I backup NAND in one piece on SGY ?
mmcblk0 = sd card
???blk0 = NAND
it must be somewhere ...
Click to expand...
Click to collapse
Is almost sure that is under /dev/block. Please post the output of
Code:
ls -lR /dev/block

[q] loop devices

how i am know if my tablet "loop devices" support
or how i am kae him to suport loop devices
Code:
cd /sdcard/wherever/
cp /proc/config.gz ./
gunzip ./config.gz
cat ./config | grep LOOP
"LOOP" must be in all caps, or it won't work.
thanks
EndlessDissent said:
Code:
cd /sdcard/wherever/
cp /proc/config.gz ./
gunzip ./config.gz
cat ./config | grep LOOP
"LOOP" must be in all caps, or it won't work.
Click to expand...
Click to collapse
thanks bat you say
Code:
cd /sdcard/wherever/
bat what it is
Code:
wherever
what i am need put there
or how i am loop my device
mihael1996 said:
thanks bat you say
Code:
cd /sdcard/wherever/
bat what it is
Code:
wherever
what i am need put there
or how i am loop my device
Click to expand...
Click to collapse
It means to just cd wherever you like. It doesn't matter where you unzip the file. Just do it in whatever folder you want. All those commands do is copy the kernel configuration to whichever folder you're in, unzip it, search for the loop device configuration options, and print it to the screen.
EndlessDissent said:
It means to just cd wherever you like. It doesn't matter where you unzip the file. Just do it in whatever folder you want. All those commands do is copy the kernel configuration to whichever folder you're in, unzip it, search for the loop device configuration options, and print it to the screen.
Click to expand...
Click to collapse
realy thank you
can you say to me from where downlode this zip file ?
from here it ok ? http://forum.xda-developers.com/showthread.php?t=2246062
and do you have a skype ?
mihael1996 said:
realy thank you
can you say to me from where downlode this zip file ?
from here it ok ? http://forum.xda-developers.com/showthread.php?t=2246062
and do you have a skype ?
Click to expand...
Click to collapse
You're not supposed to download anything. You just use the commands I posted to copy and read your current kernel config. It's all on the tablet already. You just need to type the commands.
If you want to know if that kernel supports loop devices, you could flash it before running the commands I posted. Or, just ask in the thread.
No, I don't have Skype. I hate Microsoft and everything they touch.
where i am put this commands ?
Terminal Emulator

Categories

Resources