• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Root [FAQ] ADB and FASTBOOT for Windows (Updated 1st June 2011)

SUroot

Extreme Android User
May 25, 2010
23,907
5,306
Riddlesden, West Yorkshire, UK
This is a very basic FAQ. Its not aimed at new users or advanced users explicitly. It is very much a work in progress and will need to be updated to add more information.

As I understand what I have put in this FAQ, it would be useful if you could comment on anything that is not clear or explained in this thread.

Please note, adb and fastboot are NOT the same. They are both command line tools but the similarity ends there. This FAQ contains information about both

Contents:


What is adb shell?
How do I set up my Windows PC to use adb and fastboot?
How do I get into adb shell?
How do I use adb (examples)?
What other adb examples / commands are there?
What is fastboot?
How do I use Fastboot?
Why would I flash a Hboot?
Why use fastboot to flash radio?

What is adb shell?
adb shell is a linux command line tool (because android is based on linux) used to send commands to your android device. For S-ON devices, this is crucial for modifying files in the /system partition (where the rom sits) as you cannot modify anything in /system when the rom is running without S-OFF (e.g removing system apps).

From Google:

Android Debug Bridge (adb) is a versatile tool lets you manage the state of an emulator instance or Android-powered device. It is a client-server program that includes three components:

  • A client, which runs on your development machine. You can invoke a client from a shell by issuing an adb command. Other Android tools such as the ADT plugin and DDMS also create adb clients.
  • A server, which runs as a background process on your development machine. The server manages communication between the client and the adb daemon running on an emulator or device.
  • A daemon, which runs as a background process on each emulator or device instance.

How do I set up my Windows PC to use adb and fastboot?


  • Download SDK Tools only
  • Open the .rar file, then drag and drop the folder "android-sdk-windows" to the C: drive
  • Right click My computer > Properties > Advanced > Environment Variables
  • under system variables click "path" and click "edit"
  • at the end of the line add a sem semi colon ";" and without a space put C:\android-sdk-windows\tools - It should look like ;C:\android-sdk-windows\tools then click ok.

*Thanks to Rastaman-fb for this.

As I am rooted using unrevoked already, I have got the hboot drivers installed. I haven't tested this on a clean machine. If this does not work for you / does not connect to the device, please install the Hboot Drivers - follwing the steps in the rooting guide pre-requisites section here

How do I get into adb shell?
Once set up like above, open a command prompt (Start > Run > type "cmd" and press [ok]).

From here, type "adb shell" and press Enter.

Code:
adb shell


How do I use adb (examples)?
If you are modifying /system, it is best to boot into recovery, connect the phone via usb and start adb shell as instructed above. If you are S-ON, you can only modify system whilst in recovery anyway. S-OFF users can use the app root explorer***

To modify /system, you must mount system.

So after starting adb shell, type "mount /system" and press enter. e.g.

Code:
adb shell
mount /system
From here, you can now replace existing / install new system apps. Lets say for example, you have a Gmail.apk (different version to installed) on your c: drive (c:\Gmail.apk) that you want to replace in /system/app. You need to have mounted system, then exited adb shell before "pushing" the apk.

The command is adb push and is case sensitive. The destination name, if it differs to the source name will cause the file to be renamed to the destination name, so take care.

From start to finish this would be:

Code:
adb shell
mount /system
exit
adb push c:\Gmail.apk /system/app/Gmail.apk
You can do similar with install for new apks.

You can also list the system/apps to check it is there.

Code:
adb shell
mount /system
exit
adb install c:\Gmail.apk /system/app/Gmail.apk
ls /system/app
You can also push new frameworks that you may have themed.

Code:
adb shell
mount /system
exit
adb push c:\framework-res.apk /system/framework/framework-res.apk
ls /system/app
You can also pull apps using adb pull and using the same concept, you need to designate where to pull it too.

Code:
adb shell
mount /system
exit
adb pull /system/app/Gmail.apk c:\
But I prefer to use the filename to ensure it is definitely in the correct place.

Code:
adb pull /system/app/Gmail.apk c:\Gmail.apk
adb pull can be useful if you want to edit the .apk on your PC

Please note if you are still in command prompt, you only need to mount /system once.

