Nook Reversing
From nookDevs
Contents |
Hack Methods
There's a few different ways embedded devices are usually "hacked"
- JTAG
- Serial
Android adds another option: ADB. ADB is a debugging protocol that can work over USB, and less commonly TCP/IP. From what I can tell from seeing android docs, USB support requires kernel support. Fore more information please visit http://developer.android.com/guide/developing/tools/adb.html.
We do have a root shell over adb, but with TCP/IP only.
What does this mean?
- We can't debug anything when we're in 3g mode.
- We can't debug anything when we're in airplane mode (No 3g or wifi).
- We can't debug until wifi starts (which usually requires loading the store or other internet requiring area)
Successful Attempts
Low Level Interaction With E-Ink Display
The E-Ink display is s1d13521 There's a framebuffer device on it that reports it as a 4hz display You can do very basic controlling of it from the shell
cd /sys/devices/platform/s1d13521fb.0/ echo "1" > image # Blanks the screen echo "0" > enable # Disables the screen
SD card swap
Some have swapped the original SanDisk 2GB microSD with a 'new' microSD of the same brand, by just dd'ing the original image over. Be aware that not all 2GB SDs are exactly the same size. In particular it has been noted that a PNY SD is slightly smaller than the original SanDisk (which is 1977614336 bytes). Because of this, you are unable to simply dd the original image, because the partition table does not work. I haven't experimented with trying to build a workable image onto the slightly smaller SD, however that might be problematic because of the way the boot info is stored near the tail end of the 3rd partition.
JTAG
+---------------+ | \ | SD CARD +-| | SLOT | | | | | +-------------------+ TCK TMS TDI RST TDO RST RX TX GND VCC NOTE: TX is connect to SMDK6410's TX , so need connect to pc's RX Rate: 115200 8 N 1
There's an interesting post about connecting to nook classic via JTAG here (with pictures).
Failed Attempts
SD card swap (different size)
Several people have tried to replace the memory card with a larger one to no avail. The system refuses to boot. Some have hypothesized that it's due to 2GB being SD and 4GB+ being SDHC.
Running Android Apps
I have been able to run Android IRC, but it sits at the main screen with a blank (black) touchscreen portion, not allowing me to do anything with it. I am guessing this is due to the multiple screens, and hacks made in order to get this to work.
UPDATE: See above for a fix...
Robbie has been looking into alternative input methods, such as VNC or an adb bridged control.
Serial Port
The connector under the secondary (user) microSD card has a serial port. See [1]
Plans of Action
Jesusfreke has given me an alternative Launcher.apk, and I've attempted to use "Advanced Launcher" to no avail. The initial screen comes up nicely, I get a choice to go to com.device.android or com.device.bravo, and I'm able to go to Bravo without issue, but going to com.device.android brings up a neverending error loop.
Having an alternative launcher to go into a generic android mode seems to be best case scenario, we leave the bravo (B&N) stuff alone while creating a new area to toy with.
logcat for the errors coming soon.
Troubleshooting Your Rooted Nook
WiFi will not start
Solution:
Go to settings. Turn wifi off, turn wifi on. Go to the nook store.
WiFi drops quickly after opening a app
Solution is to run the following command from a terminal:
adb shell mv /system/app/RadioPmSvc.apk /data/local
Once you do that, the WiFi will be up even if you enable the Airplane mode. The battery will drain *very fast* once you do that, it's recommended to keep the nook plugged into the power source all the time if you want to keep WiFi up.
If you ever need to reverse this step, do:
adb shell mv /data/local/RadioPmSvc.apk /system/app