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


  1. SUroot

    SUroot Well-Known Member Developer

    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 (Text):
    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 (Text):
    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 (Text):
    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 (Text):
    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 (Text):
    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 (Text):
    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 (Text):
    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 (Text):
    mount -o rw,remount /dev/block/mtdblock3 /system
    What other adb examples / commands are there?
    Code (Text):
    adb devices
    Prints a list of all attached emulator/device instances.

    Code (Text):
    adb help
    Prints a list of supported adb commands.

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

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

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

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

    Code (Text):
    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 (Text):
    fastboot flash radio c:\radio.img
    ...assuming your radio is called radio.img and is on c:\

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

    ***please note the command for radio or recovery will always start:
    Code (Text):
    fastboot flash radio
    Code (Text):
    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.

    Advertisement
    :
    sirpaa, dan55, jdash and 18 others like this.
  2. Usta

    Usta Well-Known Member

    Very informative. Excellent post! :)
    SUroot likes this.
  3. SUroot

    SUroot Well-Known Member Developer

    Thanks.

    Please do let me know if you see something obvious missing or that doesn't make sense.

    I created this in a piece-work fashion between incidents at work, so its not necessarily articulate :)
  4. Rastaman-FB

    Rastaman-FB Well-Known Member

    looks good man
    SUroot likes this.
  5. SUroot

    SUroot Well-Known Member Developer

    Added:

  6. kewlbuddy

    kewlbuddy Well-Known Member

    good post.

    may be you can also add tools such as android flasher,fastboot commander and qtadb which are simple to use.
    my .2

    edit: just saw you already added android flasher
    SUroot likes this.
  7. SUroot

    SUroot Well-Known Member Developer

    Fastboot commander I also have linked in the useful downloads thread, but I could link it here. not used it myself though.

    Haven't seen QTadb. Whats that?
  8. kewlbuddy

    kewlbuddy Well-Known Member

    SUroot likes this.
  9. SUroot

    SUroot Well-Known Member Developer

    I've put a link in just above where fastboot section starts. As I haven't tested it myself, I can't give it a recommendation but always useful for people to be aware.
  10. shauny13

    shauny13 Well-Known Member

    Thankyou so much, this is one area i defo need help with, always been crap with command prompt type stuff. :D
  11. SUroot

    SUroot Well-Known Member Developer

    Cool. Well have a play and see if theres anything that I need to elaborate on please :)
  12. ajh94

    ajh94 Well-Known Member

    Really helpful... Cheers man! :)
  13. Usta

    Usta Well-Known Member

    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.
    SUroot likes this.
  14. SUroot

    SUroot Well-Known Member Developer

    Ah yes you're right.

    Will adjust, thanks

    edit> changed .rar directory structure and reworded the line.
  15. Rastaman-FB

    Rastaman-FB Well-Known Member

    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?
  16. SUroot

    SUroot Well-Known Member Developer

    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:\
  17. Rastaman-FB

    Rastaman-FB Well-Known Member

    i see
  18. Usta

    Usta Well-Known Member

    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:
    SUroot likes this.
  19. SUroot

    SUroot Well-Known Member Developer


    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
    Usta likes this.
  20. melonbaps

    melonbaps Active Member

    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
  21. SUroot

    SUroot Well-Known Member Developer

    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 (Text):
    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
  22. melonbaps

    melonbaps Active Member

    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..
  23. SUroot

    SUroot Well-Known Member Developer

    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
    Tyseyh likes this.
  24. melonbaps

    melonbaps Active Member

    great thankyou all worked a treat
    MB


  25. SUroot

    SUroot Well-Known Member Developer

    Good news. Now enjoy!
Loading...

Share This Page