Rooting New Nook
First, HUGE props to cdump for coming up with this technique. It's truly brilliant and has put the new hardware firmly back in the "rootable" domain. Also to Nomad for making things a bit easier by hosting the files and scripts needed on his public server.
I spent an afternoon figuring out how to do this, so I thought it might be best to post my experience, hopefully adding some info that wasn't terribly clear in the translated pages and some elaborating on some stuff that was just touched on.
The big picture:
cdump took a look at some of the source and determined that he could add some code to a script that runs on the device that's used to turn the wifi off. The script will essentially enable the ADB capability and provide root. Once that's achieved, a different file can be modified on the device to enable ADB and provide root the more traditional way (this is the same "hard root" method used on the SD card).
The way he figured out to modify the "wifi off" script is to fool the Nook into downloading the file from his server, rather than the official server. He determined that if the download fails due to the wrong file size, it actually leaves the bad file on the device instead of deleting it.
The new (and old) hardware downloads software revisions from a fixed Internet URL (x.barnesandnoble.com). cdump sets up his network to look for the .barnesandnoble.com address and send it a different server. For convenience, Nomad has kindly set up a server that will download the fake update.
This is done by a combination of tricks:
1) You've got to disable DHCP on your network. This is done by going to your router's setup page and disabling it. Note! Leave this page open and don't screw with your computer or cabling until the download is complete. Since you've turned DHCP off on your router, your computer won't be able to get an address from it the next time it boots. If you fall into this trap, you'll need to set your computer to a static address in order to find the router (or reset the router)--but that's for another day. If your router has an option to "enable dns relay", leave this on.
DHCP is the technique used by computers when they first connect to the network. The DHCP server built into your router tells the computer a) The computer's IP address b) The router's IP address, c) The address of the DNS server (this is the important part) d) The subnet mask
2) You're going to set up an alternate DHCP server on your network. This will have a distinct difference over the one in your router--it will allow you to specifically set the DNS server address to something other than the router's address. Now, if your router is complex enough to allow this setting, you can simply make the change there and continue to use that DHCP function--but most don't. Mind you, this is *not* the generic DNS settings--they need to be DNS server addresses contained within the DHCP settings i.e. the addresses downloaded to a new computer on the network, instructing them where to look up addresses.
A little more about DNS- When your nook requests info from google.com, it sends that URL to a DNS server, and the server responds with an IP address. The nook then requests the info from that IP address. But all that is invisible to you.
3) You're going to use a piece of software called Tftp32D to set up your DHCP server *and* your DNS server on our computer. This way you can give the nook the fake DNS server address (via oyur fake DHCP server), and have your fake DNS server point the Nook to Nomad's site (at http://188.8.131.52).
4) Before you run Tftp32D, you need to make some changes to a file on our windows machine. This will instruct tftp32d to intercept the DNS request to B&N and send it to Nomad. Nomad does a fine job of describing this so I'll leave it to him: "You edit the file hosts on your computer. It is found usually in your Windows\System32\Drivers\etc\hosts. At the end of the file should append these two lines: 184.108.40.206 sync.barnesandnoble.com 220.127.116.11 edmfiletransfer.barnesandnoble.com "
Sounds simple, but the host file is actually protected under Windows. so you'll need to find it, right click on it, choose properties, and set the permissions so that a lowly user can edit and save the file. It's probably a good idea to change it back after and restore the permissions as well.
5) Now you can install and run the tftp32d program, and set it to run a DNS and DHCP server. I had a little trouble here, as tftp32d didn't seem to want to save my settings and I needed to exit the program to enable the DNS portion. I fixed this by going into the directory created by the program and deleted the .ini file there. After that, the program came up with DNS enabled by default.
Cdump does a fine job of describing the tftp32d setup, but to elaborate, you'll need to set the DHCP server to deliver a range of addresses (it's helpful to use a block slightly off those supplied by your router, to verify it's working) but within the subnet of your router. For example, my router was set to deliver addresses in the 192.168.10.2-192.168.10.199 range. So I set tftp32d to deliver addresses in .200-.210.
Also important here is to know the address of the computer you're working on (run->cmd->ipconfig). You must fill that in under "WINS/DNS router". Finally, you'll put your router address (in my case, 192.168.10.1) in under default router. The netmask of 255.255.255.0 is fine.
6) With this all running, I tested it by turning on my smartphone's wifi and checking the settings. I wanted to make sure a) I got a wifi IP address in the 200-210 range and b) I could see the Internet Under the tftp32d DHCP tab, you can see any device get an address from the server. Under the DNS tab, you can watch the DNS server work when a webpage is requested.
7) Now it's time to turn on the nook and turn on the wifi. This is done by toggling airplane mode. The nook should get an IP address within the new range. Next go over to "my library", and choose "check for new content".
If you're correctly connected with Nomad's fake update server, you'll see a new entry in your list--"Don't Blink" will show up as a new entry as of Sept 29. Also, you'll soon get an error message that a firmware download failed. This is expected and the files have in fact been downloaded.
8) Now turn your wifi off (and back on). This process is actually running the script that gives you root. You can now use ADB over wifi to fix things so you don't need to toggle the wifi to get root, and to disable auto updates from our friends at B&N.
This is a good time to set your router back to DHCP mode, and kill the Tftp32D program!
Getting and setting up ADB is pretty well documents in the hard root section, and that's all the same. But because I hate having to look all over the place, I've copied and pasted a bit here: Getting a root shell with the Android Debug Bridge
1. Download and install the Android SDK. (make sure you have the 1.5 system installed) 2. Find the IP address of your nook by clicking on the active wifi connection. 3. In a terminal (command line) window, navigate to the "tools" directory in the Android SDK. 4. With the NOOK_IP being the IP address of your nook, enter the following: 5. adb connect NOOK_IP:5555 6. Nothing should appear to happen and you will be returned to your command prompt. This is normal. 7. You can now use the ADB tools to talk to your nook. To get a root shell on the nook, enter: 8. adb shell 9. A # should appear — you now have root access to your nook's command line interface!
9) So now you'll want to edit the /init.rc file to enable ADB forever. This can only really be done by pulling the file to your computer, making the edit, then pushing it back to the nook. Here's the commands: a) adb pull /init.rc init.rc b) use your favorite editing software to change the section about adb from "disable" to "enable" b) adb push init.rc /init.rc
10) Next, fix the file that cdump corrupted for you a) adb pull /etc/wifi_stop.sh wifi_stop.sh
b) edit the file by deleting everything after the line "echo "0" > /sys/power/wifi_pm"
c) adb push wifi_stop.sh /etc/wifi_stop.sh
11) Now disable the ability for B&N to push updates to you: a) adb shell (get # prompt) b) rm /system/app/FirmwareUpdateService.apk
12) Now reboot your Nook and pray it's not a Brick!
Well done ! I propose to move this page to a new one, linked from the front page ... --Shadow007 00:50, 21 October 2010 (PDT)
With this, I got root on my nook. Saturday I will translate to portugues and organize no points. Thank you! --Dark steybow 16:22, 21 October 2010 (PDT)
Great Thanks! Finally got my 2.4.1 Nook running with the nookdev apps I wanted. --Randomizer 22:25, 24 October 2010 (PDT)
Thanks for the info. A couple of things I found. Your nook needs to be registered. And the "Don't Blink" book is in your Barnes and Noble library, not your own library - which is why your nook needs to be registered. Otherwise it won't show you that page. --Oktaya 05:09, 31 January 2011 (PST)
I think this is the problem, I meet. But you can't register your nook with the fake update server, right? And, when you are registering your nook with official server, will your nook be updated to 1.5, automatically? This is what confusing me. Could any one give me more detail? Thanks a lot, Leox 21 Feb 2011
My problem has been solved. I just register my nook with official server. Then my nook could get the update from fake server. Thanks a lot for the help. Leox 21 Feb 2011
Hello and thank you all for your excellent work here. Just as a data point, I successfully rooted my Classic Nook that had the following as purchased config: Version 1.4.3 S/N 10051* Just followed Tommy's instructions above verbatim. --Fuzzy_bunny 2 Feb 2011