Flashing TWRP (and more) using emmcdl (Linux/Win) - Onetouch Idol 3 General

emmcdl is a command line utility allowing all sorts of manipulations in EDL mode using Sahara/Firehose protocol and a device-specific "programmer" file :
Code:
$ emmcdl
Version 2.10
Usage: emmcdl <option> <value>
Options:
-l List available mass storage devices
-info List HW information about device attached to COM (eg -p COM8 -info)
-MaxPayloadSizeToTargetInBytes The max bytes in firehose mode (DDR or large IMEM use 16384, default=8192)
-SkipWrite Do not write actual data to disk (use this for UFS provisioning)
-SkipStorageInit Do not initialize storage device (use this for UFS provisioning)
-MemoryName <ufs/emmc> Memory type default to emmc if none is specified
-SetActivePartition <num> Set the specified partition active for booting
-disk_sector_size <int> Dump from start sector to end sector to file
-d <start> <end> Dump from start sector to end sector to file
-d <PartName> Dump entire partition based on partition name
-d [email protected]<start> <size> Dump size of logbuf to the console
-e <start> <num> Erase disk from start sector for number of sectors
-e <PartName> Erase the entire partition specified
-s <sectors> Number of sectors in disk image
-p <port or disk> Port or disk to program to (eg COM8, for PhysicalDrive1 use 1)
-o <filename> Output filename
[<-x <*.xml> [-xd <imgdir>]>...] Program XML file to output type -o (output) -p (port or disk)
-f <flash programmer> Flash programmer to load to IMEM eg MPRG8960.hex
-i <singleimage> Single image to load at offset 0 eg 8960_msimage.mbn
-t Run performance tests
-b <prtname> <binfile> Write <binfile> to GPT <prtname>
-g GPP1 GPP2 GPP3 GPP4 Create GPP partitions with sizes in MB
-gq Do not prompt when creating GPP (quiet)
-r Reset device
-ffu <*.ffu> Download FFU image to device in emergency download need -o and -p
-splitffu <*.ffu> -o <xmlfile> Split FFU into binary chunks and create rawprogram0.xml to output location
-protocol <s|f> Can be <s>(STREAMING), default is <f>(FIREHOSE)
-gpt Dump the GPT from the connected device
-raw Send and receive RAW data to serial port 0x75 0x25 0x10
-wimei <imei> Write IMEI <imei>
-v Enable verbose output
Examples: emmcdl -p ttyUSB0 -info
emmcdl -p ttyUSB0 -gpt
emmcdl -p ttyUSB0 -SkipWrite -SkipStorageInit -MemoryName ufs -f prog_emmc_firehose_8994_lite.mbn -x memory_configure.xml
emmcdl -p ttyUSB0 -f prog_emmc_firehose_8994_lite.mbn -x rawprogram0.xml -SetActivePartition 0
emmcdl -p ttyUSB0 -f prog_emmc_firehose_8994_lite.mbn -x rawprogram0.xml -xd imagedir -SetActivePartition 0
emmcdl -p ttyUSB0 -f prog_emmc_firehose_8994_lite.mbn -ffu wp8.ffu
emmcdl -p ttyUSB0 -f prog_emmc_firehose_8994_lite.mbn -d 0 1000 -o dump_1_1000.bin
emmcdl -p ttyUSB0 -f prog_emmc_firehose_8994_lite.mbn -d SVRawDump -o svrawdump.bin
emmcdl -p ttyUSB0 -f prog_emmc_firehose_8994_lite.mbn -b SBL1 c:\temp\sbl1.mbn
emmcdl -p ttyUSB0 -f prog_emmc_firehose_8994_lite.mbn -e 0 100
emmcdl -p ttyUSB0 -f prog_emmc_firehose_8994_lite.mbn -e MODEM_FSG
emmcdl -p ttyUSB0 -f prog_emmc_firehose_8994_lite.mbn -raw 0x75 0x25 0x10
Checking in tools/ subdirectory Sugar QCT_SP v11.1.2 (after installation), there are Idol35_5_NPRG7627.bin and Idol34_7_NPRG7627.bin files (among many other models). Trying :
Code:
emmcdl -p ttyUSB0 -f Idol35_5_NPRG7627.bin -b recovery twrp-3.2.1-0-idol3.img
indeed installed TWRP 3.2.1
It also works for dumping partitions (didn't try restore) :
Code:
emmcdl -p ttyUSB0 -f Idol35_5_NPRG7627.bin -d recovery -o backup-recovery.img
I guess it should be possible to even replace MobileUpgradeQ if we can catch the files and write an Sahara XML file.
The OTUUpgrade log made by MUQ could help a lot for this...
GNU+Linux :
The latest revision from the linked Git repo above won't build (missing files) I had to use previous revision :
Code:
git checkout 05a9615a5b70334d14f95fd194b0f34d482d3803
and correct symlinks for newer automake and probably running "autoreconf".
Windows :
I don't know what the primary download site would be, there are emmcdl.exe around the Net...
And there's this Sahara GUI tool, but seems to require writing a XML file just for writing a partition...
By the way, one can use adb to switch the phone to EDL (no more crushing volume buttons while inserting USB cable) :
Code:
sudo adb reboot edl

after flashing recovery i want the phone to boot to system again. i get Status: 6 then handle is invalid when i add -r.

my vivo v9 bootloader is lock and until now, no one manage to unlock it. i have even send to repair shop to unlock bootloader. they using mrt dongle, but unsuccessful
if i obtained firehose for my phone and dump the boot.image using emmcdl,
can i modify the boot.img using magisk and flash back using emmcdl.
will it work?
i have tried to dump devinfo.img successfully.

ahhl said:
my vivo v9 bootloader is lock and until now, no one manage to unlock it. i have even send to repair shop to unlock bootloader. they using mrt dongle, but unsuccessful
if i obtained firehose for my phone and dump the boot.image using emmcdl,
can i modify the boot.img using magisk and flash back using emmcdl.
will it work?
i have tried to dump devinfo.img successfully.
Click to expand...
Click to collapse
If the bootloader accepts the modified boot.img I guess it could work.
Switching between SailfishOS and LineageOS works here by writing their respective boot.img without requiring fastboot, rooting or unlocking OEM in Android.
Difficult to say in advance what will work on each specific device...
Make sure you backup first, and have a way to reset/reinstall the phone if things go wrong.

Could i read and write any qualcomm phone with emmcdl..??

emmcdl (or more modern and maintained edl tool) should be able to flash any qcom device for which you have a suitable "flash programmer" file.
"Suitable" meaning that the device recognizes it as correctly signed by the OEM/vendor, or that signature verification is disabled in which case you can use a generic programmer file adapted to the SoC of the device.

Hi all, I wrote a 2022 update on how to put the phone into a fastboot state using the edl tool mentioned by vknecht above (btw, thank you so much for all your hard work over the years!)
You can find it here:
[TOOL] Sahara & Firehose Test (Alcatel Flasher oncoming ...)
Let me introduce some new tool for you. This is my first practice in learning and understanding "How to work with Sahara & Firehose?" and as an owner of Alcatel Idol 3 4.7" firsts test of this app were made on my Idol 3 6039Y. What is this...
forum.xda-developers.com

Related

a problem happened in flashing the rom of my SDAmusic

originally I thought that it is dangerous to flash the phone with .bin file. So I planned to export the os.nb from the .bin file and make a .nbf file only using the os.nb. but after I created the .bf file with perl typhoonnbfdecode.pl, and use patch_RUU to flash the phone, patch_RUU displayed the message as the following picture saying that "invalid vender ID"
could somebody tell me what did I do wrong? (the original .bin is usable for flashing the phone)
the following is my failure process
1. exporting os. nb from .bin rom:
perl typhoonnbfdecode.pl -x 585yscn30w.bin
I got several .nb files
2. convert os.nb to nk.nbf:
perl typhoonnbfdecode.pl -s -r os=OS.nb -p device=SP3i -p language=ENGLISH -p magic=HTC -p operator=CDL___02 -p flags=17 -p version=2.0.33.21 -p blversion=2.0.3.23 -c nk.nbf
I also tried again getting the "-s" off:
perl typhoonnbfdecode.pl -r os=OS.nb -p device=SP3i -p language=ENGLISH -p magic=HTC -p operator=CDL___02 -p flags=17 -p version=2.0.33.21 -p blversion=2.0.3.23 -c nk1.nbf
3.use the .nbf rom and patch_ruuto flash the phone, but patch_ruu showed me the error page, how to solve this, please?

Vogue Android in depth Rom Building guide requested

Hi all , i am a new android user and would like to have a go a biulding some custom roms, Now i have no experiene with linux.. well the last 3days.. lol, and i have read the how to make a hero rom txt from the vogue - hero site and while that maybe suffucient for others to get up and away with rom building its not for me, So i am wondering if there is a more in depth step by step guide for not only a new android user but a new linux user also, would be very much appreciated
ok so there hasnt been much of a respone so ill share the steps i have so far
1. I installed Ubuntu linux ( Dual Boot with win 7 )
2. Needed to know how to install Squashfs did a search on google found this
A) open terminal window ( Ubuntu start menu, accessories )
B) type: sudo aptitude search squashfs , u will be prompted for password
this is what happened with mine:
[email protected]:~$ sudo aptitude search squashfs
[sudo] password for ali3nfr3ak:
i squashfs-tools - Tool to create and append to squashfs filesystems
C) type this command:sudo apt-get install squashfs-tools
My Dialog ( ihad to uninstall and then reinstall to get this so mine will be alittle different to
yours
[email protected]:~$ sudo apt-get install squashfs-tools
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
squashfs-tools
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/122kB of archives.
After this operation, 319kB of additional disk space will be used.
Selecting previously deselected package squashfs-tools.
(Reading database ... 115049 files and directories currently installed.)
Unpacking squashfs-tools (from .../squashfs-tools_1%3a4.0-1_i386.deb) ...
Processing triggers for man-db ...
Setting up squashfs-tools (1:4.0-1) ...
[email protected]:~$
C) all done close terminal i type: exit
3: Next for testing purposes download this Google-Android-Ion-v1.5-2009-10-23-sdcard-not-google-apps and etract this and placed a copy of system.sqsh into it s own directory
4: i then opened another terminal window ( easier to copy and paste show you what my window looks like
[email protected]:~$ dir
Desktop Documents Downloads examples.desktop HERO Music Pictures Public Templates Videos
[email protected]:~$ cd HERO
[email protected]:~/HERO$ dir
Testing
[email protected]:~/HERO$ cd Testing
[email protected]:~/HERO/Testing$ dir
system.sqsh
[email protected]:~/HERO/Testing$ unsquashfs system.sqsh
Parallel unsquashfs: Using 2 processors
650 inodes (1408 blocks) to write
[=====================================================================================================================================================-] 1408/1408 100%
created 650 files
created 45 directories
created 0 symlinks
created 0 devices
created 0 fifos
[email protected]:~/HERO/Testing$ dir
squashfs-root system.sqsh
[email protected]:~/HERO/Testing$
basicially u can use the same commands as windows but with out the / and the spelling and Capitial letters have to be exact
Windows
/dir
/cd hero
Linux
dir
cd HERO
A new folder is created called squashfs-root which has all the files/ folders from the system.sqsh u just decompressed ( my description )
and that is a far as i have got so far
ali3nfr3ak said:
Hi all , i am a new android user and would like to have a go a biulding some custom roms, Now i have no experiene with linux.. well the last 3days.. lol, and i have read the how to make a hero rom txt from the vogue - hero site and while that maybe suffucient for others to get up and away with rom building its not for me, So i am wondering if there is a more in depth step by step guide for not only a new android user but a new linux user also, would be very much appreciated
Click to expand...
Click to collapse
If you still have that txt, would you mind hosting or pasting it here? I've been asking around for a copy and everyone seems to have lost it.
clockworx said:
If you still have that txt, would you mind hosting or pasting it here? I've been asking around for a copy and everyone seems to have lost it.
Click to expand...
Click to collapse
same here. trying to make my first rom also
How-To-Make-A-Hero-ROM.TXT attached
MUCH appreciated!
updated 1st post with my very linux noob steps lol
having alittle trouble anyone can someone shed some light please
[email protected]:/home/ali3nfr3ak/Downloads/HERO2# genext2fs -d ./system -b 180000 -a system.ext2
genext2fs: invalid option -- 'a'
genext2fs: Note: options have changed, see --help or the man page.
[email protected]:/home/ali3nfr3ak/Downloads/HERO2# genext2fs -help
Usage: genext2fs [options] image
Create an ext2 filesystem image from directories/files
-x, --starting-image <image>
-d, --root <directory>
-D, --devtable <file>
-b, --size-in-blocks <blocks>
-i, --bytes-per-inode <bytes per inode>
-N, --number-of-inodes <number of inodes>
-m, --reserved-percentage <percentage of blocks to reserve>
-g, --block-map <path> Generate a block map file for this path.
-e, --fill-value <value> Fill unallocated blocks with value.
-z, --allow-holes Allow files with holes.
-f, --faketime Set filesystem timestamps to 0 (for testing).
-q, --squash Same as "-U -P".
-U, --squash-uids Squash owners making all files be owned by root.
-P, --squash-perms Squash permissions on all files.
-h, --help
-V, --version
-v, --verbose
and
[email protected]:/home/ali3nfr3ak/Downloads/HERO2# mkdir rootfs-mount
[email protected]:/home/ali3nfr3ak/Downloads/HERO2# mount -o loop rootfs.img
mount: can't find rootfs.img in /etc/fstab or /etc/mtab
ali3nfr3ak said:
having alittle trouble anyone can someone shed some light please
[email protected]:/home/ali3nfr3ak/Downloads/HERO2# genext2fs -d ./system -b 180000 -a system.ext2
genext2fs: invalid option -- 'a'
genext2fs: Note: options have changed, see --help or the man page.
[email protected]:/home/ali3nfr3ak/Downloads/HERO2# genext2fs -help
Usage: genext2fs [options] image
Create an ext2 filesystem image from directories/files
-x, --starting-image <image>
-d, --root <directory>
-D, --devtable <file>
-b, --size-in-blocks <blocks>
-i, --bytes-per-inode <bytes per inode>
-N, --number-of-inodes <number of inodes>
-m, --reserved-percentage <percentage of blocks to reserve>
-g, --block-map <path> Generate a block map file for this path.
-e, --fill-value <value> Fill unallocated blocks with value.
-z, --allow-holes Allow files with holes.
-f, --faketime Set filesystem timestamps to 0 (for testing).
-q, --squash Same as "-U -P".
-U, --squash-uids Squash owners making all files be owned by root.
-P, --squash-perms Squash permissions on all files.
-h, --help
-V, --version
-v, --verbose
and
[email protected]:/home/ali3nfr3ak/Downloads/HERO2# mkdir rootfs-mount
[email protected]:/home/ali3nfr3ak/Downloads/HERO2# mount -o loop rootfs.img
mount: can't find rootfs.img in /etc/fstab or /etc/mtab
Click to expand...
Click to collapse
first no -a it doesn't work
[CODEgenext2fs -d ./system -b 180000 system.ext2[/CODE]
then mount it for me i made the directory /mnt/system
Code:
sudo mkdir /mnt/system
sudo mount -o loop /whereever/system.ext2 /mnt/system
then make sure you do not have squashfs-tools 4.0 it wont work
make the sqsh file
Code:
sudo mksquashfs /mnt/system system.sqsh
say rootfs.img was on your desktop
Code:
sudo mkdir /mnt/rootfs
sudo mount -o loop /home/king0fkings/desktop/rootfs.img /mnt/rootfs
jamezelle said:
first no -a it doesn't work
[CODEgenext2fs -d ./system -b 180000 system.ext2[/CODE]
then mount it for me i made the directory /mnt/system
Code:
sudo mkdir /mnt/system
sudo mount -o loop /whereever/system.ext2 /mnt/system
then make sure you do not have squashfs-tools 4.0 it wont work
make the sqsh file
Code:
sudo mksquashfs /mnt/system system.sqsh
say rootfs.img was on your desktop
Code:
sudo mkdir /mnt/rootfs
sudo mount -o loop /home/king0fkings/desktop/rootfs.img /mnt/rootfs
Click to expand...
Click to collapse
Ok thank you very kindly.. just got in from milking the cows, so ill give this a blast
Code:
genext2fs -d ./system -b 180000 -a system.ext2
the -a does work when you use the right genext2fs from the sdk or from pulling the android source and building it. the genext2fs i had uploaded uses the -a but you need to have it in your path before the generic genext2fs gets used or directly execute it. i keep it in /root/bin and execute it from there.
Code:
~/bin/genext2fs -d ./system -b 180000 -a system.ext2
the -a is for making android specific images and sets correct permissions
http://dl.dropbox.com/u/2888561/porting/genext2fs
make sure you set it to executable
Code:
chmod 755 genext2fs
zenulator said:
Code:
genext2fs -d ./system -b 180000 -a system.ext2
the -a does work when you use the right genext2fs from the sdk or from pulling the android source and building it. the genext2fs i had uploaded uses the -a but you need to have it in your path before the generic genext2fs gets used or directly execute it. i keep it in /root/bin and execute it from there.
Code:
~/bin/genext2fs -d ./system -b 180000 -a system.ext2
the -a is for making android specific images and sets correct permissions
http://dl.dropbox.com/u/2888561/porting/genext2fs
make sure you set it to executable
Code:
chmod 755 genext2fs
Click to expand...
Click to collapse
hey there thanks for the info , i cannot get this command to work :
Code:
~/bin/genext2fs -d ./system -b 180000 -a system.ext2
i worked out how to get root on linux, copied genext2fs into /root/bin did this command
Code:
chmod 755 genext2fs
i dunno what to try now
[email protected]:~/Downloads/HERO2# ~/bin/genext2fs -d ./system -b 180000 -a system.ext2
bash: /root/bin/genext2fs: No such file or directory
[email protected]:~/Downloads/HERO2# chmod 755 genext2fs
[email protected]:~/Downloads/HERO2# ~/bin/genext2fs -d ./system -b 180000 -a system.ext2
bash: /root/bin/genext2fs: No such file or directory
im lost
ali3nfr3ak said:
hey there thanks for the info , i cannot get this command to work :
Code:
~/bin/genext2fs -d ./system -b 180000 -a system.ext2
i worked out how to get root on linux, copied genext2fs into /root/bin did this command
Code:
chmod 755 genext2fs
i dunno what to try now
[email protected]:~/Downloads/HERO2# ~/bin/genext2fs -d ./system -b 180000 -a system.ext2
bash: /root/bin/genext2fs: No such file or directory
[email protected]:~/Downloads/HERO2# chmod 755 genext2fs
[email protected]:~/Downloads/HERO2# ~/bin/genext2fs -d ./system -b 180000 -a system.ext2
bash: /root/bin/genext2fs: No such file or directory
im lost
Click to expand...
Click to collapse
1 go to package manager and remove genext2fs
2 login as root and copy zens genext2fs to /bin/
3 open terminal and type in
Code:
chmod 755 /bin/genext2fs
4 logout, then login as normal
5 it should work like so
Code:
genext2fs -d ./system -b 180000 -a system.ext2
I JUST DID IT SO I KNOW IT WORKS!!1
jamezelle said:
1 go to package manager and remove genext2fs
2 login as root and copy zens genext2fs to /bin/
3 open terminal and type in
Code:
chmod 755 /bin/genext2fs
4 logout, then login as normal
5 it should work like so
Code:
genext2fs -d ./system -b 180000 -a system.ext2
I JUST DID IT SO I KNOW IT WORKS!!1
Click to expand...
Click to collapse
ok thank you ill try that, thanks for all the help to by the way, its been a trying process learning how to use linux and build android roms, so thank u
ok got everything working and managed to create a system.sqsh to load, using msmisson ext2 method i tried to load it but has error:
mount: mounting /dev/block/loop1 on/sdcard/temp failed Invalid argument
failed
failed to mount /system
/bin/still (maybe ??? cant read properly) can't access tty: job control turned off
im basicially dumping Ion bundle and remaking it with no changes
big problem!!!!!!!
Selecting previously deselected package squashfs-tools.
(Reading database ... 115049 files and directories currently installed.)
Unpacking squashfs-tools (from .../squashfs-tools_1%3a4.0-1_i386.deb) ...
Processing triggers for man-db ...
Setting up squashfs-tools (1:4.0-1) ...
[email protected]:~$
4.0 will not work!!!!!!!!
1 do
Code:
sudo apt-get remove squashfs-tools
2 download this HERE
zenulator said:
Code:
genext2fs -d ./system -b 180000 -a system.ext2
the -a does work when you use the right genext2fs from the sdk or from pulling the android source and building it. the genext2fs i had uploaded uses the -a but you need to have it in your path before the generic genext2fs gets used or directly execute it. i keep it in /root/bin and execute it from there.
Code:
~/bin/genext2fs -d ./system -b 180000 -a system.ext2
the -a is for making android specific images and sets correct permissions
http://dl.dropbox.com/u/2888561/porting/genext2fs
make sure you set it to executable
Code:
chmod 755 genext2fs
Click to expand...
Click to collapse
damn zen i bet that has been half my battle with the power wake ups. i just ported a rom last night and got the power wakeups.
recreated it today with your genext2fs with -a and it booted right up thanks
I wanted to try testing some stuff using the emulator (not hardware related, obviously). Does anyone know if there a standalone tool for making yaffs2 filesystems (for system.img), or is my only option to install android source and compile it all?
jamezelle said:
big problem!!!!!!!
Selecting previously deselected package squashfs-tools.
(Reading database ... 115049 files and directories currently installed.)
Unpacking squashfs-tools (from .../squashfs-tools_1%3a4.0-1_i386.deb) ...
Processing triggers for man-db ...
Setting up squashfs-tools (1:4.0-1) ...
[email protected]:~$
4.0 will not work!!!!!!!!
1 do
Code:
sudo apt-get remove squashfs-tools
2 download this HERE
Click to expand...
Click to collapse
ok i see that , i saw that i had 4 but i guess when you said squashfs 4 wouldnt i guess i literally took it as it wouldnt work lol, not that the command would still work but the .sqsh not load , sorry bout that, but also once again thank you
woohoo got a booting image ,lol keeps telling me process android.process.acore has stopped unexpectedly, lots of times probably all those google packages i removed ...oh well i have a start now thanks jamezelle without your help wouldnt have happened
Thought you might want to take a look at this little script I made: ROM porting

[Q] compile own kernel? configuration

I used rotohammer's method for backing up the AT&T Galaxy Tab and it worked wonderfully. I compiled the GT-P1000_Kernel patched with SGH-I987_Kernel and did a standard make and then flashed the zImage onto the galaxy. It resulted in kernel panic. Does anyone know what parameters to use with make or configuration changes that need to be made?
Thanks
ps. when I used heimdall, I only "heimdall flash --kernel zImage".
I also couldn't find a config.gz in the /proc dir. Does anybody know why it is missing and what has taken its place?
success at last
Yay, it works now! thanks roto for the initramfs tip.
what kind of modification did u make to the kernel? do you mind sharing?
[Q] how did you compile your own kernel?
Hi,
I'm in disperate need to do this. I have downloaded the sources from samsung opensource -> followed the instruction in the README.txt -> compiled the kernel and the modules successfully -> used the initramfs from the stock zImage -> but when I flash the zImage (Size ~ 432 KB) I get kernel panic.
I do not think it is possible to boot in verbose mode or have a serial port console log.
letolkki: please share with us how you did it? how did you compile a zImage which boots.??????
share with us please!
I used make menuconfig to specify the location of the initramfs (compression to none). Do not use the build script above the root as that seemed to mess things up for me. The size of my kernel is approx ~5meg with the initramfs included and ~3 without. Then used Heimdall to push it on.
I didn't make any mods as of yet. Just a quest for knowledge and tinkering. Just making sure I can when I need to.
What exactly did you modify? Here's my config, as related to INITRAMFS:
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_RD_GZIP=y
CONFIG_RD_BZIP2=y
CONFIG_RD_LZMA=y
CONFIG_INITRAMFS_COMPRESSION_NONE=y
# CONFIG_INITRAMFS_COMPRESSION_GZIP is not set
# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set
# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
My kernel size is only 2.9 megs. What else did you specify that has your kernel at 5 megs?
Thanks
you don't have the initramfs source file specified. Put the complete path to the initramfs in the config.
Even when I specified the file location generated during the compile, it still didn't work...size only 3 meg. Are you using the ramdisk.img generated and output into Android/out/target/product/...? Or, did you pull boot.img from the device and split ramdisk.img from the kernel?
chuckbeasley said:
Even when I specified the file location generated during the compile, it still didn't work...size only 3 meg. Are you using the ramdisk.img generated and output into Android/out/target/product/...? Or, did you pull boot.img from the device and split ramdisk.img from the kernel?
Click to expand...
Click to collapse
yep, i pulled it from the device
Would you please tell me how you did it exactly? I've been attempting over the past several hours and haven't been able to find a tool that would split boot.img. They keep telling me that it's not a valid image, but I pulled it from the device.
chuckbeasley said:
Would you please tell me how you did it exactly? I've been attempting over the past several hours and haven't been able to find a tool that would split boot.img. They keep telling me that it's not a valid image, but I pulled it from the device.
Click to expand...
Click to collapse
I used the script from
http://forum.xda-developers.com/wiki/index.php?title=Extract_initramfs_from_zImage
to get the initramfs from the zImage pulled from the device.
Much appreciated! I'll try this later tonight. Right now, I need a break...
I used verizon_zImage from ClockworkMod, but it fails the extraction with a gzip invalid compressed data--format violated error. How can I pull the zImage directly from the phone? It seems that boot.img doesn't work either.
Thanks
Here are the error messages I'm receiving for both verizon_zImage and boot.img, which I pulled from the GT:
[email protected]:~/ramdisk$ ./extract_initramfs verizon_zImage
-I- Extracting kernel image from verizon_zImage (start = 13117)
gzip: stdin: decompression OK, trailing garbage ignored
5979431+0 records in
5979431+0 records out
5979431 bytes (6.0 MB) copied, 195.453 s, 30.6 kB/s
-I- Extracting compressed cpio image from kernel image (start = 5410216)
gzip: stdin: invalid compressed data--format violated
-I- Extracting initramfs image from /tmp/cpio.img (start = , end = 11)
dd: invalid number `'
[email protected]:~/ramdisk$ ./extract_initramfs boot.img
-I- Extracting kernel image from boot.img (start = 13117)
gzip: stdin: decompression OK, trailing garbage ignored
-I- Extracting compressed cpio image from kernel image (start = 5410216)
gzip: stdin: invalid compressed data--format violated
-I- Extracting initramfs image from /tmp/cpio.img (start = , end = 11)
dd: invalid number `'
Looks like the script had a bug and has been updated. Here's the link: http://forum.xda-developers.com/showthread.php?p=8679959
Here's the updated script that allowed me to extract initramfs.cpio from boot.img:
#!/bin/sh
# This is an update version of the script found at
# http://forum.xda-developers.com/wiki/index.php?title=Extract_initramfs_from_zImage
#
# The problem with that script is that the gzip magic number occasionally occur
# naturally, meaning that some non-compressed files get uncompressed.
zImage=$1
#========================================================
# find start of gziped kernel object in the zImage file:
#========================================================
pos=`grep -P -a -b -m 1 --only-matching $'\x1F\x8B\x08' $zImage | cut -f 1 -d :`
echo -n "-I- Extracting kernel image from $zImage (start = $pos)"
dd if=$zImage bs=1 skip=$pos | gunzip > /tmp/kernel.img
#==========================================================================
# find start and end of the "cpio" initramfs image inside the kernel object:
# ASCII cpio header starts with '070701'
# The end of the cpio archive is marked with an empty file named TRAILER!!!
#==========================================================================
start=`grep -a -b -m 1 --only-matching '070701' /tmp/kernel.img | head -1 | cut -f 1 -d :`
end=`grep -a -b -m 1 --only-matching 'TRAILER!!!' /tmp/kernel.img | head -1 | cut -f 1 -d :`
if [ $start = "" || $end = "" ]; then
#========================================================================
# the cpio archive must be archived
#========================================================================
echo "-I- Extracting compressed cpio image from kernel image (start = $pos)"
pos=`grep -P -a -b -m 1 --only-matching $'\x1F\x8B\x08' /tmp/kernel.img | cut -f 1 -d :`
dd if=/tmp/kernel.img bs=1 skip=$pos | gunzip > /tmp/cpio.img
start=`grep -a -b -m 1 --only-matching '070701' /tmp/cpio.img | head -1 | cut -f 1 -d :`
end=`grep -a -b -m 1 --only-matching 'TRAILER!!!' /tmp/cpio.img | head -1 | cut -f 1 -d :`
inputfile=/tmp/cpio.img
else
echo -n "-I- Already uncompressed cpio.img, not decompressing"
inputfile=/tmp/kernel.img
fi
end=$((end + 10))
count=$((end - start))
if (($count < 0)); then
echo "-E- Couldn't match start/end of the initramfs image."
exit
fi
echo "-I- Extracting initramfs image from $inputfile (start = $start, end = $end)"
dd if=$inputfile bs=1 skip=$start count=$count > initramfs.cpio
chuckbeasley said:
I used verizon_zImage from ClockworkMod, but it fails the extraction with a gzip invalid compressed data--format violated error. How can I pull the zImage directly from the phone? It seems that boot.img doesn't work either.
Thanks
Click to expand...
Click to collapse
I used rotohammer's backup method to pull the zImage from the device.
http://forum.xda-developers.com/showthread.php?t=850359&highlight=backup+install+kernel
So do you guys have working kernels ?
I know from my Nexus days that custom kernels can made a massive difference to performance on the beast, so I am looking forward to seeing what people can do with the TAB
Keep up the good work !
I've built my own kernel to see if I could work around the dialing limitation on my VZW tab. Right now, it crashes randomly, but it does boot! I'm looking into the difference between the international version of Onedram and Verizon's version and why Verizon includes a OnedramRecovery unit. My kernel doesn't reference OnedramRecovery and I made more mods. So, I haven't isolated what is causing the instability. Right now, I'm back to Koush's kernel. I'll keep you informed on my progress.
Sent from my SCH-I800 using XDA App

Tools for extracting samsung kernel

Could anyone give me the right tools for unpacking the ramdisk and the zimage.
Cant find the right one!
Thanks!
in linux you can extract Image from zImage using this :
dd if=zImage bs=1 skip=16541 | gunzip > Image
where 16541 is number from this output : grep -P -a -b -m 1 --only-matching $'\x1F\x8B\x08' zImage | cut -f 1 -d
you can get zImage as file from kies firmware download roms

Help Needed Modifying System Image

Hello XDA, I was attempting to do some experimentation with what I could do on the device via modifying init.rc files and the like. Rather than building and flashing a custom ROM for each run which is time consuming I thought I could just mess with the existing system images.
What I was hoping would work:
1. Download the October 007 (patch) stock binaries from Google
2. Extract the flame_xxxxx.zip image file
3. Convert the sparse system image file to a raw image file
- $ simg2img system.img system.raw
4. Mount the ext2 filesystem to a loopback device
- $ mount -o loop -t ext2 system.raw temp_dir
5. Edit the init file (e.g. init.rc) and save it
6. Unmount the ext2 filesystem
7. Create sparse system image
- Still don't quite know how to do this
8. Flash the sparse image from fastboot
- $ fastboot flash system system.img
So my question to the community at large is, is this track of work even logically correct. If so, how does one do it?
I have been trying to run these steps against image-flame-qd1a.190821.007.zip
My machine is running Ubuntu 19.10
For example Step 4 (mounting the ext2 system is failing for me)
Code:
$ losetup --list
....
/dev/loop8 0 0 1 1 /path/system.raw 0 512
....
$ sudo mount /dev/loop8 sys_mount
mount: /pathsys_mount: wrong fs type, bad option, bad superblock on /dev/loop8, missing codepage or helper program, or other error.
Also not working for Step 4
Code:
$ file system.raw
system.raw: Linux rev 1.0 ext2 filesystem data, UUID=4729639d-b5f2-5cc1-a120-9ac5f788683c (extents) (large files) (huge files)
$ sudo mount -o loop -t ext2 system.raw sys_mount
mount: /pathsys_mount: wrong fs type, bad option, bad superblock on /dev/loop8, missing codepage or helper program, or other error.
Thanks for the help.
I have since built my own AOSP build and have the same issue in that I can't mount the resulting system.img file from the AOSP build either.
Not sure if that matters or not, but I found it odd.

Categories

Resources