Related
Background
To update (flash) a recovery image onto your phone allows you to update or replace your recovery environment on your phone. There are a number of ways to flash a new recovery image, some of the more commonly used methods are using a tool such as ROM Manager or using development tools such as Fastboot. There is also a third method using a standalone utility "flash_image" which allows the flashing of recovery using the terminal emulator on the phone.
flash_image is not a new tool, it has been used on Android since the beginning, many custom ROMs include the utility as part of the ROM itself though not all stock ROMs (including the stock ROM on the G2) include it.
Requirements
1. A permanently rooted (with S-OFF) phone
2. The flash_image binary
3, A recovery image that is compatible with your phone and ROM
3. A terminal emulator application on the phone or use of an ADB shell
Overview:
1. Get the flash_image binary and recovery image onto your phone
2. Copy or move the flash image binary to your system and make executable
3. Use flash_image to update your recovery environment
Stage 1: Get flash_image and recovery image on your phone
1. Download the flash_image binary (not needed if you are running a custom ROM that includes this binary)
2. Download the recovery image you wish to use
You can either directly download the files onto your phone or onto your PC and transfer to your phone. Probably the easiest way to do this is to connect your phone to your computer via USB and mount USB storage, then copy the files to your SD Card. Alternatively you can use ADB Push, bluetooth file transfer or several other methods.
Stage 2: Copy or move the flash image binary to your system and make executable
In terminal emulator:
su
mount -o remount, rw /system
cd /sdcard (or wherever you downloaded/copied the file)
cp flash_image /system/bin
cd /system/bin
chmod 777 flash_image
Click to expand...
Click to collapse
Stage 3: use flash_image to update your recovery environment
In terminal emulator:
su (not needed if using the same terminal session used in the steps above)
cd /sdcard (or wherever you downloaded/copied the recovery image)
flash_image recovery recovery.img (use the appropriate file name for the image file you are flashing)
Click to expand...
Click to collapse
Reboot into recovery and verify that the correct recovery environment is installed
Notes
Any of the commands that call for using a terminal emulator on the phone should work fine using an ADB shell if you prefer.
This was tested on G2 but I can't think of why it would not work on Desire Z or any other phone for which this version of flash_image works. Obviously different phones have different compatible recovery images.
I've attached a zip file containing the flash_image binary that I extracted from the CM 6.1 update zip. I suspect most custom ROMs already have flash_image.
If you are wondering "Why should I use this method over using ROM Manager?" you could be using a recovery image that ROM manager doesn't support, for example ClockWorkMod Recovery 3.x which is required for some experimental ROMs.
If you are wondering "Why should I use this method over using fastboot?" The two main reasons are you can't use fastboot if you are not with a computer with working ADB and using fastboot requires that you have previously flashed the engineering HBOOT.
This is my first guide so I'm open to suggestions or feedback.
Nice one
Though I would suggest that
Code:
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
could be simplified to :
Code:
mount -o remount,rw /system
Edit - actually /system isn't even on /dev/block/mtdblock3, and it's not a yaffs2 file system, I suspect that's come from another phone model ?
"dd" will do exactly the same, but no need to install extra stuff since its already there.
dhkr123 said:
"dd" will do exactly the same, but no need to install extra stuff since its already there.
Click to expand...
Click to collapse
I wouldn't have a problem using dd myself. But I would have thought it was much more risky, since instead of typing something relatively user-friendly like "recovery", you're typing in /dev/xyz/abc or similar, which if you get it slightly wrong could be disastrous ?
Excellent, worked for me, flashed CW 3.0 without fastboot
steviewevie said:
Nice one
Though I would suggest that
Code:
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
could be simplified to :
Code:
mount -o remount,rw /system
Edit - actually /system isn't even on /dev/block/mtdblock3, and it's not a yaffs2 file system, I suspect that's come from another phone model ?
Click to expand...
Click to collapse
Interesting, I've been using that command since forever (since I first rooted my G1 in early 2009) and it definitely does work on my G2 as well as my wife's MT4G.
I just tried "mount -o remount,rw /system" on my phone and it does not work, mount gives me the "Usage:" messages which seems to mean it wants more parameters.
steviewevie said:
I wouldn't have a problem using dd myself. But I would have thought it was much more risky, since instead of typing something relatively user-friendly like "recovery", you're typing in /dev/xyz/abc or similar, which if you get it slightly wrong could be disastrous ?
Click to expand...
Click to collapse
Unless you run wpthis before dd, you're perfectly safe. The radio partitions are all protected by the power-on write protect feature of the eMMC AS WELL as the linux kernel write protect on low addresses. Worst you can do is blow away your system, data, cache, misc, boot, or recovery partitions, and these are trivial to recover from.
raitchison said:
Interesting, I've been using that command since forever (since I first rooted my G1 in early 2009) and it definitely does work on my G2 as well as my wife's MT4G.
I just tried "mount -o remount,rw /system" on my phone and it does not work, mount gives me the "Usage:" messages which seems to mean it wants more parameters.
Click to expand...
Click to collapse
Depends on whether or not the mount command can tell the associations between the devices and mount points, which is determined by either system configuration, or what mount command you are using (i.e. android's mount or busybox mount).
raitchison said:
Interesting, I've been using that command since forever (since I first rooted my G1 in early 2009) and it definitely does work on my G2 as well as my wife's MT4G.
I just tried "mount -o remount,rw /system" on my phone and it does not work, mount gives me the "Usage:" messages which seems to mean it wants more parameters.
Click to expand...
Click to collapse
Sorry, there should have been an extra space, this works on my phone :
Code:
mount -o remount, rw /system
I don't have a "/dev/block/mtdblock3" on my system. My system partition is mounted on /dev/block/mmcblk0p25, and it is ext3 not yaffs2.
What ROM are you running ? I am running the stock DZ 1.34 ROM. I wonder if you are running Gingerbread ?
steviewevie said:
Sorry, there should have been an extra space, this works on my phone :
Code:
mount -o remount, rw /system
I don't have a "/dev/block/mtdblock3" on my system. My system partition is mounted on /dev/block/mmcblk0p25, and it is ext3 not yaffs2.
What ROM are you running ? I am running the stock DZ 1.34 ROM. I wonder if you are running Gingerbread ?
Click to expand...
Click to collapse
I'm running the Stock G2 T-Mobile post-OTA ROM, definitely not Gingerbread.
Edit: I just tried your method and it works, I will update the guide because your way is simpler and sounds like a safer choice.
you could just rename the CW 3.x.x recovery to the exact named recovery slap it in the cloclwork download folder after you delete the old one and flash it with CW just a quicker trick for GB roms
Not sure that's actually quicker, at least I don't think it would be for me, especially if you are changing recoveries with any frequency (like if tying out Gingerbread ROMs then going back to a 2.2 ROM) because you'd need to constantly rename your recovery images. With my method you would only need to leave the two files named as they are, or for expediency you could rename to recovery.img and recovery3.img then when you wanted to switch you could just execute:
flash_image recovery recovery.img
Click to expand...
Click to collapse
or
flash_image recovery recovery3.img
Click to expand...
Click to collapse
Depending on which recovery you wanted at that point & time.
As I said in the guide, there are already a number of options available, using ROM Manager and fastboot are the most commonly seen in guides but your method and mine are other options for people for whom they work better.
Works!!!
Hi my friends!
It worked for me flawlessly. I was using virtuos 0.9 on my desireZ
Great description, but file did not work for me
It's a very good description that a novice like me can follow. And, I am sure the provided file works for many of you, since many of you reported it to work. After following this guide, and not getting it to work (Stopping Signal error), I decided to find another binary file for flash_image, and the other flash_image file worked for me on my Sprint CDMA Hero. My phone currently has aospMod v0.9.9.2 | AOSP 2.2.1(12/10/2010), if it matters.
One can download a flash_image from here http://cyanogen-files.carneeki.net/flash_image.zip
Then unzip and place on sdcard - follow all the steps in the original post of this thread.
It is my understanding that this file is not unique for different android phones, but if I am incorrect, someone please reply to this thread to correct me.
Again, great job in summarizing the steps.
Regards,
Sanjiv
so darn easy! thank you!
Also usable for splash screen ??
Just curious,
Anybody tried to use flash_image to flash a custom splash screen ?
Something like :
flash_image splash1 customsplash.img
very good post for a newbie like me, just want to make sure, do i need to do the stage 2 every time I flash the recovery?
jaoyina said:
very good post for a newbie like me, just want to make sure, do i need to do the stage 2 every time I flash the recovery?
Click to expand...
Click to collapse
No, you only need to do stage 2 once, whenever you update/change recoveries from that point forward just use stage 3.
Is there a way I can reflash a recovery without access to the ROM?
I'm stuck at the HTC splash screen, so I'm basically stuck in my current (broken) recovery.
sanjivp2000 said:
One can download a flash_image from here (..)[/URL]
Click to expand...
Click to collapse
The flash_image in the start post did not work for me, the one above did.
Also, my HTC Hero was missing the cp command.
Instead, I used: cat /sdcard/flash_image > /system/bin/flash_image
Successfully flashed recovery again
Does anybody know of a way to fsck the system or data partitions? I've run into a few times where I had data errors on /data, and the only way I could think of to fix them was to do a backup and restore. I was worried about losing data during the backup process, as the filesystem was already questionable.
I have e2fsck in my rom, but I can't run it from a normal shell as the filesystems are already mounted. Is there a way to make a rom automatically check and repair the filesystems on boot, and if so, how can I control the options it passes to fsck? Are there other ways to get to an unmounted system or data partition? Does clockworkmod have any kind of shell or fsck utilities built in? Are there other recovery programs that may have something like that?
You should be able to boot into CWM, unmount the partitions, connect with adb and run it from there. At least if your version of CWM has fsck in it.
Sent from my SPH-D700 using xda premium
You should be able to do it while booted into recovery through ADB.
Boot to recovery
connect usb cable to PC
run `adb shell`
Code:
unmount /data
unmount /system
fsck /dev/block/stl9
fsck /dev/block/stl10
syntax for above commands needs to be checked.
toadlife said:
You should be able to do it while booted into recovery through ADB.
Boot to recovery
connect usb cable to PC
run `adb shell`
Code:
unmount /data
unmount /system
fsck /dev/block/stl9
fsck /dev/block/stl10
syntax for above commands needs to be checked.
Click to expand...
Click to collapse
Just tried this out myself. Here's the correct syntax for the fsck command:
Code:
e2fsck -fv /dev/block/stl10
EDIT: Forgot to mention also that unmount should actually be umount. Or you could just use the CWR menus to unmount partitions.
zman0900 said:
Just tried this out myself. Here's the correct syntax for the fsck command:
Code:
e2fsck -fv /dev/block/stl10
Click to expand...
Click to collapse
How bout mtd?
sent from my always aosp epic
Please consider posting questions in Q&A next time. Thank you.
Sorry for the "newbie spam"! But that worked perfectly - I didn't realize that adb shell worked when booted from cwm. That's exactly what I was looking for.
zman0900 said:
Just tried this out myself. Here's the correct syntax for the fsck command:
Code:
e2fsck -fv /dev/block/stl10
EDIT: Forgot to mention also that unmount should actually be umount. Or you could just use the CWR menus to unmount partitions.
Click to expand...
Click to collapse
Thanks for this, this is why i love xda!
I have e2fsck in my /bin
On a samsung galaxy s2 i9100
How do i identify my /system & /data blocks
I cant remember how to find out!
So mine would be
e2fsck -fv /dev/block/????
Thanks
Colliebudz said:
Thanks for this, this is why i love xda!
I have e2fsck in my /bin
On a samsung galaxy s2 i9100
How do i identify my /system & /data blocks
I cant remember how to find out!
So mine would be
e2fsck -fv /dev/block/????
Thanks
Click to expand...
Click to collapse
If you run mount with no arguments, it will show a list of mounted partitions like "xxx on /system".
Colliebudz said:
Thanks for this, this is why i love xda!
I have e2fsck in my /bin
On a samsung galaxy s2 i9100
How do i identify my /system & /data blocks
I cant remember how to find out!
So mine would be
e2fsck -fv /dev/block/????
Thanks
Click to expand...
Click to collapse
Better to do /dev/block/platform/(your processor)/by-name/xxxx. Less chance of error
Colliebudz said:
Thanks for this, this is why i love xda!
I have e2fsck in my /bin
On a samsung galaxy s2 i9100
How do i identify my /system & /data blocks
I cant remember how to find out!
So mine would be
e2fsck -fv /dev/block/????
Thanks
Click to expand...
Click to collapse
the easiest was to find what /system and /data mount points actually are
cat /etc/fstab
to see a list of mount points.
toadlife said:
You should be able to do it while booted into recovery through ADB.
Boot to recovery
connect usb cable to PC
run `adb shell`
Code:
unmount /data
unmount /system
fsck /dev/block/stl9
fsck /dev/block/stl10
syntax for above commands needs to be checked.
Click to expand...
Click to collapse
How do I get the Moto X in Recovery mode to accept the adb command?
Because when I put in Recovery (Android Robot lying down) mode, the command adb and fastboot are not recognized.
rod.gui said:
How do I get the Moto X in Recovery mode to accept the adb command?
Because when I put in Recovery (Android Robot lying down) mode, the command adb and fastboot are not recognized.
Click to expand...
Click to collapse
Flash a custom recovery first. (CWM/TWRP)
Sent from Motorola Photon Q 4G LTE @ CM11
My phone is Huawei G525. It doesn't have CWM or any custom stuff, just rooted.
My problem is that it reports an imagic flagged inode and it recommends to fsck the partition (/system). The logs are saved in sdcard folder.
I can use adb and fastboot, but fastboot shell doesn't work and /system is mounted when i can use adb.
Is there any solution for me to run e2fsck on /system partition?
Or is there the case to worry about that error? The phone works fine...no random reboots, no crashes, no force closes.
Another thing...I've tried to make a romdump and system archive is damaged. Cannot be opened even with 7-zip.
mandgeo said:
My phone is Huawei G525. It doesn't have CWM or any custom stuff, just rooted.
My problem is that it reports an imagic flagged inode and it recommends to fsck the partition (/system). The logs are saved in sdcard folder.
I can use adb and fastboot, but fastboot shell doesn't work and /system is mounted when i can use adb.
Is there any solution for me to run e2fsck on /system partition?
Or is there the case to worry about that error? The phone works fine...no random reboots, no crashes, no force closes.
Another thing...I've tried to make a romdump and system archive is damaged. Cannot be opened even with 7-zip.
Click to expand...
Click to collapse
G525 DOES have CWM recovery available, find and install one so that you can fsck from recovery using adb.
Sent from Google Nexus 4 @ CM11
AndyYan said:
G525 DOES have CWM recovery available, find and install one so that you can fsck from recovery using adb.
Sent from Google Nexus 4 @ CM11
Click to expand...
Click to collapse
As far as I understand from here... http://bbs.dospy.com/thread-16432606-1-823-1.html , the bootloader needs to be unlocked. I've submitted for an update code and i'll wait. The chinese guy talks about U8950, but there are five different types. I've selected the first one, U8950-1. Maybe i'm lucky.
I've also tried to boot directly into the recovery found here... http://www.needrom.com/mobile/huawei-g525-u00/ , but that command is not allowed, maybe because the bootloader is locked. That was the only recovery i found that seems to be in english.
I'll try the same procedure to boot into recovery (fastboot boot recovery.img) because i don't want to mess things more that they are. I didn't found any tutorial in english and google translate is confusing.
Thanks!
LE. Does anybody know if Huawei rewrites the custom recovery if it's not the stock one.
mandgeo said:
As far as I understand from here... http://bbs.dospy.com/thread-16432606-1-823-1.html , the bootloader needs to be unlocked. I've submitted for an update code and i'll wait. The chinese guy talks about U8950, but there are five different types. I've selected the first one, U8950-1. Maybe i'm lucky.
I've also tried to boot directly into the recovery found here... http://www.needrom.com/mobile/huawei-g525-u00/ , but that command is not allowed, maybe because the bootloader is locked. That was the only recovery i found that seems to be in english.
I'll try the same procedure to boot into recovery (fastboot boot recovery.img) because i don't want to mess things more that they are. I didn't found any tutorial in english and google translate is confusing.
Thanks!
LE. Does anybody know if Huawei rewrites the custom recovery if it's not the stock one.
Click to expand...
Click to collapse
Well, you know this forum is dedicated for discussion about Samsung Epic 4G, not Huawei G525... But to help you out I might be able to dig in a bit more later this week when I have time. I'm a Chinese myself and can (hopefully) understand these procedures.
Sent from Google Nexus 4 @ CM11
AndyYan said:
Well, you know this forum is dedicated for discussion about Samsung Epic 4G, not Huawei G525... But to help you out I might be able to dig in a bit more later this week when I have time. I'm a Chinese myself and can (hopefully) understand these procedures.
Sent from Google Nexus 4 @ CM11
Click to expand...
Click to collapse
My phone is a Note 2 LTE N7105 - I realise not the same as this thread, but this is the only thread I have found that is discussing this. My /data partition needs an fsck, however, while I can adb to the phone when it is booted, I can't when it is in recovery.
I have TWRP 2.7.1.0 installed, and everything else works fine. When the phone is booted, I get the GT-N7105 driver appearing in portable devices in device manager, but when recovery is booted, I just get t0lte in "other devices".
Seems like the Samsung USB driver only works when the phone is properly booted, and doesn't match when booted to recovery.
Any ideas how to work around this?
paulkoan said:
My phone is a Note 2 LTE N7105 - I realise not the same as this thread, but this is the only thread I have found that is discussing this. My /data partition needs an fsck, however, while I can adb to the phone when it is booted, I can't when it is in recovery.
I have TWRP 2.7.1.0 installed, and everything else works fine. When the phone is booted, I get the GT-N7105 driver appearing in portable devices in device manager, but when recovery is booted, I just get t0lte in "other devices".
Seems like the Samsung USB driver only works when the phone is properly booted, and doesn't match when booted to recovery.
Any ideas how to work around this?
Click to expand...
Click to collapse
Yes, the workaround is to not use stupid Windows.
Works fine on linux.
run terminal app:
su
touch /forcefsck
Then reboot. It might depend on your ROM, but give it a go.
My Galaxy Nexus system partition appears to be missing Is there anyway to recreate it?
Thanks
What makes you think it's missing? What you were doing to your phone when this happened? Got Nandroid backup? More details, please..
When I attempt to mount it CWM states that it is unable to mount and when you run the log it states that the volume does not exist.
I was attempting to install Bugless Beast from Rom Manager download and it looked to me that it was successful and I rebooted and I was stuck at the Google lock screen. I have a android backup but when I attempt to restore it CWM states that it is unable to mount and erase /system which is what leads me to believe its missing.
Have you tried to flash one of factory images? Which version of GN you have? GSM/CDMA?
Yeah I have tried all the images. I have a CDMA model.
Sorry, i'll give up here. Perhaps someone else can help you.
PS. Just a thought. What if you could find .PIT file and and flash factory images from ODIN with "Re-Partition" option ticked?
Just be warned, on SGSII forums i've seen few people crying about bricked phones after doing so.
Boot int CWM, connect the phone to your PC, then open a command prompt and run the following adb commands and post the results here.
Code:
adb shell ls -l /dev/block/mmcblk0*
adb shell dd if=/dev/block/mmcblk0p10 count=5
I've been searching my _ off for two days now to find a solution for my problem, but I can't find one working for me.
What I do have right now:
NO working ROM (I believe because of a failed atempt to revert to a backup in CWM)
Access to my bootloader (unlocked through HTCDev)
Access to my recovery (Which is the latest CWM)
Fastboot/adb working
Phone boots upon the HTC logo screen
NO ROM zipfile on the SD-Card (I accidentilly deleted that, I still hate myself for that)
I've managed to push to ROM file into both /data and /system, which (ofcourse) isn't usefull to flash from because they don't show up in CWM.
What I've tried:
Reverting to a Nandroid backup, I've 2 on the sdcard. Both don't pass the part where /system is being restored.
'asd shell' to push files, or mount the SD card, does not work. First I had the error saying '--exec /system/bin/sh failure: file or dir not found (2)'. I managed to push the sh file into system, (and I believe into /system/bin), and the error changed to '[...] No directory (20)'
asd push /sdcard/; doesn't work because /sdcard is read-only.
In CWM I can't mount as USB storage, is says something about a file which can't be found.
TWRP recovery doesn't work on my device, I can touch whatever I wan't, the only button responding is the power button, which causes a locked recovery, which I can't unlock. (You need to swipe for that, which my phone seems to ignore).
I've read almost every topic on XDA and whatever Google could give me, but most solutions somewhere relied on the asd shell, or pushing into the /sdcard, or simply assume I still can mount as USB storage.
Does anyone have any suggestions left on howto get a ROM into the /sdcard so I can flash it? I would be thanking you forever!
Thanks in advance!
No ADB shell, then adb push *filename* /sdcard?
Maybe sideload a ROM?
Sent from my GT-I9300 using Tapatalk 4 Beta
I can't push files to the /sdcard since it's an read-only directory.
I tried the sideload part, but instead of executing something, it shows me the help of adb.
Any clue how to fix my shell, or get a ROM on it?
Tried typing 'adb remount' a few times and trying again?
Also, you should update your CWM to latest version so you can mount sdcard
tomascus said:
Tried typing 'adb remount' a few times and trying again?
Also, you should update your CWM to latest version so you can mount sdcard
Click to expand...
Click to collapse
I tried using remount, but that is to remount the /system partition right? I can put the ZIP on the /system partition. But CWM can't install from there.
I'm using the last version of CWM, but it gives me an error about a file not being found, so I can't mound as USB Storage device.
I returned the phone, to the store. I pretty much gave up after another few hours of struggling.
i will say what i did
first i got this from my friend and android ver is 4.2.2 and phone hang with him and storage have bug its say app use 11.5 gb and free is 500 mb and there nothing in storage
i found in forum here i can upgrade rom from 4.2.2 to lollipop by cm12 rom
i follow the steps to make it, first make root and recovery cwm but found phone already rooted i don't know by who but any way try to install cwm i can't by all ways
i try use odin but need first to go download mode to this, i press on vol down + power + home and what i found is factory mode and chinese language
search and i found i must change it by efs folder and i cant found it by root explorer or any other app
but i use EFS Professional and it cant detect the phone in backup, but when i press on device inf its say phone model is GT-I9500
and any other app in phone too detect it as GT-I9500 ?????????!!!!!!!!
i search in system to find what file make it GT-I9500 and found it was build.prop
i try to edit and correct the info and replace it ((i was take copy and it in attach))
by the way i replace it by adb shell and that what i did
Code:
adb shell
su
mount -o remount,rw /dev/block/stl9 /system
chmod 777 /system/app
exit
exit
adb push build.prop /system/build.prop
and its done now, must restart to make this file work
and until this moment its stuck at samsung logo , don't forget download mode not working just recovery is working until now its old one not cwm
are any chance to make this phone alive again?any help?