[Q] How to make an Odin Flashable Rom? - Captivate Q&A, Help & Troubleshooting

I was wondering if it is possible to make an Odin flashable ROM with only the CWM ROM? If not how could i make a Odin flashable ROM?

How to make an Odin flashable ROM
This needs a UNIX compatible OS - like Linux or Mac OS X.
On Windows, you can use "Cygwin".
Use the dd (datadump) command to make the .rfs files
Of course you need to connect your phone via USB and have ADB prepared on your computer.
# Get Root access first
Code:
su
# Do this first to mount the /system R/W
Code:
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
# Dump the needed data / partitions to your /sdcard
Code:
dd if=/dev/block/stl9 of=/sdcard/factoryfs.rfs bs=4096
dd if=/dev/block/stl11 of=/sdcard/cache.rfs bs=4096
dd if=/dev/block/bml7 of=/sdcard/zImage bs=4096
dd if=/dev/block/bml12 of=/sdcard/modem.bin bs=4096
# Make the tar ball
Code:
tar -H ustar -c factoryfs.rfs cache.rfs modem.bin zImage > darky.tar
# MD5 it for a security check
Code:
md5sum –t darky.tar >> darky.tar
# Rename the tar file
Code:
mv darky.tar darky.tar.md5
Optional:
Make your own pit file
The pit file is used to set the partition layout (Partition Information Table).
# Dump the pit
Code:
dd if=/dev/block/bml2 of=/sdcard/darky.pit bs=4096
I hope I could help you with that
- darkyy.

Didnt workd
@Darky Didnt workd for my galaxy-FIT

pratyush.creed said:
@Darky Didnt workd for my galaxy-FIT
Click to expand...
Click to collapse
maybe because your galaxy-FIT is an entirely different device???

How doing this using phone runing cyanogenmod7?
Hey darky, how can i do this with a phone runing cyanogenmod 7? and after doing that, how can i install the rom with odin?
Thanks ;-)

http://forum.xda-developers.com/showthread.php?t=1082288

Don't work, i have the same error /dev/block/stl10: cannot open for read: Nosuch file or directory

Related

[Q] What Is The Best Way To Clone Multiple Tablets?

I am wanting to clone a set configuration with certain apps, settings, wallpaper, etc to about 100 or more tablets.
I used the following process listed below to backup the master tablet and then tried to restore one of the others using Odin and the .tar file I created. I get a failed when trying to restore. I have recreated the backup and tried on a few different tablets with no luck. I would greatly apprciate it if someone could help out with this! If it is better to use Heimdall instead, what would be the steps to create a proper backup for it?
Here's what I was doing:
System:
Code:
dd if=/dev/block/stl10 of=/sdcard/factoryfs.rfs bs=4096Kernel:
Code:
dd if=/dev/block/bml8 of=/sdcard/zImage bs=4096Recovery:
Code:
dd if=/dev/block/bml9 of=/sdcard/recovery.bin bs=4096
Cache:
Code:
dd if=/dev/block/mmcblk0p3 of=/sdcard/cache.rfs bs=4096DBData:
Code:
dd if=/dev/block/stl11 of=/sdcard/dbdata.rfs bs=4096Data:
Code:
dd if=/dev/block/mmcblk0p1 of=/sdcard/movinand.bin bs=4096
Code:
tar -H ustar -c cache.rfs dbdata.rfs data.rfs factoryfs.rfs recovery.bin zImage > package_name.tar
md5sum -t backup.tar >> backup.tar
mv package_name.tar package_name.tar.md5
Anyone point me in the right direction on this?
Thanks!
shockaholic said:
Anyone point me in the right direction on this?
Thanks!
Click to expand...
Click to collapse
If the tabs are identical I would've used nandroid backup for that.
K.

[Q] How to make own odin GT-I9000

