I decided to check out the Nook earlier today; naturally it's not available in Ireland so I downloaded the firmware update from Barnes and Noble and set to work on getting it to run on something.
I didn't expect to get very far, but after a little hacking it was actually working.
To get it to run I had to:
- • grab the firmware update using the tools at http://code.nookdevs.com/
- • unpack the system folder out of the firmware update using said tools and gunzip
- • replace lib/libaudioflinger.so with that from a clean Cupcake build of Android (took it from the emulator)
- • disassemble the classes.dex file inside framework/services.jar using baksmali
- • modify 'ServerThread.smali' to remove the line " if-lt v0, v1, :cond_483 " (it looped on waiting for eInk display)
- • recompile the dex file using smali and re-insert it into the jar
- • create a system.img from the system folder using mkyaffs2image
- • replace the system.img of my Cupcake emulator build with the Nook one just created
- • boot the emulator with a resolution of 480x944 (the highest I could get it; it's about 120px too thin for the eInk display)
- • unpack the system folder out of the firmware update using said tools and gunzip
This is by no means a guide, but it should hopefully point more capable Android hackers in the right direction if they want to get this booting. I'm pretty sure that's all that was required.
Networking is working fine; and the arrow keys on the keyboard control the page turning
Here are some screenshots!
UPDATE:A video for you non-believers ;-)
Nook on Android Emulator from Steven Troughton-Smith on Vimeo.
Awesome!
ReplyDeletewow, I'm installing android sdk because of this.
ReplyDeleteThanks man!!
Cool! I am not an android developer, so if you can give a detail guideline how to build the emulator will be great appreciated.
ReplyDeletenice job!. I'm getting a CRC error while unzipping the downloaded file. any idea?
ReplyDeleteIs it possible to share the valid 1.0 dat file somewhere?
Thanks.
never mind. Got it working. Thanks for the dex file fix. I would have spent hours on that.
ReplyDeleteI've gotten to the point where I'm ready to make the system image, but I can't find a working copy of mkyaffs2image anywhere - any pointers? I'm running Leopard.
ReplyDeleteSome slightly more detailed instructions would be appreciated, I attempted this last night and the emulator just hangs up on the text "A N D R O I D_" screen and doesnt go anywhere
ReplyDeletethe kernel output from the emulator says that one of the processes is failing and it is giving up
I am waiting to get one and Im reformatting a bunch of PDF's to ePUB with calibre and it would be nice to be able to look at them in the emulator for testing
use this link for mkyaffs2image - http://downloads.sourceforge.net/virtualmips/yaffs2.tar.bz2
ReplyDeleteUsing baksmali-1.1, I can't find this line:
ReplyDelete"if-lt v0, v1, :cond_483"
is it possible it is now:
if-lt v0, v1, :cond_31d
it was "if -lt v0,v1, :cond_483" in the 1.0 version. Might be different in a later version. But I don't know if the later version packages are just an upgrade or has all the files.
ReplyDeleteI meant the 1.0 version of the nook software.
ReplyDeleteI second the call for a download of the patched nook image. I'm not able to do the mkyaffs2image step because I can't get mkyaffs2image to build. I'm getting the following errors:
ReplyDelete../yaffs_guts.h:823: error: expected declaration specifies or '...' before 'loff_t'
...
Yeah ive tried multiple times and cant get it to work - it is just frozen at the android_ screen
ReplyDeletecould you just upload the patched image?
it would be much appreciated
Same issue, the final image is frozen at the Android loading screen :(
ReplyDeleteThere is a more up to date guide at http://nookdevs.com/title=Emulator based on this one.
ReplyDeleteHari, thanks for the Sourceforge mkyaffs2image link. Previously I tried a Google Android download & from another link, but both gave me about 400 ! errors trying to compile in Xcode (SL 10.6.2)
ReplyDeleteProfessr etc., hope this helps you,
https://forum.openwrt.org/viewtopic.php?id=12015
& thanks to "jeffster"
#if defined(__APPLE__) || defined (__FreeBSD__)
typedef long long loff_t;
#endif
added to devextras.h
it compiled with no issues ;-)
BTW, all of this from my perspective is to use it to fix a media player, not Android, but hope this helps fellow mac users getting the
"../yaffs_guts.h:831: error: expected declaration specifiers or '...' before 'loft'"
john
Hi Guys,
ReplyDeleteCan anyone explain - how to use Nook to browse internet to check hotmail, gmail and other sites. I have a new Nook with me. Do not know how to get a browser on this. I am not engineer (you can think me as dumb here!!). Is there any application I can download and install? Or Do I have to open the Nook to overwrite/ add the app??
Regards, Linda
I get the "A N D R O I D_" screen as well.
ReplyDeleteAnybody figured that out ?
Thanks.