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!
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.
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!
Download required files
Download each of the following to a folder on your desktop.
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
Remove the 3 lines beneath this one. They should look similar to:
<cert index="n" />
n is an integer that may be different for everyone. After removing these lines, the line immediately after "<shared-user...>" should be "<perms>"
Now, push the modified file back to the NC.
adb push packages.xml /data/system/
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
update meta set intvalue='ANDROID_ID_FROM_EMULATOR' where name='androidId';
adb push gls.db /data/data/com.google.android.googleapps/databases/
If you did everything perfectly, then at this point, market should work.
AndrewH - Andrew is the Founder and Editor-in-Chief of DroidGamers. Having been a hardcore PC and console gamer all his life, this passion is now applied to Android gaming and writing about it. When not playing or writing about Android games, he spends his time with his son.