I try to break down to understand from original firmware. I would like to discuss with anyone who expertise to solve understanding about odin system for GT-I9000. Anyone can give input in this thread to more understand newbie like me.
I not sure which the correct to follow to make own odin.
I tried to read and following from these threads:
http://forum.xda-developers.com/showthread.php?t=960946
http://forum.xda-developers.com/showthread.php?t=1082288
http://forum.xda-developers.com/showthread.php?t=965190
http://forum.xda-developers.com/showthread.php?t=850359
So there are others files
Boot Loader File(s) contain: boot.bin, Sbl.bin
PDA File(s) contain: boot.bin, Sbl.bin, param.lfs, factoryfs.rfs, dbdata.rfs, efs.rfs*, zImage
PHONE File(s) contain: modem.bin
CSC File(s) contain: cache.rfs
* efs.rfs it seem not really include when creating PDA file.
On the adb shell I type 'mount' and these below are strip off the lists:
$ mount
/dev/block/stl9 /system rfs rw
/dev/block/stl3 /efs rfs rw
/dev/block/mmcblk0p2 /data rfs rw
/dev/block/stl10 /dbdata rfs rw
/dev/block/stl11 /cache rfs rw
/dev/block/stl6 /mnt/.lfs j4fs rw
/dev/block/vold/179:1 /mnt/sdcard vfat rw
/dev/block/vold/179:9 /mnt/sdcard/external_sd vfat rw
/dev/block/vold/179:9 /mnt/secure/asec vfat rw
Click to expand...
Click to collapse
Boot Loader File(s):
boot.bin
Function: Boot Loader (Optional)
Code:
dd if=/dev/block/bml1 of=/sdcard/odin/boot.bin bs=4096
Click to expand...
Click to collapse
Sbl.bin
Function: Boot Loader (Optional)
Code:
dd if=/dev/block/bml4 of=/sdcard/odin/Sbl.bin bs=4096
Click to expand...
Click to collapse
Click to expand...
Click to collapse
PDA File(s):
factoryfs.rfs
Function: System/Main Package
Mount: /dev/block/stl9 /system
Code:
dd if=/dev/block/stl9 of=/sdcard/odin/factoryfs.rfs bs=4096
Click to expand...
Click to collapse
dbdata.rfs
Function: File system + user database
Mount: /dev/block/stl10 /dbdata
Code:
dd if=/dev/block/stl10 of=/sdcard/odin/dbdata.rfs bs=4096
Click to expand...
Click to collapse
param.lfs
Function: Boot Animation
Code:
dd if=/dev/block/stl6 of=/sdcard/odin/param.lfs bs=4096
Click to expand...
Click to collapse
efs.rfs
Function: N.A. (Still find out)
Code:
dd if=/dev/block/stl3 of=/sdcard/odin/efs.rfs bs=4096
Click to expand...
Click to collapse
Sbl.bin
Function: Boot Loader
Code:
dd if=/dev/block/bml4 of=/sdcard/odin/Sbl.bin bs=4096
Click to expand...
Click to collapse
zImage
Function: Kernel
Code:
dd if=/dev/block/bml7 of=/sdcard/odin/zImage bs=4096
Click to expand...
Click to collapse
Click to expand...
Click to collapse
PHONE File(s):
modem.bin
Function: Modem country/regional
Code:
dd if=/dev/block/bml12 of=/sdcard/odin/modem.bin bs=4096
Click to expand...
Click to collapse
Click to expand...
Click to collapse
CSC File(s):
cache.rfs
Function: CSC code/Sales country code/Cache/Telco
Mount: /dev/block/stl11 /cache
Code:
dd if=/dev/block/stl11 of=/sdcard/odin/cache.rfs bs=4096
Click to expand...
Click to collapse
Click to expand...
Click to collapse
PIT File(s):
Function: Partition Information (PIT)
Code:
dd if=/dev/block/bml2 of=/sdcard/odin/pit.pit bs=4096
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Recovery:
Function: N.A. (Still find out)
Code:
dd if=/dev/block/bml9 of=/sdcard/odin/recovery.bin bs=4096
Click to expand...
Click to collapse
Data:
Function: N.A. (Still find out)
Code:
dd if=/dev/block/mmcblk0p1 of=/sdcard/odin/movinand.bin bs=4096
Click to expand...
Click to collapse
Description:
Mount is the command when execute on terminal or adb shell.
Dump is the command to execute using 'adb shell'.
CREATE ODIN FILE
Bootloader
Code:
tar -c boot.bin sbl.bin >> Bootloader.tar
Creating a PDA.tar.md5
Code:
tar -c boot.bin sbl.bin param.lfs factoryfs.rfs dbdata.rfs zImage >> PDA.tar
md5sum -t PDA.tar >> PDA.tar
mv PDA.tar PDA.tar.md5
Or single command with multiple batch for PDA.
tar -c boot.bin sbl.bin param.lfs factoryfs.rfs dbdata.rfs zImage >> PDA.tar ; md5sum -t PDA.tar >> PDA.tar ; mv PDA.tar PDA.tar.md5
Click to expand...
Click to collapse
Creating a Phone.tar.md5
Code:
tar -c modem.bin >> Phone.tar
md5sum -t Phone.tar >> Phone.tar
mv Phone.tar Phone.tar.md5
Or single command with multiple batch for PHONE.
tar -c modem.bin >> Phone.tar ; md5sum -t Phone.tar >> Phone.tar ; mv Phone.tar Phone.tar.md5
Click to expand...
Click to collapse
Creating a CSC.tar.md5
Code:
tar -c cache.rfs >> CSC.tar
md5sum -t CSC.tar >> CSC.tar
mv CSC.tar CAC.tar.md5
Or single command with multiple batch for PHONE.
tar -c cache.rfs >> CSC.tar ; md5sum -t CSC.tar >> CSC.tar ; mv CSC.tar CAC.tar.md5
Click to expand...
Click to collapse
Simplify command for creating PDA only:
Code:
dd if=/dev/block/stl9 of=/sdcard/factoryfs.rfs bs=4096
dd if=/dev/block/stl11 of=/sdcard/cache.rfs bs=4096
dd if=/dev/block/bml7 of=/sdcard/zImage bs=4096
dd if=/dev/block/bml12 of=/sdcard/modem.bin bs=4096
tar -c factoryfs.rfs cache.rfs modem.bin zImage >> JustPDA.tar
md5sum -t JustPDA.tar >> JustPDA.tar
mv JustPDA.tar JustPDA.tar.md5
Reserved for future use.
Reserved for future use.
YES!
On-phone developing is the way to go. Start with a firmware from SamFirmwares.com. keep it safe. Do your modifications using the techniques I laid out here: http://forum.xda-developers.com/showthread.php?t=1030107 Then when you are finished, use the methods above.
Now, the reason you kept the SamFirmwares.com original firmware safe.... You'll need the partition information table PIT for an extra level of security when distributing your new ROM. For extra cool points, wrap it up in a Heimdall TAR.GZ firmware package, then make it a one-click with Heimdall One-Click (not yet finished).
btw.. to save space in the firmware package, you can omit the cache file, or clear your cache, then adb into your phone in recovery mode and grab it there... The cache file is regenerated when the user selects to clear cache.
The data partition is the temporary storage area for apps, also some apps default to the data area for storage.... It's also a good place to deploy binaries that you want to execute. It cannot be flashed by Odin protocol though.... It's the "extra" space on the disk left over after the partitioning.
AdamOutler said:
YES!
Now, the reason you kept the SamFirmwares.com original firmware safe.... You'll need the partition information table PIT for an extra level of security when distributing your new ROM. For extra cool points, wrap it up in a Heimdall TAR.GZ firmware package, then make it a one-click with Heimdall One-Click (not yet finished).
Click to expand...
Click to collapse
Are you saying that I shall keep the original PIT file rather then dumped PIT file from above method? (dd if=/dev/block/bml2 of=/sdcard/odin/pit.pit bs=4096) ?
AdamOutler said:
btw.. to save space in the firmware package, you can omit the cache file, or clear your cache, then adb into your phone in recovery mode and grab it there... The cache file is regenerated when the user selects to clear cache.
Click to expand...
Click to collapse
So I don't need to use cache.rfs (dd if=/dev/block/stl11 of=/sdcard/cache.rfs bs=4096)?
AdamOutler said:
The data partition is the temporary storage area for apps, also some apps default to the data area for storage.... It's also a good place to deploy binaries that you want to execute. It cannot be flashed by Odin protocol though.... It's the "extra" space on the disk left over after the partitioning.
Click to expand...
Click to collapse
Or I should use it? before dumped the cache I shall do factory reset, clear dalvik cache and wipe battery stat?
how to create own Odin files
i done that you wrote here but i still miss Data:
all without DATA

