See Rooting new hardware FIRST if you have a nook original with a 1003* serial# or above.
Belated congratulations to [mbm] and pokey9000 for rooting the Nook Color. Check out our Nook Color portal also.
User:TimRiker has been re-despamming. New user registration disabled for a while. Need wiki help? Contact an Administrator.

ADB Over USB (Nook Classic)

From nookDevs

Jump to: navigation, search
Note: If you are working on a nook color, please see these instructions instead: NookColor USB ADB. This page is for the original nook eink device.

ADB, or Android Debug Bridge, is a versatile tool lets you manage the state of an emulator instance or Android-powered device.

As of NookDevs Softroot/ROM 2.4.1 (B&N:1.4.0), ADB on the nook is done over USB only by default.

This functionality was introduced thanks to JesusFreke. The source diff and relevant files can be found here.

You may need to do some extra steps in order for your ADB over USB to work.




  1. Download the Android SDK from Unpackage to c:\androidsdk
  2. Download the driver here: (mirror1) Unpackage to C:\nookadbdriver
  3. Run C:\androidsdk\android-sdk-windows\SDK Setup.exe
  4. Go to "Settings", check "Force HTTPS to HTTP"
  5. Go to "Available Packages", click the >
  6. Click the checkbox next to the android 1.5 platform sdk.
  7. Click "Install Selected" then "accept", it will then download and install the 1.5 SDK platform. You can close the setup when completed.
  8. Go to Control Panel/System/Advanced System Settings, click the "Environmental Variables" button.
  9. Click the "Path" in the system variables and edit it. Add (DO NOT DELETE ANYTHING) ;C:\androidsdk\android-sdk-windows\platform-tools (NOTE: this is true for the current version of the sdk. older versions have the adb file located in android-sdki-windows\tools, so check your sdk to see where ADB is located, then add the folder that ADB is in)
  10. Save and get out of there, plug in your nook.
  11. Go to your device manager (Should be in system somewhere), Click "Other devices" and you should see "ADB Device"
  12. Double click it, and click "update driver"
  13. Choose to browse your computer for it, point it at c:\nookadbdriver
  14. It may pop up a warning about verifying publisher, click "OK"
  15. Hit windows key + R and type adb shell
  16. You're done!
    (Optionally if the above doesn't do it.)
  17. Restart/start ADB daemon
    adb kill-server
    adb start-server
  18. Make sure "Start ADB" is selected in Wifi Locker.
  Question: Why I can't installl drive  for "ADB Interface"
  Answer: you need edit "android_winusb.inf" add follow lines into section [Google.NTx86] or [Google.NTamd64]:
   ;Nook E-Ink
   %SingleAdbInterface%        = USB_Install, USB\VID_18D1&PID_0001
   %CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_0001&MI_00


  1. put this in your /etc/udev/rules.d/51-android.rules
    SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
  2. Restart/reload udev
    /etc/init.d/udev reload
  3. If the nook was plugged in, unplug it and plug it back in
  4. Restart/start ADB daemon in USB mode
    adb kill-server
    adb start-server
  5. You should now be able to run adb commands. There is no "connect" command required like there was for wifi
    adb shell
    adb lolcat

Ubuntu Maverick Meerkat

The instructions above don't quite work for Maverick, so if you haven't been able to ADB since updating, here are the steps you need:

  1. Download the latest version of the Android SDK[1]
  2. Extract the file to wherever you want to keep your sdk (I like to put it in the same folder as Eclipse).
  3. Create the configuration for the nook when it connects over USB. First, open/create a .rules file for android:
    sudo gedit /etc/udev/rules.d/51-android.rules
  4. Add this line for the nook:
    SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
  5. Save and close gedit.
  6. Restart udev:
    sudo reload udev
  7. If nook was plugged in, unplug it and plug it back in (note: if the below doesn't work, try restarting your computer)
  8. In a terminal, cd to the android sdk's platform-tools folder (note: the adb is located in Platform Tools in the current version of the sdk; older versions have it located in tools, so check both folders to see where your adb file is located):
    cd /home/user/android-sdk-linux_86/platform-tools/
  9. Restart the adb server:
    ./adb kill-server
    ./adb start-server
  10. Now you can use the adb shell:
    ./adb shell
  11. You'll know you're in the shell because there will be a "#" at the start of each line in the terminal.
  12. When you're done using the adb shell, type exit.


  1. Install android sdk for 0S X
  2. ...
  3. Profit! (No further configuration should be needed.)

There have been reports of problems using ADB over OS X with the Nook Color. For those using 1.1.0 the following workaround may help.

  1. First hook the Nook Color up to the Mac
  2. Eject the Nook Color (and SD card if applicable), but don't unplug it.
  3. Finally uncheck then check the "USB debugging" option in the NookColor Tools app.
    • If this is your first time checking it, it should be unchecked in which case you need only check it once.
    • To access this option, load NookColor Tools, and click on All Settings > Development.

If you do this, the Mac should mount the Nook and ADB should recognize it. This problem may be a symptom of a bug in NookColor Tools, or perhaps some more obscure conflict with the Nook Color and OS X.

README from initial distribution

This is a kernel module for the nook 1.4 firmware. It has support for both mass
storage devices as well as adb over usb.

1. Overwrite the existing /lib/modules/g_file_storage.ko (on the nook) with the
version from this archive.

2. Overwrite the existing /sbin/adbd (on the nook) with the version from this

3. Reboot nook

adb connect <your_nooks_ip>:5555
adb push g_file_storage.ko /lib/modules/g_file_storage.ko
adb push adbd /sbin/adbd
adb shell reboot

Once it has booted back up you can plug in the nook as per normal, and can
connect with adb, and see both exported drives.

You can eject the drives on your computer and the nook will leave the
"USB Drive Mode" and go back to the home screen. After that, you will still
be able to connect to adb as long as it remains plugged in.

The sources for this module are in drivers/usb/gadget/g_file_storage_adb.c, in
the kernel source at

When building the module from source, the module will actually be named
g_file_storage_adb.ko. You should rename it to g_file_storage.ko for use on the
nook. Alternatively, you could change the name of the module that gets loaded
in init.rc.

adbd was compiled from the source in the cupcake-release branch in aosp, with
a small change to make it wait for up to 5 seconds for the usb device to become
available (see adb.c.diff)

By default, you won't be able to use adb over wifi, using this module/adbd. But
if you set the persist.adb.tcp.port system property

    setprop persist.adb.tcp.port 5555

it will cause adbd to listen on the specified port so you can use adb over both
usb and wifi. Note that adb over wifi is insecure and not recommended. Anyone
on the same local network could potentially connect to your nook.

Note for 1.4.1

If your nook is running 1.4.1, you'll need a slightly different version of g_file_storage.ko, which can be found here. All other instructions are the same. If any other firmwares are using kernel version 2.6.27-svn20016, this should work for those as well.

Binary for 1.5

Link to the 1.5 module binary (thanks JesusFreke) -

It is not working. Looks like .ko file was built with release optimizations (-O2 ?), while kernel and all previous modules are in debug mode. (RemoveMe) --Nomad 03:12, 23 November 2010 (PST)

Where can I find any detailed instructions on how to root a Nook using a Mac?

Personal tools
Nook Classic
Nook Simple Touch
Nook Tablet
Google AdSense