***It's worth noting, if you are S-OFF and intend using ADB whilst android is running (although may as well use a terminal emulator on the phone) You must mount /system as read / write.

eg:

Code:
mount -o rw,remount /dev/block/mtdblock3 /system
What other adb examples / commands are there?
Code:
adb devices
Prints a list of all attached emulator/device instances.

Code:
adb help
Prints a list of supported adb commands.

Code:
adb shell
Issues a shell command in the target emulator/device instance and then exits the remote shell.

Code:
adb push
Copies a specified file from your development computer to an emulator/device instance

Code:
adb pull
Copies a specified file from an emulator/device instance to your development computer.

Code:
adb install
Pushes an Android application (specified as a full path to an .apk file) to the data file of an emulator/device.

Code:
adb logcat
This lists all the things in command line format that your phone is doing. It can be very useful to determine if you have a boot loop as you will see the same lines of code looping on the screen. If you have installed a theme, it may even be able to identify if a specific image is missing from your framework-res.apk

A full list of commands can be found here

There is an application from PC you can use here:

About QtADB

I have not tested this myself though, so I cannot recommend it personally. Give it a try and let me know. I will test it in due course.

What is fastboot?
Fastboot is 2 things. It is a mode on the phone, which looks a little like Bootloader. You can access it by holding back whilst turning on the phone (from off, Back+power)

It is also a way of flashing radios, Splash screens, recovery and Hboots in a command line method from a PC much like adb. You can only use this method to flash if you are S-OFF

How do I use Fastboot?
If you are simply flashing recovery, radio, hboot, fastboot commands are best. For Splash Screens, I tend to use Android Flasher as it converts the .bmp image for you.

The thread is here on XDA But I use this version: Android Flasher for no particular reason other than I know it works for me.

It is simple to use. You open the app, tell it that you want to flash a splash screen and click the begin button. Browse to the file and bingo. Done. You need to have the phone in fastboot mode as previously mentioned.

**Please note that you can only flash .img files via fastboot. However, Fastboot flasher will convert splash screen images from .bmp files to .img for you (as it isn't usually straight forward) so if you have a splash image already in .img format, flash it using manual commands. I recommend using fastboot commands for everything where possible.

It is very important when fastboot flashing, to ensure the process is not interupted by power loss, usb disconnects

Fastboot commands (Via command prompt similar to adb).

Code:
fastboot flash radio c:\radio.img
...assuming your radio is called radio.img and is on c:\

Code:
fastboot flash recovery c:\recovery.img
Code:
fastboot flash splash1 c:\splash.img
Code:
fastboot flash hboot c:\hboot.img
and so on...

***please note the command for radio or recovery will always start:
Code:
fastboot flash radio
Code:
fastboot flash recovery
Where the third word is telling what and to where is being flashed. Only the fourth string will change and this is dependant on your file name and location

Why would I flash a Hboot?
If you have decided to flash an alpharev partition table, you would flash this as a hboot to change the internal memory NAND partitions.

Why use fastboot to flash radio?
There are a couple of reasons for this.

1) You are s-off, so you may have changed your partition table / layout. Flashing a radio.zip via recovery means that the .zip file will unpack the radio.img in the /cache partition. This requires over 25MB /cache available to do so. If there is not enough space, you could have big problems.

2) Its better. It removes the additional layer of software (i.e recovery) on your phone to go wrong.



*as mentioned earlier, this is a work in progress and will need a lot of work to get all the info you may need. Please do feel free to comment in this thread as to what is required.

Thanks to all past and present who have contributed to this.
 
A small comment:
In the section "How do I set up my Windows PC to use adb and fastboot?", it is not enough to unpack the SDK Tools only in C:\. You will need to go deep to select "android-sdk-windows" directory (just above "tools") and move it directly under c:\. Only then the adb commands get recognized in cmd shell.

Ah yes you're right.

Will adjust, thanks

edit> changed .rar directory structure and reworded the line.
 
Upvote 0
A small comment:
In the section "How do I set up my Windows PC to use adb and fastboot?", it is not enough to unpack the SDK Tools only in C:\. You will need to go deep to select "android-sdk-windows" directory (just above "tools") and move it directly under c:\. Only then the adb commands get recognized in cmd shell.

