New Nook Glowlight Plus

Search This thread

rupor

Member
Aug 25, 2011
11
11
NYC
Renate, it would be really nice if you would be able to publish dumps somewhere - before buying device I would like to check a couple of things. Now that Sony is not an option and I am not really happy with my kindle - new Nook seems like valid alternative...
 

Renate

Recognized Contributor / Inactive Recognized Dev
Making some progress, but currently you are not going to get here without opening your Nook up at least one time.
 

Attachments

  • glowplus5.jpg
    glowplus5.jpg
    91 KB · Views: 2,360

dnastase

Member
Feb 20, 2009
34
9
Bravo!
But besides bringing the serial interface physically to the outside of the case, how do you see it that the case has to be opened only once ?
 

Windsor1959

Senior Member
Apr 27, 2011
380
94
Looks very promising! Alas, I've never done a root console connection before, and the searches I've done so far haven't turned up much that looks relevant to this - or I might try it, for the experience of learning a new trick! But I can wait. I want to be able to install a launcher and sideload two or three apps. That's all.
 

Renate

Recognized Contributor / Inactive Recognized Dev
Some information points:

The first two partitions are not file systems, they are raw images with kernel and ramdisk.
The images are "ANDROID!" format and not generic Linux.
/dev/block/mmcblk1 is the primary boot
/dev/block/mmcblk2 is recovery
Partition 1 is only defined for about 6 Megs even though it is has a full 19 Megs of space available to it.
The adbd in both of these partitions is compiled to not allow root operation even if the properties are set correctly.
The Plus is 4.4.2, but most of the user software seems a rehash of the old Nook stuff.

To make things rooted:

Change default.prop
Change init.rc
Replace sbin/adbd with a version snarfed off the Android emulator Nexus 5, API 19, ARM.
setprop persist.sys.usb.config mtp,adb
setprop sys.usb.config mtp,adb
Optional: Modify init.E60QD0.usb.rc if you want ADB without MTP

Try writing your new images to partition 2.
You can run them with reboot recovery
If it all works out, write it to partition 1.

