[Barnes & Noble Nook Tablet] hkvc:
u-bootk.bin and linworld.img with adb with root access

Hi,

Along with this post, I am attaching

linworld.img

--------------------

a minimal android img which is nothing but my simple modified BN recovery image ramdisk (which I had also posted in my NOPBypass thread, when I had achieved NOPBypass thro uart few weeks back). With the only modification being my modified Linux kernel for LinBootHKVC Nirvana environment.

Note: This waits for 5 seconds for the 2nd processor to boot (which fails harmlessly for now).

In turn this has got ADB enabled with root shell.

u-bootk.bin

-----------------

This also contains my u-bootk.bin, which is modified to do following

a) By pass the Secure boot checks

b) Wait for 10 seconds (in case if anyone with UART access wants to stop here)

c) Load the linworld.img file in the uSDCard of NookTab and pass control to it.

Note1: BN u-boot and inturn my modification of same doesn't support bootm command.

Note2: This expects the android img files to have a dummy 288 byte header prepended to their kernel and ramdisk images. (i.e prepend a dummy 288 byte header to your kernel and ramdisk images before passing them to mkbootimg). This also ensures that the standard BN firmware img files can be booted from this u-boot with out any change.

Installation / Running

-----------------------------

a) Copy this linworld.img and u-bootk.bin to a uSDcard

b) Insert this uSDCard to your NookTab

c) RUN ==> insmod lbhkvc_km_DEVICE_NOOKTAB.ko

NOTE: take the lbhkvc_km_DEVICE_NOOKTAB.ko from my v1.1 source packages release directory and follow the installation instructions for the kernel module specified in that or previous post.

Wait for 15 to 20 seconds and after that you will get a ADB root shell in the linboothkvc nirvana environment, which you can connect to from a PC.

Now anyone can create new kernel (with patchs specified in my last post) and in turn new user space using this full set.

NOTE: You can use my android img manipulation tools either to use directly or to understand some of it, if required to create the linworld.img. This was posted in my NOP based Bypass for NookTab related thread.

NOTE: This doesn't require UART nor changing any partitions on NookTab. It has few limitations like single core for now, which I have to debug later. However to be balanced I should also point that with 2nduboot also one can achieve the same thing as mentioned above, i.e no need for UART or no need for changing any partitions on NookTab if one uses uSDCard apropriately. The difference is linboothkvc uses the linux kernel module path to boot into a new environment, while 2nduboot uses one of the weakness in secure boot chain of NookTab, which I had hinted about some time back.

With this, I just wanted to show people that

a) if one has/had patience, we could have achieved what we wanted using the Kernel module path and there was no need for outing any weekness in secure boot chain to anyone :-)

b) this can be used in any rooted Linux device, doesn't matter if it is Android or Webos or a proprietry linux distro. My source contains the required basics for any Omap3 or Omap4 based devices with samples shown for BeagleXM and Pandaboard in addition to NookTab. However with minimal love it can be extended to any ARM based device and with a WEE BIT MORE love to any linux device. Also the dependence on linux kernel hidden functions can be actually full removed/avoided easily. However the reason why I have used/retained them in my code is so that in a future device or SOC, if there is some additional stuff to be done for some of the low level stuff, the kernel functions for that device/soc would already be containing the required stuff, so no need for any major change in this kernel module code.

c) And it was a good way for me to explore atleast the basics of todays ARM cortex devices and inturn linux based devices and setups at different levels starting from user space in 2ndihkvc to bootloader and kernel space in NOPBypass and linboothkvc. I had been away from active linux stuff for 8 or so years now, so this was a fun filled exercise to refresh atleast a small part of the things involved. Hope thro my source releases even others who were interested and were hesitant, or didn't have time or the required threshold to kick start on some of these stuff have had a chance to look into it.

Now that the basic is done, and enough foundation is there from my work at multiple levels (2ndihkvc, uart+NopBypass, linboothkvc) as well as from few others(based around 2nduboot), I will be looking at all the stuff I have left for later to debug after sometime only potentially, unless my mind says why not spend some more time on it in next few days, which I don't know as of now.

Enjoy everyone.