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}