Ooops, good catch! Yeah it should read .img
Just fixed it
Sent from my Nexus 4 using Tapatalk 2
Just fixed it
Sent from my Nexus 4 using Tapatalk 2
Ooops, good catch! Yeah it should read .img
Just fixed it
Sent from my Nexus 4 using Tapatalk 2
thats the one part i don't know HOW to do - is that phone specific, or is there a general method for that??? thanks. i used "adb reboot-bootloader", but it just rebooted. it MAY be phone-specific, and these LG-L9s seem to be pretty locked down... so, if that's the case, disregard my question (i'm a noob).So plug your phone into PC via usb, have it in fastboot mode (from within bootloader) and open a new terminal, type: fastboot devices
thats the one part i don't know HOW to do - is that phone specific, or is there a general method for that??? thanks. i used "adb reboot-bootloader", but it just rebooted. it MAY be phone-specific, and these LG-L9s seem to be pretty locked down... so, if that's the case, disregard my question (i'm a noob).
Firstly, demkantor, I've clicked on the Thanks button for a great post!
Now my question. I understand how you can use fastboot to "flash" different partitions.
e.g., fastboot flash recovery some_recovery_version_x.img
will change your "recovery" partition to the one you've specified.
And, if you only temporarily want to use a recovery and not flash the partition you can issue:
fastboot boot some_recovery_version_x.img
If you're having problems, as long as you can get into fastboot mode you're "safe" as you can always flash various partitions. As I begin experimenting I'm naturally concerned about bricking the phone and am struggling with the connection between the bootloader and fastboot. Is fastboot part of the bootloader? That would imply that I need to be extra careful about the bootloader partition (is that "boot"?). If it's part of the bootloader and "boot" is the partition name does than mean if one does:
fastboot erase boot
followed by
,
fastboot reboot-bootloader
one now has a brick since the first command has erased your boot partition?
Boot.img is you kernel, the command fastboot boot xxx.img just temp runs that image as a kernel (in a sense) so it will boot whatever your telling it.
So you can take a recovery.img and just boot it temporarily but the reasons to do so are limited and once you reboot normally it will boot to os or your installed recovery
So no, fastboot erase boot will not erase your bootloader. And actually the command fastboot erase bootloader or hboot or radio - none of these are true commands, you can only overwrite these partitions and never erase or format them (at least not with fastboot)
But be careful when flashing either a radio or bootloader, be sure to make sure its for your device and the md5sum matches or you could end with a brick. But fastboot is by far the safest way to flash as you will get a return of an error if something went wrong.
Oh and fastboot is not really part of your bootloader, its an executable program that interacts with a bootloader. It is like adb in this sense. But all ROMs have adb abilities while not all bootloaders will interact with fastboot, and the ones that do may have limited options avalible
Sent from my Nexus 4 using Tapatalk 2
fastboot flash logo.bin logo.bin
C:\Android\android-sdk\platform-tools>fastboot devices
HT24LW407872 fastboot
C:\Android\android-sdk\platform-tools>fastboot erase boot
erasing 'boot'...
FAILED (remote: not allowed)
finished. total time: -0.000s
C:\Android\android-sdk\platform-tools>fastboot erase boot
erasing 'boot'...
FAILED (remote: not allowed)
finished. total time: 0.016s
C:\Android\android-sdk\platform-tools>fastboot erase system
erasing 'system'...
FAILED (remote: not allowed)
finished. total time: 0.000s
C:\Android\android-sdk\platform-tools>fastboot devices
HT24LW407872 fastboot
C:\Android\android-sdk\platform-tools>fastboot devices
HT24LW407872 fastboot
C:\Android\android-sdk\platform-tools>fastboot erase boot
erasing 'boot'...
FAILED (remote: not allowed)
finished. total time: 0.000s
C:\Android\android-sdk\platform-tools>fastboot flash boot boot.img
sending 'boot' (5764 KB)...
OKAY [ 0.842s]
writing 'boot'...
OKAY [ 1.310s]
finished. total time: 2.153s
C:\Android\android-sdk\platform-tools>fastboot erase cache
erasing 'cache'...
OKAY [ 0.109s]
finished. total time: 0.109s
C:\Android\android-sdk\platform-tools>fastboot erase system
erasing 'system'...
FAILED (remote: not allowed)
finished. total time: -0.000s
C:\Android\android-sdk\platform-tools>fastboot erase data
erasing 'data'...
FAILED (remote: not allowed)
finished. total time: -0.000s
C:\Android\android-sdk\platform-tools>fastboot erase boot
erasing 'boot'...
FAILED (remote: not allowed)
finished. total time: -0.000s
C:\Android\android-sdk\platform-tools>fastboot flash boot boot.img
sending 'boot' (5764 KB)...
OKAY [ 0.842s]
writing 'boot'...
OKAY [ 1.310s]
finished. total time: 2.153s
C:\Android\android-sdk\platform-tools>fastboot erase cache
erasing 'cache'...
OKAY [ 0.109s]
finished. total time: 0.109s
C:\Android\android-sdk\platform-tools>
Strange, did your bootloader change recently? It as if you are just unlocked and the commands are limited with out an engineering bootloader. I'm not familiar with your phone so if there is an s-off method or an eng bootloader you can flash then these commands should open up to you again
First a short explanation:
Fastboot, like ADB, is a tool to communicate from PC to Android phone. There are times when it is a must to use, and times when it is just helpful.
ADB is used within your recovery or within your OS, but when you are in bootloader mode and need to communicate with your phone then you need fastboot.
And you may ask why would i ever need this?
Well many reasons. Main one is knowledge, learning the ins and outs of fastboot, like learning ADB, can get you out of many jams.
And if you want to unlock your bootloader this is done through fastboot. Granted HTC's unlock is... well crap, but for a Nexus this is how its done.
One other reason I have to stress is learning for safety reasons, This is about the safest way possible to flash firmware to your phone (ie Radio, Hboot, Recovery)
Lastly you may want to know the limitations,
There are many of course, this isnt JTAG, it will not resurrect a hard brick, but it often save peoples phones from 'soft bricks' and lots of time when know how and when to use it.
Think of fastboot as the program that takes over when ADB cant be used, it works with firmware more than software.
So where do i get fastboot? There are a few ways but most often I would recommend getting it from the Android SDK as it is will be up to date.
or you can use THIS HANDY TOOL created by @shimp208
How do I get fastboot for Windows?Fastboot is a protocol designed to flash signed/unsigned partitions to android phones directly into the phones flash memory. If you are familiar with ADB think of it in the same way.
If you're not, just understand it is a tool designed to help flash images such as recoveries, bootloaders, kernels, etc. to your android phone. For the most part you can not use much of fastboot unless you are rooted and have an engineering SPL (Hboot/Bootloader)
If using a Nexus device you in a sense have an engineering bootloader already so don't need to worry about it like HTC folks need. But Some Nexus lines will have different bootloaders with different capabilities.
This however is not a tutorial to root your phone so i will not explain this. I will though go over SOME basics as in unlocking your bootloader to allow it to be rooted.
Fastboot.exe can be downloaded to your computer from Google's SDK found
HERE download the proper package depending on what system you are using.
also
you will need the proper drivers to allow your PC and phone to communicate. You will find these in your devices specific forum or possibly you can use PdaNet
Okay i got it, whats next?
After you downloaded the SDK package to your PC see where it is located, somewhere like this for Windows
Of course put it where you like, just know where fastboot.exe lies
*If you want to skip the SDK, you can get ADB and Fastboot by themselves with THIS HANDY LITTLE TOOL created by shimp208
Note: After you have ADB and Fastboot you will may want to finish following this guide to add a path in environmental variables.
For Windows:
Although not necessary, but to make it easier i really suggest doing these steps:
left click the Windows (start) button > right click on computer > choose properties > go to advanced system settings > advanced tab > environmental variables > in the first box (user variables for _____) click new > name it> the value is the path from earlier(yours may differ from this so double check it!) > in the second box (system variables) find a variable namedif one doesn't exist make one > double click on it > at the very end of the variable value add the same line as before but with a ; in front of it. like this:
alright click ok and you are done!
Why did I just do all that?
Well this allows you to open a command line from anywhere on your computer without changing directories to use fastboot. Pretty much we told your PC that when you typeorinto CMD where to find it. As you learn how useful fastboot and adb are this will help a lot as CDing to where you want to be is wasted time.
So I still don't know what to do or how to do it!
All right lets start simple, click the windows button and in the search field typeyou will notice a window pop up that looks suspiciously like DOS. View attachment 1980110
Here you will see a blinking cursor after your directory, lets try this type
a whole bunch of probably unfamiliar stuff should now pop up View attachment 1386065 (for the most part this is a list of commands that can be used in fastboot) if you get something likeCode:fastboot
then we need to troubleshoot, but for now i will assume it worked.fastboot is not recognized as internal or external command operable program or batch file
Now try typing
...and nothing will happen, Why? because there isn't a device attached. Make sure you have android debugging turned on in your phone (not really needed for fastboot but you do need for ADB), plug it into your computer and boot into fastboot mode. On many phones hold volume down while powering on, if this wont bring you to bootloader mode then see your device specific forum, if needed choose fastboot. Again try typingCode:fastboot devices
this time you should have a list of attached devices, this is displayed as the serial number to each. Being many commands will "do" things to your phone try typingCode:fastboot devices
If your phone is now back and running your existing OS, congratulations! :good: You now at least have fastboot set up and working properly. Now lets try a few things out and see why this can be so helpful!Code:fastboot reboot
To get fastboot installed on your Linux box first download appropriate SDK package From Here
*Not all Linux distros are the same and I don't consider myself a Linux guru, I will explain what I know about the few distributions I've used but remember if something don't work look up specifics for yours HERE
After SDK is downloaded extract contents into home folder, maybe in a folder called Android, your choice.
Now we need to make sure we have the latest java JDK installed found HERE or if you prefer you can get it from the terminal
or if using Ubuntu, the software center. (I have heard people complain about JDK7 so to be safe stick with JDK 6 for now)Code:sudo apt-get update sudo apt-get install openjdk-6-jdk
**I have a 64bit machine so I needed the 32bit libraries, you may not need this. If you do run this from terminal
**As pointed out to me by trevd, if you are using Ubuntu 12.10 or newer you should simply open a terminal and run these two commandsCode:sudo apt-get install ia32-libs
andCode:sudo apt-get install android-tools-fastboot
If you never plan on developing for android or using other tools that come with the SDKCode:sudo apt-get install android-tools-fastboot
then this should be all you need. And you may also skip the JDK install. As most people will never attempt to create
an app or ROM or mod their phone in a way that they would need more than this, these simple commands should suffice.
Downloading Fastboot
ummm.. isn't that what I just did? Possibly, but as far as I know ADB, fastboot and everything else in platform-tools wont automatically download with the SDK.
Other have told me it does, so feel free to navigate to the platform-tools folder and see if you see these applications.
If you skipped installing the SDK and just installed fastboot and ADB from the command line you can skip down to creating a path. So if you got them, skip this, if you don't, do this:
From in a terminal type
**note depending on what you named the folder the downloaded and extracted SDK is in you may need to change your cd command to something else.Code:cd ~/android-sdk-linux/tools ./android
Now a new window will pop up, Click on "Available Packages" and you will be see two boxes. One is Android Repository and the other is Third-party Add-ons.
Click on "Android Repository" then click on Install Selected. now click on "Accept All" and then click on the Install button.
Personally I like downloading all that is possible here, you may have limited space or bandwidth so all you 'need' is the contents of platform-tools.
If you want to download some API's later go for it, they aren't needed unless you are developing.
Adding a Path
Just like in windows changing directories can be brutally annoying so lets add a path. Open a Terminal and type:
or you can use gedit, whatever you have/like to use (sudo gedit ~/.bashrc)Code:nano ~/.bashrc
At the end of this text (or at the begining add the following
**again be sure this is your path (neat trick, find fastboot from within platform-tools, right click on it, go to properties, highlight the location/path and copy/paste this)Code:Android tools export PATH=~/android-sdk-linux/platform-tools:~/android-sdk-linux/tools:$PATH
Now click save, this will make so you no longer need to type ./adb all the time
I have been told a reboot is needed here but I don't think so, just type this into a command line:
Code:source ~/.bashrc
Drivers? I don't need no stinking drivers!
True, sorta, but more than likely we will need to add the android rules so your device can communicate with PC. Open a Terminal and Type
now add the following lines:Code:gksudo gedit /etc/udev/rules.d/51-android.rules
Depending on your device this should be all you need and then some, feel free to check out THIS for the most up to date vendor list.Code:SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", SYMLINK+="android_adb", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666", GROUP="plugdev"
View attachment 1980099
Now for a test!
So plug your phone into PC via usb, have it in fastboot mode (from within bootloader) and open a new terminal, type:
If you see a string of #s and letters then success! :good: you are ready to learn the ins and outs of fastboot!Code:fastboot devices
For many phones this is necessary to root, for others it is a poor way to root your phone as you may not have full access.
Many HTC model phones can be rooted with various exploits, sometimes removing the radio secure flags completely.
If you have one of these devices than I recommend this, as true radio s-off is far superior to an unlocked bootloader.
But other phones, including the Nexus line, will be fine just unlocking and do not need to worry, Although some phones like the Nexus One can profit from a new bootloader altogether.
To begin the rooting process you simply need to unlock your bootloader with this command from a terminal/CMD
and the reverse of course isCode:fastboot oem unlock
Code:fastboot oem lock
Be prepared for a full wipe of your phone when unlocking the bootloader!
But quickly if you have an HTC and choose to unlock your bootloader to root your phone follow these step:
Select your phone from the list HERE (you will need to create a log in)
there will be some legal mumbojumbo to click through (just saying you void your warranty but you knew this!)
you may need HTC sync found HERE as well as the proper RUU for your phone, the HTCDev site will inform you.
After which the site will move you through the steps to gain fastboot access, but if you followed my guide above just skip it all.
next you will need to get the identifier token, this is unique to your device and really just getting probably voids your warranty,
even if you stopped the guide here. to do so, open terminal/CMD and type
copy and paste this information into the prompt at the bottom of the page. Now wait for an email to get your token....Code:fastboot oem get_identifier_token
once you get the email with the token you can now follow their steps to unlock your bootloader...
really if at all possible i recommend not to do this method of rooting. But if you do, follow these same next steps that the Nexus devices will be doing...
Now that your bootloader is unlocked:
We will flash a custom recovery to your phone, then a custom already rooted ROM. To flash the recovery go to your device specific forum HERE and find the developers section.
Look for a custom recovery option and consider reading up on it there.
Different Android phones will have different custom recovery options depending on the developers for it. The most common is ClockworkMod, there are both touch and none touch recovery options.
some others are TWRP, 4EXT, AmonRa and Cannibal. Find out what your options are, pick one and download it.
If possible check the MD5Sum, Windows use: THIS and Linux use a terminal and type
of course replace <filename> with the file name.Code:md5sum <filename>
View attachment 1980095
If you prefer, GTK Hash is a nice program as well.
Now this should be an image not a zip, so if the extension is .img your good, if its in a .zip or .jar or whatever extract the image.
Take this image and (for simplistic sake) name it
**if using windows be sure to pay attention if your file extensions are hidden, don't name it recovery.img.img!
So be sure your phone is in fastboot mode and connected to PC, open a terminal/cmd in the same location that recovery.img is in
(cd to that directory or windows users can hold shift > right click in the folder it's in > choose open command here)
**erase recovery is not necessary but i am OCD about wiping...Code:fastboot erase recovery fastboot flash recovery recovery.img
now if you get an okay! then your good :good:
If not let me know what the output is and ill help you fix it. (I will also make a troubleshooting section in my final post)Code:sending 'recovery' (4930 KB)... OKAY [ 0.521s] writing 'recovery'... OKAY [ 0.489s] finished. total time: 1.10s
Great! Now Let's Flash a ROM
In that same developers section for your phone, you should pick out a ROM of your licking. If possible i would suggest an older version of CyanogeMod as these builds tend to be quite stable.
Also some phones may have newer ROMs requiring you to do various things to your phone. Such as changing radios or bootloaders or other things we haven't gotten to yet.
So for now try to read the OP of the ROM you like and make sure you meet all requirements.
So Im not going deep into how to flash a ROM from recovery as this is not part of a fastboot guide.
But pretty much just pick a ROM and anything else you may need (gapps, kernel, etc) and put on root of SDcard (no other folder)
Then boot to recovery, wipe all you can (I'll teach you fastboot wiping soon!) and then flash ROM + whatever else you need to and then reboot.
Another Issue With HTC's Unlocked Bootloaders
Well if this not yet another reason to try to gain true radio s-off for your phone...
From with in that ROM that you flashed you also need to unzip and extract the kernel (boot.img) this will need to be flashed through fastboot.
Once all the above steps are completed reboot into fastboot mode, if your recovery doesn't have a quick way to do so just open a terminal/cmd and type:
from here you will need to then open a terminal/cmd in the same location as that boot.img is and type:Code:adb reboot-bootloader
If it says okay you are finally done!!! Well done with flashing your first ROM but can you flash a ROM in fastboot? I mean do you need recovery at all?Code:fastboot flash boot boot.img
There are ways, and ill teach ya in the next post!
We need to download the ROM of choice to your computer. Once complete find the folder that ROM is in and open terminal/cmd to that directory
(quickest way for windows; just hold shift and right click within that folder > open command window here) of course make sure your phone is plugged into computer and in fastboot mode.
Lets see how quick and easy this really is...
In the command line type:
Seeing your serial number means we know all is goodCode:fastboot devices
Now lets type these commands:
Of course replace <superawesomerom.zip> with the correct file nameCode:fastboot erase system -w fastboot erase boot fastboot update superawesomerom.zip
and last but not least:
Code:fastboot reboot
*Its been a little while since i did this but the phone might automatically reboot after flash so no need to run the reboot command
As your phone boots into the new ROM, pat yourself on the back...
You may have noticed earlier that I had you erase your recovery before flashing a new one,
now here I had you erase system and boot, you may be wondering why.
I find that a large amount of complaints in developer threads are due to people not properly wiping before a flash.
Of course there is times when a 'dirty' flash is fine, but if you're ever not sure, wipe as cleanly as possible.
fastboot allows for about the cleanest of wipes by the way. And each partition can be done separately too.
can all be done individually, but to do these all in one commandCode:fastboot erase system fastboot erase data fastboot erase cache
If possible I recommend to do these steps before flashing a ROM, and now that you know you can do this all within fastboot mode i suggest to try it out, its quick and painless!Code:fastboot erase system -w
Don't forget to wipe your kernel too! (fastboot erase boot)
~Important~ If your device uses an emulated SD card (as in no removable micro SD but an SD partition on phone)
Then be careful wiping data/userdata as this will erase all contents of internal SD - you are forewarned!
And you did it! :good: now you are almost a pro at using fastboot!Sure this can be done, hell you can restore a nandroid if you want!
well first you need to make a nandroid back up (unfortunately fastboot cant make a nandroid for you :crying: ) Put it some where on your computer.
Personally I only keep maybe 2 or 3 nandroids on my phone's SD card as why waste space. I do however keep almost all my nandroids on my computer separated into different folders for different phones. So my path to a nandroid backup would be something like:
But here's the catch, most newer recoveries do tar backups I believe TWRP uses .win, these can not be flashed in their current form!
However most older recoveries use yaffs2 format for their backups, these will always work. Pretty much if you get a backup with various partitions as .img you're good to go!
**Hypothetically speaking here: you installed a new recovery and want to flash a nandroid made in old recovery but the two recoveries used different formats...
Well you can flash the images with fastboot, then make a new nandroid and you got them back!
...Maybe I'm stretching... oh well, here's how to!
Now the obvious stuff:
Have phone plugged into PC via USB and in fastboot mode, open terminal/cmd and change directories to that folder where your nandroid is in (or again just hold shift and right click > open command window here if using windows)
Now in terminal/cmd type:
all is good when serial number is displayed, now type:Code:fastboot devices
*This isn't 100% necessary but I'm a firm believer in wiping before any flash, even a backupCode:fastboot erase system -w fastboot erase boot
(of course change the image names if needed)Code:fastboot flash userdata data.img fastboot flash system system.img fastboot flash boot boot.img fastboot reboot
Some phones will not allow bootloader flashes unless you remove the radio secure flags, if you have a phone like this check the developers thread for a how to.
To begin, find the appropriate bootloader (sometimes referred to as an Hboot or SPL) for your phone,
Now download and check MD5sum, have your phone in fastboot mode and open a terminal/cmd in the location your Hboot.img is stored.
and of course replace 'hboot.img' with whatever you titled your imageCode:fastboot devices fastboot flash hboot hboot.img
**Do not reboot if you see 'sending.... failed' need to see the 'okay!'
I am not trying to scare you as these instances are so rare, but knowing what to do ahead of time is just common sense.
Not all devices use the same terminology for partitions, so if the above does not work than consider changing to this command:
Again replacing <bootloader.img> with the name of your imageCode:fastboot flash bootloader bootloader.img
Now flashing a new bootloader will more than likely repartition your phone, so from here you probably should flash a new recovery, then flash a new ROM.
Be prepared to do all this before flashing a new Hboot!
Flashing a KernelFlashing a radio can also be dangerous, but again the safest way to do so is within fastboot. So if possible always flash radios in fastboot mode!
**I am not referring to the FM radio in your car, rather your cellular Radio, you know where you get reception... don't ask me how to add a FM radio to your phone!
Also know OEMs commonly use baseband and radio as interchangeable terms, for the most part this is the exact same thing
First things first, know why you are flashing a new Radio. Is it because you have poor reception? Poor data speeds? Poor battery life?
Yes a new radio can cure all this, but NO ONE can tell you which radio is best for your phone, not even someone living in the same city.
The best radio for my phone will not for sure be the best for yours, even if you live down the road from me. Don't ask what Radio is best! and only flash a radio meant for your device!
Now that that's out of the way, lets do the same steps as before:
Download appropriate radio
Extract if needed (should be in .img format)
For simplistic sake name it 'radio.img'
Plug in phone to PC and open a terminal/cmd in the same location as your radio.img
Again only reboot if all goes well (It will if you follow all direction)Code:fastboot devices fastboot flash radio radio.img fastboot reboot-bootloader
Upon rebooting your bootloader you will notice your radio version has changed, congrats! You're becoming a pro!
*note, occasionally OEMs package another image called rcdata.img along with a firmware release, if they do I also recommend to flash this along with the radio
**another note, if possible try to match the ril libraries between your ROM and radio, this is device specific and you will need to see your developers thread for this info.Code:fastboot flash rcdata rcdata.img
It is not always possible or necessary to do so, but many do say it help quite a lot
Earlier I went over flashing kernels as part of HTC Unlocked Bootloader Flashing, the process is the same for anyone else as well.
Locate the Kernel you want to flash
navigate to the folder it is in (should be in .img format and lets name it boot.img)
Code:fastboot flash boot boot.img
But lets say you are a developer and have worked on a new kernel for your device, a quick and easy way to test it out may be to fastboot load the kernel:
As usual replace file/image names accordinglyCode:fastboot erase boot fastboot boot kernel ramdisk
If you do not want to erase the current kernel, just skip erasing.
But I would just have a working kernel.img handy and erase, this way I know there are no residual effects from previous kernel - choice is yours
Test it out and see how things go! Good luck! :good:Code:fastboot flash:raw boot kernel ramdisk fastboot reboot