Hardware News

Rooted NookColor can now use the Android Market

Great news for all you NookColor owners out there, especially if you have rooted it. Now you have a nice, affordable tablet but a bit of a pain to install stuff sometimes and no Android Market access… wait! Now you can have the Android Market on your NookColor, so you’ll be able to play those games you’ve wanted from the Android Market.

While this procedure is fairly risky right now, especially since it is new, it is possible to be done and has been. However, before you do this, please be aware you could possibly mess up your NookColor so do this at your own risk!

Prerequisites:

  • You must have rooted your NookColor prior to following these instructions.
  • You will need adb working. That may involve following the instructions at: NookColor USB ADB.
  • You must have installed the Android SDK.
  • This will require that you have installed Java.
  • You must have a gmail account. Even if you never use it again, set one up.
  • You must have installed sqlite3 on your desktop PC. You only need the command-line shell. You should have a copy in the tools folder under your android-sdk installation directory. If not, you can download an installer for linux, mac or windows at http://www.sqlite.org/download.html.

In addition you should Install su and the Superuser app.

You should be familiar with Set Read-Write access for the NOOKcolor system partition

For full instructions on how to get the Android Market on your NookColor and files needed, head over to NookDevs!

Website Referenced: NookDevs

Update Dec, 12th 2010: For convenience I’ve posted the instructions exactly as they are on NookDevs for you below. Please remember, this is risky, as with anything regarding rooting your device, so proceed at your own risk.

Update Dec. 14th 2010: Added a couple of screenshots of the new Android Market and Angry Birds on a rooted Nook Color. Thanks goes to Stephen Long!

{gallery}galleries/nook{/gallery}

Download required files

Download each of the following to a folder on your desktop.

Optional:

If you have a copy of the Android app Root Explorer you can do some of the copying from the nook rather than from the adb shell command line. However, without market access on an android device, it’s impossible to get a legal copy of the app, since it is not free. Therefore, the following has been written using freely available resources.

Install the gapps google applications onto your NookColor

The gapps applications are a standard set of apps available on most Android devices. The first step in getting market working on your nook is to get the gapps apps working, specifically, the gmail application. The nc_gapps.zip is a set of just the files you will need for this.

Unmount both the internal partition and the SD card (if applicable) from within your OS but leave the USB cable connected. (Eject the drives.)

Move the nc_gapps.zip into the directory with the adb program.

At a command prompt, cd to the folder containing adb (tools or platform-tools), and type the following commands

adb push nc_gapps.zip /media adb shell mount -o rw,remount -t ext2 /dev/block/mmcblk0p5 /system  cd /media miniunz -x nc_gapps.zip -d /system/  echo "ro.config.nocheckin=no" >> /system/build.prop exit 

At the miniunz step, if you are prompted to overwrite answer A for All.

Install the Youtube App

The file you downloaded for the Youtube app is called signed_YouTube.apk.

Using adb install that program onto your NC.

adb install signed_YouTube.apk adb reboot 
  • Unplug the NC.
  • On the NC, go to extras, and start the Youtube app.
  • Press the menu button on the bottom of the screen.
  • Choose My Channel.
  • Log in with your gmail account.

Modify the packages.xml file

After the NC reboots,

adb pull /data/system/packages.xml 

This will copy the packages.xml file onto your pc.

Now, you need to edit this file. Do not use notepad! You need to use an editor which will respect unix style line endings. On windows, notepad++ or Crimson Editor are good choices.

In this file find the string “uid.system”. It will be a long ways down. (on my computer it was past line 900.) Use search. You should find a line that looks like:

<shared-user name=”android.uid.system” userId=”1000″>

Remove the 3 lines beneath this one. They should look similar to:

<sigs count="n"> <cert index="n" /> </sigs> 

n is an integer that may be different for everyone. After removing these lines, the line immediately after “<shared-user…>” should be “<perms>”

Save.

Now, push the modified file back to the NC.

adb push packages.xml /data/system/ adb reboot 

Disconnect the USB cable.

Verify the steps to this point

In extras, attempt to run Gmail. Gmail should work.

In extras, attempt to run Market. Market should come up and load the Terms of Service which you should Accept. You will then get a server error. That is correct. It is caused by our device not having a valid androidId.

Generate a valid androidId using the AVD emulator

  • Run the Android SDK Manager.
  • Choose “virtual devices”
  • Create a new Virtual device. You can name it anything you want.
    • Choose Android 2.1-API Level 7 as the target device.
    • In the SD Card Size field enter 100M
    • In the Skin field choose: Built-in: Default (HVGA)
    • In the Hardware Properties grid at the bottom add the following options:
      • Abstracted LCD Density: 160
      • Touch-screen support: yes
      • Device RAM size: 1024
      • Keyboard support: yes

Once the AVD is in your list, click on it and then click Details on the right hand side.

Make a note of the path.

Move the system.img you downloaded way back up at the top of these instructions into that directory.

Start the AVD. Click through the opening process. Eventually, you will be asked to sign into your account. When prompted, sign in with your existing Gmail credentials. Use CTRL+F11 to slide the keyboard in and out when prompted.

Ensure that the NC is not plugged in.

Run this command to get the androidId from the emulator:

adb shell sqlite3 /data/data/com.google.android.googleapps/databases/accounts.db “select * from meta”;

It’s the long number after androidId|, SAVE IT!

Close the android emulator. (Just close the window, there is no special way to close the emulator.)

Add the generated androidID to the NC

This processes uses a sqlite3 command shell to modify a sqlite database we are going to get from the NC. If the sqlite3 executable is not in your path, in the commands below you will need to include the path to it.

Note: In the command line instructions below, do not fail to replace ANDROID_ID_FROM_EMULATOR with that long number we made a note of above.
  • Connect your NC back to USB.
adb pull /data/data/com.google.android.googleapps/databases/gls.db sqlite3 gls.db update meta set intvalue='ANDROID_ID_FROM_EMULATOR' where name='androidId'; .q adb push gls.db /data/data/com.google.android.googleapps/databases/ adb reboot 

If you did everything perfectly, then at this point, market should work.

{jcomments on}

Share This

You Might Also Like