It is very possible to run the Barnes and Noble Nook firmware in the Android Emulator. It is time to start developing some Google Android Apps for it.
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.





Reply With Quote

Bookmarks