[Q] How to convert stock ROM from rfs to ext4?

Hi sorry if i sound noob but i would like to try converting my stock rom from .rfs to ext4 without breaking anything (My setup is exactly as described in my signature). I understand that ketut has created a script to make this happen.
ketut.kumajaya said:
Just want to share my command list to convert Galaxy Ace firmware from rfs to ext4.
Code:
cd /home/user/rfs2ext4
dd if=/dev/zero of=system.rfs bs=4096 count=53696
losetup /dev/loop0 system.rfs
mkfs.ext4 -T ext4 -b 4096 -m 0 -J size=4 -O ^resize_inode,^ext_attr,^huge_file,^has_journal /dev/loop0
tune2fs -c 100 -i 100d -m 0 /dev/loop0
mkdir /tmp/ext4
sudo mount /dev/loop0 /tmp/ext4
chmod 755 fix-*.sh
cp fix-*.sh /tmp
mkdir /tmp/rfs
sudo mount -o loop source/system.rfs /tmp/rfs
sudo cp -a /tmp/rfs/* /tmp/ext4
cd /tmp/ext4
sudo ../fix-system.sh
cd /home/user/rfs2ext4
sudo umount /tmp/ext4
sudo umount /tmp/rfs
dd if=/dev/zero of=data.rfs bs=4096 count=46400
losetup /dev/loop0 data.rfs
mkfs.ext4 -T ext4 -b 4096 -m 0 -J size=16 -O ^resize_inode,^ext_attr,^huge_file /dev/loop0
tune2fs -c 100 -i 100d -m 0 /dev/loop0
mount /dev/loop0 /tmp/ext4
sudo mount -o loop source/data.rfs /tmp/rfs
sudo cp -a /tmp/rfs/* /tmp/ext4
cd /tmp/ext4
sudo ../fix-data.sh
cd /home/user/rfs2ext4
sudo umount /tmp/ext4
sudo umount /tmp/rfs
dd if=/dev/zero of=csc.rfs bs=4096 count=6464
losetup /dev/loop0 csc.rfs
mkfs.ext4 -T ext4 -b 4096 -m 0 -J size=4 -O ^resize_inode,^ext_attr,^huge_file /dev/loop0
tune2fs -c 100 -i 100d -m 0 /dev/loop0
mount /dev/loop0 /tmp/ext4
sudo mount -o loop source/csc.rfs /tmp/rfs
sudo cp -a /tmp/rfs/* /tmp/ext4
cd /tmp/ext4
sudo ../fix-csc.sh
cd /home/user/rfs2ext4
sudo umount /tmp/ext4
sudo umount /tmp/rfs
tar -H ustar -c boot.img recovery.img data.rfs system.rfs > CODE_S5830XWKPN_CL375596_REV03_blackhawk.tar
md5sum -t CODE_S5830XWKPN_CL375596_REV03_blackhawk.tar >> CODE_S5830XWKPN_CL375596_REV03_blackhawk.tar
mv CODE_S5830XWKPN_CL375596_REV03_blackhawk.tar CODE_S5830XWKPN_CL375596_REV03_blackhawk.tar.md5
tar -H ustar -c csc.rfs > CSC_S5830OXXKP7_CL375596_REV03_blackhawk.tar
md5sum -t CSC_S5830OXXKP7_CL375596_REV03_blackhawk.tar >> CSC_S5830OXXKP7_CL375596_REV03_blackhawk.tar
mv CSC_S5830OXXKP7_CL375596_REV03_blackhawk.tar CSC_S5830OXXKP7_CL375596_REV03_blackhawk.tar.md5
tar -H ustar -c arm11boot mibib oemsbl qcsbl > APBOOT_S5830XWKPN_CL375596_REV03.tar
md5sum -t APBOOT_S5830XWKPN_CL375596_REV03.tar >> APBOOT_S5830XWKPN_CL375596_REV03.tar
mv APBOOT_S5830XWKPN_CL375596_REV03.tar CAPBOOT_S5830XWKPN_CL375596_REV03.tar.md5
tar -H ustar -c amss > MODEM_S5830XWKP6_CL375596_REV03.tar
md5sum -t MODEM_S5830XWKP6_CL375596_REV03.tar >> MODEM_S5830XWKP6_CL375596_REV03.tar
mv MODEM_S5830XWKP6_CL375596_REV03.tar MODEM_S5830XWKP6_CL375596_REV03.tar.md5
Click to expand...
Click to collapse
My question is how do you do it? Do you create a .sh script with this and then just run it using script manager or do you have to run this script in recovery?
Thanks
you can do this without scipt it's easy, first,flash CF-Root kernel in recovery , then go to the app drawer then open the EXT4 app, then covert to ext4 this operation will take about 2-3 min in recovery,of course you need to have CWM4,at the end it wiil reboot you phone so enjoy it
Press the thanks butom if I helped
that ketut's script can only be use on odin files, cannot be use on already installed rom. btw cfroot ext4manager app should be able to do it directly from the phone.
slaid480 said:
you can do this without scipt it's easy, first,flash CF-Root kernel in recovery , then go to the app drawer then open the EXT4 app, then covert to ext4 this operation will take about 2-3 min in recovery,of course you need to have CWM4,at the end it wiil reboot you phone so enjoy it
Press the thanks butom if I helped
Click to expand...
Click to collapse
already have CF Root kernel and CWM 5.0.26
an0nym0us_ said:
that ketut's script can only be use on odin files, cannot be use on already installed rom. btw cfroot ext4manager app should be able to do it directly from the phone.
Click to expand...
Click to collapse
ketut mentioned it is possible to do so on a pre-existing ROM but he doesn't recommend it haha.
Hmmm, i do not know why i don't have the ext4manager app even though i am on CF Root b82 kernel. Do i have to download the ext4manager app separately?
=====================================================================================================================
EDIT
I found the ext4manager on chainfire's post. Will install v1.3 and do the necessary file system conversion... and pray it works!
=========================================================
Update
It was my tardiness that led me to use chainfire's original ext4manager where i should have been using the version modified by ketut!
It worked like a breeze, install and the whole thing was done under a minute in recovery. I am very very happy with the results for i managed to gain about 400 points in Quadrant. Well, i couldn't get a OC kernel to work with my Stock ROM but this mod is ain't exactly that bad in coaxing out some performance.
slaid480 said:
you can do this without scipt it's easy, first,flash CF-Root kernel in recovery , then go to the app drawer then open the EXT4 app, then covert to ext4 this operation will take about 2-3 min in recovery,of course you need to have CWM4,at the end it wiil reboot you phone so enjoy it
Press the thanks butom if I helped
Click to expand...
Click to collapse
hey i have installed and tried that but it seems like ext4 manager is showing no ext4 partitions found ? did it converted to ext4 or still am on rfs
Lijop said:
hey i have installed and tried that but it seems like ext4 manager is showing no ext4 partitions found ? did it converted to ext4 or still am on rfs
Click to expand...
Click to collapse
did you use ext4manager from ketut's thread?
http://forum.xda-developers.com/attachment.php?attachmentid=714285&d=1315543936
ext4manager MUST detect your cf root kernel. if it does, it will automatically show the various partitions and the file system applicable.
happily1986 said:
did you use ext4manager from ketut's thread?
http://forum.xda-developers.com/attachment.php?attachmentid=714285&d=1315543936
ext4manager MUST detect your cf root kernel. if it does, it will automatically show the various partitions and the file system applicable.
Click to expand...
Click to collapse
CF-Root-S5830-v3.7-b82-ex. am using this. chainfire stuff
Lijop said:
CF-Root-S5830-v3.7-b82-ex. am using this. chainfire stuff
Click to expand...
Click to collapse
thats just the kernel itself. scroll down and find CF Root S5830 ext4 v1.3 in the post by ketut if you want to. btw the link i posted earlier on is the actual download link for the ext4 manager that has been modified to work for S5830 by ketut.
Will this method work on all Galaxy ACE versions. My wife has the version for Latin America, same as the one sold in Brazil and Chile.
Not sure about the ROM version for this one though.
Does stock ROM kernel even support ext4???
could u help for installing CF Root ?
i have a stock rom 2.3.3
thanks in advance
http://acetips.wordpress.com/2011/10/11/flash-cf-root-ace-gb/
ducutu said:
http://acetips.wordpress.com/2011/10/11/flash-cf-root-ace-gb/
Click to expand...
Click to collapse
Like a Michael Jackson music video...

[I9001] [SCRIPT] [ODIN] How to create an Odin package from a cwm-zip (or backup)

The script (see below) works as follows:
1. It takes the correct files from the BaseRom folder and copies them to the BuildOdin folder
2. If boot or recovery images exist in NewRom folder (extracted from the cwm zip) it will copy them to the BuildOdin folder too
3. It will create the system.img.ext4 file in the BuildOdin folder
4. It will copy the system folder in the NewRom folder to the system.img.ext4 file
5. It will tar and md5 the files in BuildOdin folder
So make sure you have:
1. The adsp.mbn, amss.mbn, cache.img.ext4 and preload.img.ext4 in the BaseRom folder
2. The boot.img and recovery.img in the NewRom folder (or BaseRom)
3. The system folder in the NewRom folder
And run the script
Code:
#!/bin/sh
echo 'Requesting password to allow running as root...'
sudo echo 'Thanks :)!'
# Make folder
if [ ! -d "BuildOdin" ]
then
mkdir BuildOdin
fi
# Copy BaseRom files
cp BaseRom/adsp.mbn BuildOdin/adsp.mbn
cp BaseRom/amss.mbn BuildOdin/amss.mbn
cp BaseRom/cache.img.ext4 BuildOdin/cache.img.ext4
cp BaseRom/preload.img.ext4 BuildOdin/preload.img.ext4
# Copy boot image
if [ -s NewRom/boot.img ]
then
cp NewRom/boot.img BuildOdin/boot.img
else
cp BaseRom/boot.img BuildOdin/boot.img
fi
# Copy recovery image
if [ -s NewRom/recovery.img ]
then
cp NewRom/recovery.img BuildOdin/recovery.img
else
cp BaseRom/recovery.img BuildOdin/recovery.img
fi
# Create system image
mysyssize=`du -s -h NewRom/system | awk 'BEGIN{FS="[M]"} {print $1}'`
mysyssizeincreased=$((mysyssize+50))
echo 'Filesize will be' $mysyssizeincreased 'MB'
echo 'dd empty image...'
dd if=/dev/zero of=BuildOdin/system.img.ext4 bs=1M count=$mysyssizeincreased >&- 2>&-
echo 'make it ext4...'
mke2fs -F -T ext4 BuildOdin/system.img.ext4 >&- 2>&-
echo 'mounting...'
sudo mount -t ext4 -o loop BuildOdin/system.img.ext4 /mnt >&- 2>&-
echo 'copying system...'
cp NewRom/system/* /mnt -rp
sync
echo 'unmounting...'
sudo umount /mnt
# Create Odin and Odin MD5 files
cd BuildOdin
echo 'tarring...'
tar -cf MyOdinpack.tar adsp.mbn amss.mbn boot.img cache.img.ext4 preload.img.ext4 recovery.img system.img.ext4
echo 'copying...'
cp MyOdinpack.tar MyOdinpack.tar.md5
echo 'md5sum...'
md5sum -t MyOdinpack.tar>>MyOdinpack.tar.md5
echo 'done!'
It looks like it works. I do have some stuff I am wondering about:
1. I have added 50 MB to the filesize, with 30 MB additional I still got a not enough diskspace error. Wondering why...
2. Will it work this way? When looking at a cwm-zip it does contain a system folder but they also contain some other stuff... who knows... anyone care to test?
Well, looks like it's not all that easy. The script works, it creates a file with the exact same files as the one created with dd on the device, but for some reason when using it in Odin, it doesn't work...
Creating the Odin package is superfast now, but will still require some more testing. I guess I should do it with a ROM that I have done before... but too lazy atm...
Btw, this way I could create an Odin package from a CWM backup too If ever needed, just let me know
Regards,
Nika.
you could try making system.img file, then rename it to system.img.ext4. Sound foolish probably, but sometimes these double extensions are just added as an indicator. in this case for the system to look up what partition type to take. (I could be horribly wrong tho. But there are like 0 tools on internet for an ext4 maker so not many options available)
Maybe create an empty ext4 image on PC, mount loopback in cwm and copy files to it.
Sent from my GT-I9001 using XDA App
Create image on your phone using busybox
Edit: I updated the script.
I played a bit with the busybox:
my working dir is /sdcard/external_sd/imgtest!
DD a file of ~300MB
busybox dd if=/dev/zero of=myimg.img bs=1M count=300
Create a ext4 filesystem on this img
busybox mke2fs -F -T ext4 -L Image myimg.img
Create a new /dev node, named "loop99", type "block device" (b), and some major and minor number
busybox mknod /dev/block/loop99 b 7 99
Prepare your new loop device with an img file (delete is with losetup -d /dev/block/loop99)
busybox losetup /dev/block/loop99 /sdcard/external_sd/imgtest/myimg.img
Mount it finally
busybox mount /dev/block/loop99 /sdcard/external_sd/imgtest/mymnt
Now you may copy what you want, say /system, to this img.
And unmount it (make sure it's not in use anymore)
busybox umount /dev/block/loop99
Maybe invoke some commands to check the size of /system? A quick one liner would be
busybox df /system -h | grep /system | awk 'BEGIN{FS="[M]"} {print $2}' | awk 'BEGIN{FS="[.]"} {print $1}'
Could be part of the shell script, saved to a variable and increased by some MB just to make sure^^
A very quick and dirty script:
#!/bin/sh
mysyssize=`busybox df /system -h | grep /system | awk 'BEGIN{FS="[M]"} {print $2}' | awk 'BEGIN{FS="[.]"} {print $1}'`
mysyssizeincreased=$((mysyssize+20))
mkdir /sdcard/external_sd/myimages
mkdir /sdcard/mnt/
mkdir /sdcard/mnt/mymnt
cd /sdcard/external_sd/myimages
echo Filesize is $mysyssizeincreased
echo Now dd a new image for your folder
echo dd in progress...
busybox dd if=/dev/zero of=myimgfile.img bs=1M count=$mysyssizeincreased
echo mke2fs with type ext4 on your file...
busybox mke2fs -F -T ext4 -L Imagename myimgfile.img
echo create new dev-node...
busybox mknod /dev/block/loop99 b 7 99
echo apply loopback setup on this node...
busybox losetup /dev/block/loop99 /sdcard/external_sd/myimages/myimgfile.img
echo mounting new image...
busybox mount /dev/block/loop99 /sdcard/mnt/mymnt
echo done!
echo
echo now copy your system files over preserving permissions...
cp /system/* /sdcard/mnt/mymnt -rp
sync
busybox umount /sdcard/mnt/mymnt
losetup -d /dev/block/loop99
rm /dev/block/loop99
echo done!
echo done!
echo done!
echo
Click to expand...
Click to collapse
Save as a .sh script and execute it. I tried with some ssh server on phone and shell on my PC.
Worked fine, but to be sure a test with a restore would be needed, so treat it as highly experimental.
Very nice, much appreciated!!! Will try (convert) them on ubuntu one of these days as I'd prefer to do the job on a dual-cpu machine
Well then you should skip the steps with mknod and so on. Mount is much more powerful there, so you should be able to do it with these commands:
dd if=/dev/zero of=/tmp/image bs=1M count=300
mkfs.ext4 /tmp/image
mount -o loop /tmp/image /mnt
Hmmm... getting a "is not a block special device" message when ext4-ing in linux. Either the command file is incorrect, or I need to suppress that message somehow... more news soon
Okay!! Here's the first version of the script:
Code:
#!/bin/sh
echo 'Requesting password to allow running as root...'
sudo echo 'Thanks :)!'
# Make folder
if [ ! -d "BuildOdin" ]
then
mkdir BuildOdin
fi
# Copy BaseRom files
cp BaseRom/adsp.mbn BuildOdin/adsp.mbn
cp BaseRom/amss.mbn BuildOdin/amss.mbn
cp BaseRom/cache.img.ext4 BuildOdin/cache.img.ext4
cp BaseRom/preload.img.ext4 BuildOdin/preload.img.ext4
# Copy boot image
if [ -s NewRom/boot.img ]
then
cp NewRom/boot.img BuildOdin/boot.img
else
cp BaseRom/boot.img BuildOdin/boot.img
fi
# Copy recovery image
if [ -s NewRom/recovery.img ]
then
cp NewRom/recovery.img BuildOdin/recovery.img
else
cp BaseRom/recovery.img BuildOdin/recovery.img
fi
# Create system image
mysyssize=`du -s -h NewRom/system | awk 'BEGIN{FS="[M]"} {print $1}'`
mysyssizeincreased=$((mysyssize+50))
echo 'Filesize will be' $mysyssizeincreased 'MB'
echo 'dd empty image...'
dd if=/dev/zero of=BuildOdin/system.img.ext4 bs=1M count=$mysyssizeincreased >&- 2>&-
echo 'make it ext4...'
mke2fs -F -T ext4 BuildOdin/system.img.ext4 >&- 2>&-
echo 'mounting...'
sudo mount -t ext4 -o loop BuildOdin/system.img.ext4 /mnt >&- 2>&-
echo 'copying system...'
cp NewRom/system/* /mnt -rp
sync
echo 'unmounting...'
sudo umount /mnt
# Create Odin and Odin MD5 files
cd BuildOdin
echo 'tarring...'
tar -cf MyOdinpack.tar adsp.mbn amss.mbn boot.img cache.img.ext4 preload.img.ext4 recovery.img system.img.ext4
echo 'copying...'
cp MyOdinpack.tar MyOdinpack.tar.md5
echo 'md5sum...'
md5sum -t MyOdinpack.tar>>MyOdinpack.tar.md5
echo 'done!'
It looks like it works. I do have some stuff I am wondering about:
1. I have added 50 MB to the filesize, with 30 MB additional I still got a not enough diskspace error. Wondering why...
2. Will it work this way? When looking at a cwm-zip it does contain a system folder but they also contain some other stuff... who knows... anyone care to test?
The script works as follows:
1. It takes the correct files from the BaseRom folder and copies them to the BuildOdin folder
2. If boot or recovery images exist in NewRom folder (extracted from the cwm zip) it will copy them to the BuildOdin folder too
3. It will create the system.img.ext4 file in the BuildOdin folder
4. It will copy the system folder in the NewRom folder to the system.img.ext4 file
5. It will tar and md5 the files in BuildOdin folder
So make sure you have:
1. The adsp.mbn, amss.mbn, cache.img.ext4 and preload.img.ext4 in the BaseRom folder
2. The boot.img and recovery.img in the NewRom folder (or BaseRom)
3. The system folder in the NewRom folder
And run the script
Regards,
Nika.
Well, looks like it's not all that easy. The script works, it creates a file with the exact same files as the one created with dd on the device, but for some reason when using it in Odin, it doesn't work...
Creating the Odin package is superfast now, but will still require some more testing. I guess I should do it with a ROM that I have done before... but too lazy atm...
Btw, this way I could create an Odin package from a CWM backup too If ever needed, just let me know
nikagl said:
Well, looks like it's not all that easy. The script works, it creates a file with the exact same files as the one created with dd on the device, but for some reason when using it in Odin, it doesn't work...
Creating the Odin package is superfast now, but will still require some more testing. I guess I should do it with a ROM that I have done before... but too lazy atm...
Btw, this way I could create an Odin package from a CWM backup too If ever needed, just let me know
Click to expand...
Click to collapse
I've been searching the forums for a general way to make Odin-flashable ROMs from CWM backups. I'm particularly interested in doing this for Samsung Galaxy 10.1/8.9/7.7 tabs (Honeycomb). Many tutorials use ADB and datadumps, which is fine but is very device-specific, and I haven't found one for the Honeycomb Galaxy Tabs. Using CWM backups seem cleanest and least-device specific way.
So I *AM* interested in how you would start with a full CWM backup, and (not using any base ROMs) get an Odin-flashable .tar.md5 file.
hmmmm bht ho gya hia yaar
kblam said:
I've been searching the forums for a general way to make Odin-flashable ROMs from CWM backups. I'm particularly interested in doing this for Samsung Galaxy 10.1/8.9/7.7 tabs (Honeycomb). Many tutorials use ADB and datadumps, which is fine but is very device-specific, and I haven't found one for the Honeycomb Galaxy Tabs. Using CWM backups seem cleanest and least-device specific way.
So I *AM* interested in how you would start with a full CWM backup, and (not using any base ROMs) get an Odin-flashable .tar.md5 file.
Click to expand...
Click to collapse
Hi kblam,
Well... it's still a work in progress. Not sure why it doesn't work at the moment, but here's my current script:
Code:
#!/bin/sh
echo 'Requesting password to allow running as root...'
sudo echo 'Thanks :)!'
# Make folder
if [ ! -d "BuildOdin" ]
then
mkdir BuildOdin
fi
# Copy BaseRom files
cp BaseRom/adsp.mbn BuildOdin/adsp.mbn
cp BaseRom/amss.mbn BuildOdin/amss.mbn
cp BaseRom/cache.img.ext4 BuildOdin/cache.img.ext4
cp BaseRom/preload.img.ext4 BuildOdin/preload.img.ext4
# Copy boot image
if [ -s NewRom/boot.img ]
then
cp NewRom/boot.img BuildOdin/boot.img
else
cp BaseRom/boot.img BuildOdin/boot.img
fi
# Copy recovery image
if [ -s NewRom/recovery.img ]
then
cp NewRom/recovery.img BuildOdin/recovery.img
else
cp BaseRom/recovery.img BuildOdin/recovery.img
fi
# Create system image
mysyssize=`du -s -h NewRom/system | awk 'BEGIN{FS="[M]"} {print $1}'`
mysyssizeincreased=$((mysyssize+50))
echo 'Filesize will be' $mysyssizeincreased 'MB'
echo 'dd empty image...'
dd if=/dev/zero of=BuildOdin/system.img.ext4 bs=1M count=$mysyssizeincreased >&- 2>&-
echo 'make it ext4...'
mke2fs -F -T ext4 BuildOdin/system.img.ext4 >&- 2>&-
echo 'mounting...'
sudo mount -t ext4 -o loop BuildOdin/system.img.ext4 /mnt >&- 2>&-
echo 'copying system...'
cp NewRom/system/* /mnt -rp
sync
echo 'unmounting...'
sudo umount /mnt
# Create Odin and Odin MD5 files
cd BuildOdin
echo 'tarring...'
tar -cf MyOdinpack.tar adsp.mbn amss.mbn boot.img cache.img.ext4 preload.img.ext4 recovery.img system.img.ext4
echo 'copying...'
cp MyOdinpack.tar MyOdinpack.tar.md5
echo 'md5sum...'
md5sum -t MyOdinpack.tar>>MyOdinpack.tar.md5
echo 'done!'
Taking out all unnessesary comments and commands, what it's supposed to do is the following:
1. First copy the files from the BaseRom (the ones you usually do not extract either):
Code:
cp BaseRom/adsp.mbn BuildOdin/adsp.mbn
cp BaseRom/amss.mbn BuildOdin/amss.mbn
cp BaseRom/cache.img.ext4 BuildOdin/cache.img.ext4
cp BaseRom/preload.img.ext4 BuildOdin/preload.img.ext4
2. Then take the boot and recovery from another folder as they usually need to be based on another kernel (f/e Skyhigh kernel ) and/or recovery (f/e CWM/Faemod):
Code:
cp NewRom/boot.img BuildOdin/boot.img
cp NewRom/recovery.img BuildOdin/recovery.img
3. Take the size of the new image (based on the system folder size + 50):
Code:
mysyssize=`du -s -h NewRom/system | awk 'BEGIN{FS="[M]"} {print $1}'`
mysyssizeincreased=$((mysyssize+50))
4. Create an empty system image
Code:
dd if=/dev/zero of=BuildOdin/system.img.ext4 bs=1M count=$mysyssizeincreased >&- 2>&-
5. Convert it to ext4
Code:
mke2fs -F -T ext4 BuildOdin/system.img.ext4 >&- 2>&-
6. Mount it and copy the new system files (can be unzipped from the cwm-zip) and unmount
Code:
sudo mount -t ext4 -o loop BuildOdin/system.img.ext4 /mnt >&- 2>&-
cp NewRom/system/* /mnt -rp
sync
sudo umount /mnt
7. The rest is same to building other md5 odin files. Combine them with tar and calculate and add the md5 sum
Code:
tar -cf MyOdinpack.tar adsp.mbn amss.mbn boot.img cache.img.ext4 preload.img.ext4 recovery.img system.img.ext4
cp MyOdinpack.tar MyOdinpack.tar.md5
md5sum -t MyOdinpack.tar>>MyOdinpack.tar.md5
As mentioned - I am not sure why the system image created this way does not work yet (I only tested it once) - maybe someone else is willing to test?
Regards,
Nika.

Need Firmware for NB4

dumping firmware AT&T Samsung Note 3 credit to A.S._id
need root and busybox installed
su
mkdir /sdcard/NB4
dd if=/dev/block/mmcblk0p1 of=/sdcard/NB4/NON-HLOS.bin bs=256 count=14803
dd if=/dev/block/mmcblk0p2 of=/sdcard/NB4/modem.bin bs=256 count=203079
dd if=/dev/block/mmcblk0p14 of=/sdcard/NB4/boot.img
dd if=/dev/block/mmcblk0p15 of=/sdcard/NB4/recovery.img
I don't need below, but for anyone who needs the scripts
If you want system.img.ext4
make_ext4fs -s -l 2501M /sdcard/NB4/system.img.ext4 /system
to make flashable for odin
cd /sdcard/NB4/
tar -c ./* >> N900AATTBNB4_ODIN_DUMP.tar
md5sum -t N900AATTBNB4_ODIN_DUMP.tar >> N900AATTBNB4_ODIN_DUMP.tar
mv N900AATTBNB4_ODIN_DUMP.tar N900AATTBNB4_ODIN_DUMP.tar.md5

Categories

Resources