(I'm working on updating my bootutil tool to work with "ANDROID!" image headers.)
 

rupor

Member
Aug 25, 2011
11
11
NYC
Well, not sure yet, I only looked quickly but judging by OSS code B&N just released device should fully support fastboot.

Code:
delta\u-boot\drivers\fastboot\fastboot.c:         printf("fastboot is in init......");

And we should be able to enter various modes by putting our fingers on screen during boot:

Code:
distro\u-boot\board\freescale\mx6sl_ntx\ntx_cmd.c:

					if (3 == flag) {
						_led_R (1);
						printf ("Entering recovery mode !!\n");
						iRet = 1;
						break;
					}
					else if (0x30 == flag) {
						_led_R (1);
						printf ("Entering external sd boot mode !!\n");
						iRet = 2;
						break;
					}
					else if (0x11 == flag) {
						_led_R (1);
						printf ("Entering fastboot mode !!\n");
						iRet = 3;
						break;
					}
					else {
						printf ("Wrong points combination ! 0x%x\n",flag);
					}
 

dnastase

Member
Feb 20, 2009
34
9
Wow.! that would be interesting !

I just tried with two and three fingers but nothing happened. Maybe it depends on other things (eg: a screen region) ?

Where is this code ? what is OSS ?
 

Renate

Recognized Contributor / Inactive Recognized Dev
Good catch @rupor !

There is fastboot supported.
The console prompts you to hit any key to go to fastboot mode.

The regular screen sensor driver is two point (verified with UsbMode).
It's clear from the snippet of code that it's looking for two fingers.
There could be other conditions, power switch, home key, USB connected...
It's also nice that it seems to print the flag if you hit the wrong points.

OTOH, I've tried a bunch of combinations and never seen a peep on the console.
We need to look at the rest of the code.
 

rupor

Member
Aug 25, 2011
11
11
NYC
@dnastase I cannot post links here, but is you google for "OSS Release for NOOK 4.2" you will find "NOOK Device Terms of Service" with links to OSS releases.

Check happens during boot process (obviously as it is part of u-boot sources), presumably LED should blink:

_led_R(iRLight);iRLight=!iRLight;

And here is the rest:

Code:
			dataCnt=zforce_read (data);
			if (0 <= iRet && 4 == data[0]) {
				if (2 == data[1]) {
					int x,y;
					unsigned long flag=0;
					printf ("Got dual finger touched!!\n");
					x = (data[3]<<8) | data[2];
					y = (data[5]<<8) | data[4];
					if (60 > x && (DEFAULT_PANEL_W-60) < y)
						flag |= 1;
					if ((DEFAULT_PANEL_H-60) < x && (DEFAULT_PANEL_W-60) < y)
						flag |= 2;
					if (60 > x && 60 > y)
						flag |= 0x10;
					if ((DEFAULT_PANEL_H-60) < x && 60 > y)
						flag |= 0x20;
					x = (data[12]<<8) | data[11];
					y = (data[14]<<8) | data[13];

					if (60 > x && (DEFAULT_PANEL_W-60) < y)
						flag |= 1;
					if ((DEFAULT_PANEL_H-60) < x && (DEFAULT_PANEL_W-60) < y)
						flag |= 2;
					if (60 > x && 60 > y)
						flag |= 0x10;
					if ((DEFAULT_PANEL_H-60) < x && 60 > y)
						flag |= 0x20;

So it checking coordinates it seems - 2 fingers should be in some areas of the screen, will analyze code some more tomorrow.

Renate is right though - some other conditions may apply albeit I have not seen it yet...
 
Last edited:

Renate

Recognized Contributor / Inactive Recognized Dev

Renate

Recognized Contributor / Inactive Recognized Dev
Looking through the code, it appears that the two fingers must be in adjacent corners.
They must be within 60 pixels of the corner, that means, pretty tight inside.
I see all the messages from the source in the actual u_boot ("Got dual finger touched!!"),
but I have never seen that message. It should be easy to get a dual finger message.
 
  • Like
Reactions: Kramar111

rupor

Member
Aug 25, 2011
11
11
NYC
If I am reading code right (and I do not have the device - will try to visit store tomorrow, but who knows) it goes like that:

Device should be turned on by pressing power key and holding finger on home key (let's say "pressing" home key) - this initiates selection procedure. LED should change status and then you suppose to have your fingers in proper corners of the screen to select fastboot or recovery procedure. If fingers are in adjacent corners it will be fastboot, if in diagonal - recovery.

Of course I could be totally wrong, but entering recovery on Sony (also FreeScale) was never easy and device had physical buttons :p

Renate, if you could get into u-boot shell - verifying that we are looking at proper code should be fairly easy. Just issue

ntxup init
ntxup waittouch [interval (ms)] [timeout (ms)]

And you should be able to check this two-finger procedure locating proper positions...
 

rupor

Member
Aug 25, 2011
11
11
NYC
The only thing which comes to mind is issuing "ntxup release" and then trying to read again. If it would not help - I am looking in the wrong place, that would not be the first time :(
 

dnastase

Member
Feb 20, 2009
34
9
There is also some confusion I think to the orientation of the screen:

#define DEFAULT_PANEL_W 1440
#define DEFAULT_PANEL_H 1080

so maybe it should be hold horizontally ??
 

Renate

Recognized Contributor / Inactive Recognized Dev
#define DEFAULT_PANEL_W 1440
#define DEFAULT_PANEL_H 1080

Yes, the native viewpoint is landscape.
That is fairly typical, also true of the other Nooks.
OTOH, the coordinates in that routine are considered from the portrait viewpoint.

ntxup release goes without a complaint.
(OTOH, all unknown commands to ntxup also do.)
ntxup waittouch does as before, loops on failure to read.

Wait! I know what the problem is:
They have the u-boot touch configured for Zforce IR screen.
We have an Elan touch. :mad:
 

rupor

Member
Aug 25, 2011
11
11
NYC
Nice - and I though it would be easy :laugh:

Seriously - device cannot be serviced without opening the case as it has no way to enter recovery mode during boot? Or I am missing something here? Back to sources...
 

rupor

Member
Aug 25, 2011
11
11
NYC
OK, how about this one:

in ntx_comm.c:
Code:
		iUSB_in=ntx_detect_usb_plugin(0);
                . . . . .
		if(iUSB_in&USB_CHARGER_OTG) {
			printf("\n**********************************\n\n");
			printf("\n** fastboot mode OTG USB        **\n\n");
			printf("\n**********************************\n\n");
			iRet = NTX_BOOTMODE_FASTBOOT;
			//fastboot_connection_timeout_us_set(5*1000*1000);
			fastboot_connection_timeout_us_set(0);
			fastboot_connection_abort_at_usb_remove_chk_setup(&ntx_is_fastboot_abort_inusbremove);
		}

ntx_detect_usb_plugin seems to be ntx_hw.c. I am not sure what parts are relevant to us (since I do not know what hardware configuration we have) but in one particular case it seems to be looking for usb id pin and then returns USB_CHARGER_OTG. Execution of this particular branch of code depends on hardware configuration:

Code:
	if(49==gptNtxHwCfg->m_val.bPCB && gptNtxHwCfg->m_val.bPCB_REV>=0x20) {
		// E60QDXA2
		// detect the usb id pin .
		if(!ntx_gpio_get_value(&gt_ntx_gpio_USBID)) {
			iRet |= USB_CHARGER_OTG;
		}
	}

Do you think it worth exploring? I am not sure why timeout is set to 0 here...
 
  • Like
Reactions: Kramar111

Top Liked Posts

  • There are no posts matching your filters.
  • 22
    Nook GlowLight Plus rooting script

    It's pretty simple rooting script using local exploit found here:
    retme.net/index.php/2014/10/08/vold-asec.html

    Instructions:
    1. Enable USB debugging in Developer options
    2. Connect USB cable and make sure your nook is showing up in 'adb devices'
    3. Extract rootGLP.zip and run rootnook.cmd (or rootnook.sh on linux)
    4. Choose 'Continue' then 'Normal' when prompted for SuperSU binary update.

    Update: removed unnecessary reboot.
    10
    Well, I bought my Glow Plus, turned it on and it said, "Let's Get Started".
    So I did.

    The entire display is simply glued to the frame.
    You can work a knife carefully around the rim and detach the display, folding it gently to the left side.
    7
    NGP Toolkit (xposed module)

    WARNING: THIS IS NOT A STANDALONE APPLICATION, THIS IS A MODULE FOR Xposed Framework

    version: v0.9
    features:
    • (Glowlight Plus) full access to external memory (/sdcard/) from PC;
    • (Glowlight 3) access to /data/media and /sdcard partitions from PC;
    • enable/disable frontlight by home (nook) key long-press;
    • disable wake-up on usb connected/disconnected;
    • fully hide status-bar;
    • custom sleep screen with possibility to use own images;
    • disable default launcher;
    • enable default status-bar;
    • enable fast refresh mode;

    notes:
    • if you wish to use own images for custom sleep screen put them into /system/usr/sleep/custom, supported image formats - jpg, png;
    • home (nook) key long-press uses current brightness value, so if brightness is set to 0 it will do nothing;
    • status-bar requires FW version 4.7 and bnereader.apk and partner.apk installed and enabled;

    download page: https://bitbucket.org/…n-toolkit/downloads/
    7
    Yow! I could kiss B&N! :D
    Code:
    [email protected]_6sl:/ # getprop
    ...
    [ro.build.version.release]: [4.4.2]
    [ro.build.version.sdk]: [19]

    4G storage, only 512M RAM, no Bluetooth.
    7
    So, to let the cat out of the bag, getting a root console connection to the new Nook Glow Plus is quite easy.
    There is a connector location, J4, which is quite clearly labelled with the pinout.
    The output is 115200-8-N-1 on a 3.3V signal level.
    TX refers to the output of the Nook, RX is the input, connect up ground, leave the V alone.

    (Don't connect anything to this unless you understand the description above,
    it's not anything related to a 9 pin RS-232 signal without a converter.
    There are plenty of cheap USB-UART converters that run 3.3V that you can buy for $3.)

    You can:
    Code:
    setprop persist.sys.usb.config mtp,adb
    setprop sys.usb.config mtp,adb
    Then you will have (unrooted) ADB over USB, which is still useful to load things.

    Those who don't want to scuff up their new Nook would do better to wait a bit.