Emulator
From nookDevs
It is possible to run the nook firmware in the Android Emulator, as discovered by Steven Troughton-Smith.
Instructions for Unix/Linux
In order to do this, you will need to:
- Download the Android SDK and install it. Install the Platform 1.5 SDK using tools/android in the Android SDK.
- Grab the original 1.0.0 image from bn.com (mirrored here: multiupload).
- Run dd if=signed_bravo_update.1.0.0.dat of=signed-bravo-update.1.0.0.tar.gz bs=1 skip=152 (On Windows use this tool. At the command line run gzip-extract signed-bravo-update.1.0.0.tar.gz bravo_update.dat. NOTE: gzip-extract requires the .net framework. Afterwards rename bravo_update.dat to signed-bravo-update.1.0.0.tar.gz)
- Extract signed-bravo-update.1.0.0.tar.gz.
- Rename bravo_update.dat to bravo_update.tar.gz and extract it.
- Extract root.tgz.
- Extract root/system/framework/services.jar with your favorite unzip utility.
- Download and install smali. You need at least baksmali-1.1.jar and smali-1.1.jar. For your sanity, grab the wrapper scripts as well.
- Run
baksmali classes.dex
on the classes.dex from services.jar to disassemble services.jar - Edit out/com/android/server/ServerThread.smali and remove the line
if-lt v0, v1, :cond_483
This should be line 966. (In version 1.0.0) - Run
smali out/
to re-assemble classes.dex with our fixes. - Rename out.dex to classes.dex and copy this classes.dex to services directory, overwriting the original classes.dex.
- Delete the out directory and re-jar the services directory.
- Make an Android Device (AVD entry) in the Android Emulator with target platform 1.5 and skin/screen size of 549 by 924 (real resolution is more like 600x944 but the emulator won't start at that size), name it nook (case sensitive).
- If you are unable to create the AVDs (something like Error: Ignoring platform 'google_apis-3-r03': build.prop is missing. ) then install Eclipse, install the Android plugins for Eclipse and you will be able to create the AVDs from there.
- grab lib/libaudioflinger.so from stock system.img supplied with Android SDK using unix utility unyaffs to extract the file
- overwrite the libaudioflinger.so from the system/lib directory in the nook firmware with the stock Android SDK one.
- use mkyaffs2image to make a system.img of the system/ of the nook firmware.
- rename system.img in the 1.5 firmware platform folder to system.good and copy in replacement system.img file you just created (it will be bigger than the SDK Android system.img (approximately 108Mb)
- Run the emulator by using command line
emulator @nook -shell -show-kernel -verbose
The emulator will take a few minutes to boot. - You will NOT be able to register your emulated Nook with BN.com but you can sideload epub books but placing them in system/media/guides when you create your replacement system.img file mentioned in step 17.