ive just tested it as i packed those tools
you can extact to c:\ as the folder inside is android-sdk-windows and as such when exctracted becomes c:\android-sdk-windows

it was correct

the error happens if you right click and click "extract to android-sdk-windows" which would then become c:\android-sdk-windows\android-sdk-windows\
if you put it in c and click "extract here" or click "extract files" and choose C:\ its correct

EDIT: did you change my folder structure SUroot as its a rar instead of a zip?
 
Upvote 0
ive just tested it as i packed those tools
you can extact to c:\ as the folder inside is android-sdk-windows and as such when exctracted becomes c:\android-sdk-windows

it was correct

Yeah but as dropbox only does single files, I .rar'd the whole folder that contains the zip and the readme.

I've edited the one linked so its just a .rar with the android-sdk-windows and read me. Then I edited the line in the faq to ope rar and drag android-sdk-windows to c:\
 
Upvote 0
In the section "How do I use Fastboot?" when using Android Flasher, perhaps it is handy to mention what what each item in checklist is trying to flash (it is not explained properly at XDA).

For example, I was confused with Splash item: it wants to flash a bmp file, while Alpharev gives you an img file:
You can download the stock splash1 screen for HTC Desire from here. http://alpharev.nl/desire_stock_splash1.img
 
  • Like
Reactions: SUroot
Upvote 0
In the section "How do I use Fastboot?" when using Android Flasher, perhaps it is handy to mention what what each item in checklist is trying to flash (it is not explained properly at XDA).

For example, I was confused with Splash item: it wants to flash a bmp file, while Alpharev gives you an img file:


added:

**Please note that you can only flash .img files via fastboot. However, Fastboot flasher will convert splash screen images from .bmp files to .img for you (as it isn't usually straight forward) so if you have a splash image already in .img format, flash it using manual commands
 
  • Like
Reactions: Usta
Upvote 0
Hi,I want a new Hboot (oxygen)
I currently have CM7 hboot
When using android flasher - I get a cant find cache error and it just fails..
any ideas? I dont know how to use fastboot (tried to read up on it but no idea when I'm supposed to be typing all these commands)

is android flasher the best way to flash a hboot?
thanks
MB
 
Upvote 0
If you read this FAQ, it advises how to set up your PC to use fastboot and ADB.

Once you have done that, the fastboot commands are input in cmd (command prompt).

The command you will want is:

Code:
fastboot flash hboot c:\bravo_alphaspl-oxygen.img
for example, providing the file is called that and is on the C:\ drive and not in any folders.

Your phone needs to be in fastboot mode too. This is all explained in the FAQ, except your specific command of course
 
Upvote 0
If you read this FAQ, it advises how to set up your PC to use fastboot and ADB.

Once you have done that, the fastboot commands are input in cmd (command prompt).

The command you will want is:

Code:
fastboot flash hboot c:\bravo_alphaspl-oxygen.img
for example, providing the file is called that and is on the C:\ drive and not in any folders.

Your phone needs to be in fastboot mode too. This is all explained in the FAQ, except your specific command of course

ok, thanks, so I've set up SDK and changed patch system variables.
so I plug in phone before I start, making sure its in fastboot USB and type in command prompt "fastboot flash hboot c:\bravo_alphaspl-oxygen.img"

do I need to point the command prompt to the phone in anyway or just the fact Ive input "fastboot" point the image to the phone? I'm just worried about doing something bad to my c:/ drive (sorry complete noob here)

thanks SUroot for your help so far..
 
Upvote 0
Once your device says "fastboot USB" on the screen, it is connected and automatically becomes the target device.

You can't do anything to your C: drive using this command.

fastboot flash hboot c:\bravo_alphaspl-oxygen.img

Basically means:

run fastboot tool to flash to connected device a hboot image which is this file
 
  • Like
Reactions: Tyseyh
Upvote 0
great thankyou all worked a treat
MB


Once your device says "fastboot USB" on the screen, it is connected and automatically becomes the target device.

You can't do anything to your C: drive using this command.

fastboot flash hboot c:\bravo_alphaspl-oxygen.img

Basically means:

run fastboot tool to flash to connected device a hboot image which is this file
 
Upvote 0

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones