[GUIDE] How to enable Swiftkey on Kindle Fire - Kindle Fire General

UPDATE: updated instructions for Swiftkey X version 2.2.0.35 (released 11/18/2011) and later.
UPDATE 2: added known values for some other keyboard apps.
UPDATE 3: added warning, split the copying and chown/chmod step into two separate steps.
These instructions assume:
You've already rooted your KF and have ADB access.
You have the adb.exe debug shell installed. This is included with some rooting kits, or you can install the Android SDK (software development kit) from Google and get ADB straight from the source. The examples assume you have a directory called "C:\Android" where adb.exe is installed but yours may be installed elsewhere.
You've got some way of installing the Swiftkey X app, either by installing Android Market or by sideloading the apk.
You're using the purchased version of Swiftkey X (not the tablet version, not any beta or free version that might be out there).
You've got a SQLite editing software (or can use "sqlite3" itself); the instructions below use the free SQLite Database Browser 2.0 which can be downloaded from Sourceforge; just Google for "sqlite browser" (sorry as a n00b I can't post links).
WARNING: use these instructions at your own risk! Modifying, removing or incorrectly setting the permissions on the settings database can result in a non-booting device!
ALTERNATIVELY, you can use various Android apps to edit the database on the device without using ADB, and skip many of the steps below. Posts further down this thread has some recommendations for such apps. Two caveats if using such an app: make sure it doesn't alter the settings.db file ownership or permissions, and be very cateful when modifying the database entry, as there is a tendency for the keyboard or cut-and-paste to "helpfully" insert spaces or change capitalization.
If you try and install Swiftkey as you normally would, you'll get stuck at installation's step 2, which requires you to enable Swiftkey as an input method by redirecting you to the device's input method settings window; in the case of the KF, the option to enable alternate keyboard has been omitted, but as others (thanks PSXtreme and mfisch) have found it's possible to get around this problem and successfully install an alternate keyboard.
Connect the KF to your computer via USB.
When the Kindle tells you that USB storage is enabled, press the "Disconnect" button to disable it (having the USB storage mounted will prevent us from using ADB to copy to the sdcard directory).
Open an ADB shell and use it to make a backup copy of the settings database file (settings.db), and then to a directory where you can edit it (we'll use /mnt/sdcard/Download here) (stuff you need to enter below is in boldface):
C:\android>adb shell
$ su
# cd /data/data/com.android.providers.settings/databases
# cp settings.db settings.db.bak
# cp settings.db /mnt/sdcard/Download​
Now enable USB storage by tapping on the KF's top notification bar and then on "USB is Connected / Select to copy files..."
Open the SQLite Browser, and then open the settings.db file you copied by navigating to the mounted USB drive (e.g. D:\Download\settings.db).
Click on SQLite Browser's "Browse Data" tab, and then "secure" from the droplist of tables. Find the row with the entry named "enabled_input_methods" (it's number 19, ID 21 in my file); you may need to widen the columns to see the full name.
Double-click on the entry's "value"; this will open an "Edit database cell" dialog.
The default value of the entry should be "com.android.inputmethod.latin/.LatinIME"; regardless, you want to add ":com.touchtype.swiftkey/.KeyboardService" to it (the ":" is a separator), e.g. changing the value to "com.android.inputmethod.latin/.LatinIME:com.touchtype.swiftkey/.KeyboardService". (Note: if you're installing a different keyboard program, you'll substitute a different value; I found the correct value for mine by downloading the settings.db file from another Android device with Swiftkey already installed.)
UPDATE: for Swiftkey X versions 2.2.0.35 (released 11/18/2011) and later, the value to be added is ":com.touchtype.swiftkey/com.touchtype.KeyboardService", so the resulting enabled_input_methods value is: "com.android.inputmethod.latin/.LatinIME:com.touchtype.swiftkey/com.touchtype.KeyboardService"
UPDATE 2: here's a list of known values for various keyboard apps:
Swiftkey (paid version): com.touchtype.swiftkey/com.touchtype.KeyboardService
Swiftkey Tablet (paid version): com.touchtype.swiftkey.tablet.full/com.touchtype.KeyboardService
Swype: com.swype.android.inputmethod/.SwypeInputMethod
SymbolsKeyboard & TextArt Pro: com.mobisters.textart.pro/.AsciiTextArtKeyboardPro
SlideIT: com.dasur.slideit/.SlideITIME
Graffiti Pro: com.access_company.graffiti_pro/.Graffiti
FlexT9: com.nuance.flext9.input/.IME
Beansoft Thumb Keyboard: com.beansoft.keyboardplus/.LatinIME
Hacker's Keyboard: org.pocketworkstation.pckeyboard/.LatinIME
Simeji: com.adamrocker.android.input.simeji/.OpenWnnSimeji
After you've changed the entry and double-checked you got it right, hit the "Apply Changes" button, close the dialog, and save your changes to the settings.db file. You can now close the SQLite Browser.
Disable USB storage again by hitting the "Disconnect" button on the KF.
Back in the ADB shell, copy the modified settings.db file back to its original location:
# cp /mnt/sdcard/Download/settings.db .​
Still in the ADB shell, fix the file owner and permissions (IMPORTANT! skipping this step can prevent your KF from booting properly!):
# chown system.system settings.*
# chmod 660 settings.*
# ls -l
-rw-rw---- system system 22528 2011-11-17 21:04 settings.db
-rw-rw---- system system 22528 2011-11-17 17:30 settings.db.bak​(The last command just confirms your handywork.)
Reboot the Android device using the ADB "reboot" command:
# reboot​
Once rebooted, you can proceed with the Swiftkey installation. When you reach step 2 of the installation and it directs you to the KF input settings window, you can return from settings window and if you've correctly modified the settings it won't complain that you haven't enabled Swiftkey, and you can go on with the rest of the installation process.
After finishing the install, long-press on a text field to bring up the "Select input method" pop-up menu, which will allow you to switch between the Kindle keyboard and Swiftkey X.
Voila!

I love Swiftkey on my phone but damn this looks so complicated. Thanks though for getting it to work on our devices.

Sooner or later someone will write a script or an app to make it easy.

Interesting timing. A new version of Swiftkey X was released this morning that changed the input methods path; I've updated the instructions above.
If you updated Swiftkey and found it no longer working, as I did, all you need to do is edit the settings.db file using the procedures described above, and reboot the device, after which you can select Swiftkey X as an input method again.

Can you unroot after completing this guide and still keep Swiftkey? Or, in other words, can I temporarily root my KF just to install Swiftkey?
Thanks!

vtluu, why not the tablet version of Swiftkey?

scrotty, yes you can unroot your KF after--I've done that so I can play Amazon videos--and Swiftkey will keep working just fine.
Why not the tablet version? The mobile phone version just happens to be what I have purchased. I might eventually get the tablet version but I find the phone version works pretty well, and in landscape mode the keyboard isn't too wide for my thumbs and I don't find myself needing a split keyboard.

vtluu said:
scrotty, yes you can unroot your KF after--I've done that so I can play Amazon videos--and Swiftkey will keep working just fine.
Click to expand...
Click to collapse
Cool. I decided to use Voodoo OTA RootKeeper for now, but it's good to know a full unroot is viable.
vtluu said:
Why not the tablet version? The mobile phone version just happens to be what I have purchased. I might eventually get the tablet version but I find the phone version works pretty well, and in landscape mode the keyboard isn't too wide for my thumbs and I don't find myself needing a split keyboard.
Click to expand...
Click to collapse
That's exactly what I was hoping to hear!
Thanks!

This works great.
Maybe a list of what should be added for different keyboards in the first post?

Excellent! Waiting on my KF, was hoping someone would have SwiftKey working. Thank you!
//Tapatalk//

Anyone have the value for the Tablet version of swiftkey? It isn't the same as the phone version and I can't install the Tablet version on my phone to check it(it won't let me). Any help is appreciated.

Just figured out the value for Swiftkey X Tablet (v 2.1.0.223):
com.touchtype.swiftkey.tablet.full/.KeyboardService
Not sure (didn't test yet), but it's probably com.touchtype.swiftkey.tablet.full/com.touchtype.KeyboardService for the newer version [EDIT: confirmed by scrotty]

Nice work! Swiftkey is my favorite!!

brian112358 said:
Not sure (didn't test yet), but it's probably com.touchtype.swiftkey.tablet.full/com.touchtype.KeyboardService for the newer version
Click to expand...
Click to collapse
Confirmed. I just purchased Swiftkey Tablet X v2.2.0.38 through the Marketplace and used the value you hazarded above successfully. Yay!

By the way, with Swiftkey Tablet X, I did not get the number pad in the middle when in landscape mode.
On a hunch, I figured that this was due to the KF's resolution. So I installed the free LCD Resolution app from the Marketplace and set the pixel density from 160 (KF default) to 155. That was sufficient to get the number pad to appear.
WARNING: I tried to set the density to 159 at one point (just to set if I could get it as close to 160 as possible). That value seemed to prevent the KF from restarting (stuck forever at "Kindle Fire")! Thankfully, I had not selected the "apply setting on boot" option in the resolution app and so a simple reboot restored to the default 160 pixel density and the KF started properly. Whew!

I'm waiting for a easier way to do it with out risking so much cause knowing me I would mess up something. Keep of the good work
Sent from my Kindle Fire using Tapatalk

Updated: added values for various other keyboards, copied from Swype keyboard thread.

Any ideas if something similar would work on the Nook Tablet?

Very usefull, thank you bro!

downsay said:
Any ideas if something similar would work on the Nook Tablet?
Click to expand...
Click to collapse
If the NT has the same limitation (i.e. no UI to allow alternate keyboard) I would imagine the same procedure could work, yes. That assumes B&N hasn't screwed around with the text input field code to prevent you from selecting between enabled keyboards (via long-press on text intput field).
Only one way to find out... good luck!

Related

Post-Root Setup Instructions?

I know many of us are new to the whole rooting thing. I'm coming from the Windows Mobile world of custom ROMs, kitchens, etc., but I do have some linux experience. However, I can't for the life of me figure out how to do a lot of what comes "standard" in MoDaCo's ROM. Obviously it would be easier to simply install Paul's ROM and be done with it, but I'd really like to learn how to do it on my own too.
So, that being said, maybe we can pull together some tutorials, guides, and/or links to existing guides which explain how to go about setting up our Rooted phones manually. Here are some of the built-in mods the MoDaCo ROM comes with which would be nice to be able to do manually or on a one-off basis:
Included in MoDaCo 1.1 'core':
Rooted with 'adb remount' permission and superuser APK
A2SD included (fully automatic thanks cyanogen!) create a EXT2 partition as your second partition to use. dalvik-cache remains on device.
Added Jbed Java
Added Dropbear SSH running by default, check 'About' screen for password (port 2222). You can now remove this by running /system/bin/removedropbear.sh
Added Notes app from Dragon
Added Spare Parts (run it and switch the 2 animation types to 'fast' for an even better experience!)
Added android-wifi-tether 1.60 pre3 (props to the developer, this is a great app!)
Added WiFi Status indicator, with kind permission of Andrew Schwimmer
Added busybox 1.15.2 tweaked such that 'get information' in Swapper now works as desired
Added nano 2.09 text editor for use in shell mode
Added parted and sqlite tools
Added terminfo and settings to boot.img to allow nano etc. use
Added files required for Debian linux including loxley's updated bootdeb script
Moved Quickoffice to data partition to allow easy uninstall
Moved Google Maps and Google Voice Search to data partition to allow easy update
Silenced boot sound (it's still there and can be reactivated with a file edit)
Click to expand...
Click to collapse
*********
*********
!Working!
Wireless Tethering:
http://android-wifi-tether.googlecode.com/
Go to the "Downloads" tab and download version 1.61-pre
!Not Working!
Superuser Whitelist App
I found two threads here that describe how to install Superuser.apk.
http://forum.xda-developers.com/showthread.php?t=582140
http://forum.xda-developers.com/showpost.php?p=4897587&postcount=5
Using the first one, I was able to get the files onto the phone and I used the chmod commands found in the second file in the hopes this would work; however, whenever I try to use it, nothing happens. The ES File Explorer, in particular, used to work with MoDaCo. When I'd try to browse as root, Superuser would pop-up and ask if I wanted to grant the app permissions. Now it just hangs there (black screen) and ES File Explorer says I don't have root access. Other Root apps work fine though, it's just they don't seem to be dependant on Superuser Whitelist.
'adb remount' permission
This requires that the default.prop file be edited from ro.secure=1 to ro.secure=0. Unfortunately, I can't seem to get this file to stick. If I use the mv command using adb shell, I get some kind of permissions error. If I use the cp command when booting into the recovery menu and using adb shell, the file reverts to the original on boot. Or maybe it's simply not being overwritten, but not throwing any errors either
I think I may have found a thread that will help with the default.prop changes. Looks like this has to be done in the recovery.img which apparently overwrites any modifications in the root of the device on each reboot. I'll post an update if/when I figure it out.
HOWTO: Unpack, Edit, and Repack Boot Images
http://forum.xda-developers.com/showthread.php?t=443994
The adb remount permission issue is driving me crazy. Please keep us updated if you figure out a way of resetting that without installing a new ROM.
I ended up modifying one of the MoDaCo update scripts to set up ADB Remount, Superuser.apk, and Busybox. It's been working fine for me, but be sure to do a backup before you apply the update. Check it out here:
http://forum.xda-developers.com/showthread.php?t=593952

[GUIDE][DOCK][Updated] Disable popup and autoenable foreign layouts when docking

Using a soft keyboard different than the Asus one, when the dock is connected an annoying message pop up telling us that if we don't change the soft keyboard to the asus one, the dock keyboard could not function well.
This is mostly important for non US users, as when the soft keyboard isn't the Asus one, the layout used for the dock is the standard US one.
Root needed
Using Autostarts we can disable the popup when the dock is connected:
Download autostarts from the market, open the app, let it load all the the way, then click on Asus Keyboard under "Docking changed" and disable it
or in terminal
adb shell
su
pm disable com.nuance.xt9.input/.DockEventReceiver
For permanently change the standard layout of the dock keyboard:
Locate your national keychars in /system/usr/xt9/keychars
mine is qwerty-it_IT.kcm
The first 2 character after the - is the language of the keyboard, in my case Italian, the 2 characher after the _ is the country of the keyboard, Italy in my case.
copy this file in /system/usr/keychars
rename the standard one asusec.kcm in asusec.kcm.old for backup purpose.
then rename the one you copied in asusec.kcm
Locate your national layout in /system/usr/xt9/keylayout
mine is qwerty-it_IT.kl
copy this file in /system/usr/keylayout
rename the standard one asusec.kl in asusec.kl.old for backup purpose.
then rename the one you copied in asusec.kl
reboot and you are all done
P.S.
you can use root explorer to copy and rename those files, or you can do it with adb.
If you don't know how to use those, maybe is better to learn before messing around in the system files.
P.P.S.
If anyone know a free app that can replace autostarts, let me know so I can update the guide.
Great guide, thx a lot! If we mess with keychars and keylayout, we could also remap specific keys, right?
For example, I don't really need the three brightness buttons on the dock, i barely change brightness, and if i have to sometimes, i don't mind browsing to settings-->display.
Can we remap these to different keys OR specific apps, OR even better: to key combinations? Would be cool to have cut, copy and paste on the brightness buttons. What do you think?
Plus, one more off topic thing, I think you could know: Is there a file which could change mouse button mapping and perhaps enable additional mouse buttons (thumb mouse buttons for example)? I though of setting the "menu" key to the right mouse button instead of "back" for example.
Regards
qwer23
qwer23 said:
Great guide, thx a lot! If we mess with keychars and keylayout, we could also remap specific keys, right?
For example, I don't really need the three brightness buttons on the dock, i barely change brightness, and if i have to sometimes, i don't mind browsing to settings-->display.
Can we remap these to different keys OR specific apps, OR even better: to key combinations? Would be cool to have cut, copy and paste on the brightness buttons. What do you think?
Plus, one more off topic thing, I think you could know: Is there a file which could change mouse button mapping and perhaps enable additional mouse buttons (thumb mouse buttons for example)? I though of setting the "menu" key to the right mouse button instead of "back" for example.
Regards
qwer23
Click to expand...
Click to collapse
You can remap any key you want, I've seen a guide somewhere in the forums.
For the mouse I don't think you can do anything without some serious hacking, the dock trackpad follow the standard rules for mouses in android: left click = click, right click = back, whell button click = menu.
I also hate how they have implemented the 2 finger scrolling, when you scroll actually the trackpad long click where the cursor is, and invert the axis of the trackpad, so when you scroll down you are in fact long pressing and scrolling the cursor up, and so on.
It messes so many apps, as this simulated long click can be registered by the app
Updated on the first post how to disable permanently the asus keyboad popup when docking
qwer23 said:
Would be cool to have cut, copy and paste on the brightness buttons. What do you think?
Click to expand...
Click to collapse
You can do it with ctrl+x ctrl+c and ctrl+v
I can't see the Thank You button, but I thought I'd just say thanks!
This is an excellent guide and worked perfectly for my UK keyboard!
Much appreciated
I found an alternative to Autostarts, fire this commands in a terminal:
Code:
adb shell
su
pm disable com.nuance.xt9.input/.DockEventReceiver
These are the "cut&paste" commands for changing the layout:
Code:
adb remount
adb shell
mv /system/usr/keychars/asusec.kcm /system/usr/keychars/asusec.kcm.old
mv /system/usr/keylayout/asusec.kl /system/usr/keylayout/asusec.kl.old
cp /system/usr/xt9/keychars/qwerty-it_IT.kcm /system/usr/keychars/asusec.kcm
cp /system/usr/xt9/keylayout/qwerty-it_IT.kl /system/usr/keylayout/asusec.kl
I found my own solution for disabling the dock connected popup.
I modified the XT9IME.apk so that the popup is not displayed and posted it here before stumbling upon this thread.
Would it be possible to make a update zip, to do this in clockwork, ive just insalled a new rom, now i need to redo the fix.
jambo89liam said:
Would it be possible to make a update zip, to do this in clockwork, ive just insalled a new rom, now i need to redo the fix.
Click to expand...
Click to collapse
I could script this and have update.zips for it.
Perhaps someone else could create an app that does it via a menu system to select your country.
Fixed?
Over on http://forum.xda-developers.com/archive/index.php/t-1152317.html the last post says:
"The warning message has now been fixed, after the latest update 8.4.11. It now gives you the option of 'Do not show this again."
So maybe it's now fixed? (Don't have my Transformer at work to check for myself.)
You can use this as an executable (755) script file if you want to use another keyboard with another language
Code:
#!/system/bin/bash
su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
mv /system/usr/keychars/asusec.kcm /system/usr/keychars/asusec.kcm.orig
cp /system/usr/xt9/keychars/qwerty-de_DE.kcm /system/usr/keychars/asusec.kcm
mv /system/usr/keylayout/asusec.kl /system/usr/keylayout/asusec.kl.orig
cp /system/usr/xt9/keylayout/qwerty-de_DE.kl /system/usr/keylayout/asusec.kl
mount -o ro,remount -t yaffs2 /dev/block/mtdblock3 /system
Just replace the "de_DE" parts with your language code.
Just wanted to bump this b/c of the ICS release.
While those ADB commands give me a "segmentation fault"...
Azhad said:
adb shell
su
pm disable com.nuance.xt9.input/.DockEventReceiver
Click to expand...
Click to collapse
the following procedure still works like a charm on ICS!
Azhad said:
Locate your national keychars in /system/usr/xt9/keychars
mine is qwerty-it_IT.kcm
The first 2 character after the - is the language of the keyboard, in my case Italian, the 2 characher after the _ is the country of the keyboard, Italy in my case.
copy this file in /system/usr/keychars
rename the standard one asusec.kcm in asusec.kcm.old for backup purpose.
then rename the one you copied in asusec.kcm
Locate your national layout in /system/usr/xt9/keylayout
mine is qwerty-it_IT.kl
copy this file in /system/usr/keylayout
rename the standard one asusec.kl in asusec.kl.old for backup purpose.
then rename the one you copied in asusec.kl
reboot and you are all done
Click to expand...
Click to collapse
Thanks again for working this out!
can anyone please make the dock keyboard work with latvian? i hate anysoftkeyboard, it stops working and its craching all the time.
i want to use dock like on a normal computer.
Does latvia have its own keyboard layout or do you use one that another country uses as well? Which county abbreviation would it be (like en for English and de for German)?
Doesn't work ?!
modmatt said:
the following procedure still works like a charm on ICS!
Click to expand...
Click to collapse
Doens' work for me, in fact, if I'm copying the de_DE files from Revolver 4 over to my EOS AOSP rom build and put the keychars (asusec.kcm) and the keylayout (asusec.kl) in their respective folders and reboot afterwards, nothing happens to the dock input. Still stays the same old QWERTY like before.
But I can see in file manager that the copying was successfull. New asusec.kl and asusec.kcm are there.
Someone help me ?
You already mentioned the reason yourself, I think. As you are using an AOSP ROM it means that you're using a plain vanilla android basis, which - correct me if I'm wrong - obviously doesn't know anything about asus*.* keyboard files. Just copying some files somewhere is not enough to let the system know what to do with it.
You probably have to deal with some scripts, that are run at every start up, that give proper instructions for the operating system. Unfortunately this is way beyond my knowledge.
modmatt said:
You already mentioned the reason yourself, I think. As you are using an AOSP ROM it means that you're using a plain vanilla android basis, which - correct me if I'm wrong - obviously doesn't know anything about asus*.* keyboard files. Just copying some files somewhere is not enough to let the system know what to do with it.
You probably have to deal with some scripts, that are run at every start up, that give proper instructions for the operating system. Unfortunately this is way beyond my knowledge.
Click to expand...
Click to collapse
What are you going on about? This works just fine on ICS with Revolver, just changed my dock back to azerty. rayman33 just did something wrong.
Please read that rayman33 uses an AOSP ROM that has nothin to do with Asus. You are using Revolver, which is bases on Asus' original ROM - that is why it works for you but not for him.
i just found this post as i'm having the very same issues using my transformer tf300 - currently running official stable CM10
the bad thing about it is only, in my CM10 i don't even have a /system/usr/xt9/ directory and when looking into the backup of my stock ASUS rom, I do have /system/usr/xt9/ and even subdirs keychars and keylayout, but without any content.
it would be lovely if someone would be so kind to suck out the de_CH files for me and could post them here!

[USER Tips] HD/HD+ Stock Root User Tips from LeapinLar

When I originally bought the Nook HD+, I made several futile attempts to get ADB working so I could sideload apps to it. I was so frustrated that I was ready to give up and return it. But I finally got it going and with the help of a few smart users here was able to get it rooted and installing apps directly on the device. So, to save some other users the same frustration I had, I thought I would outline what I did to make this device hum.
Update 12/27/2012: A lot has changed since I first created this tips thread. I am updating it to the latest information. Most of the steps below are not necessary anymore since I now have a new thread here which lets you do these things easily with a special version of ClockworkMod (CWM) recovery for the HD and HDplus. And the text here has been modified to reflect that and include the HD.
Update 11/02/2013: Since B&N has included the gapps and Play Store in version 2.1.0 and above and since verygreen developed the new boot.img that removes B&N /system file protection scheme and I updated my HD/HD+ CWM thread to account for those changes, I decided to give this thread an update. I have added comments to the sections in italics below where necessary
If you have questions or comments on this post, reply to this thread. Please do not send me private messages or emails. By posting in the forums others get a chance to help you and if I answer your question in the forum, others can see my response and it may help them too.
1. Setting up ADB
ADB is very useful for many things but you do NOT need ADB to root anymore. Look at my thread referenced above to use CWM to root.
Also, rather than use ADB via USB, it is much easier to use a Wireless ADB app available in the Play Store.
If you want to know how to set up ADB with USB, click on the "show content" button below.
The first thing you need to do is get ADB working on your PC so that it can connect with the HD+. The instructions to do that is on B&N's own site here. (But you really don't have to do all that, see below). To make it easier for XDA users, I have attached to this post the drivers downloaded from B&N site. Download and unzip that file to your PC.
To install the drivers, do the following (I tested this on Windows XP and Windows 7):
1. On your HD+ go to settings, device information, developer options, and make sure check "Enable ADB" is not checked.
2. Plug in the device to the PC with the USB cable. MTP should install.
3. Unplug the device, go to settings again and check 'Enable ADB'. Plug back in.
4. New devices will try to install. When they do, work your way through the options until you get to the choice "include this location in search" (the terminology is a little different in Win7) and browse to the location you unzipped the driver files above. Continue and the driver should install. In Windows 7 just one device will pop up. On Windows XP, two may. (Edit: If you are having trouble with this step, go to the B&N link I have above and read and follow section 4.6 of that guide. You can skip section 4.6.2 since you unzipped those drivers earlier. But do all of the remaining steps in section 4.6).
5. An "Android Composite ADB Interface" will install. If the computer says it needs to reboot to finish. Do it.
6. If, when it starts back up, and after installing ADB below, it does not work, you may need to go the Device Manager and look to see if "Android Composite ADB Interface" device has a yellow exclamation point by it. If it does, update the driver with the B&N driver again.
7. Create a file named adb_usb.ini and put 0x2080 in it with no line feed or carriage return. Go to \documents and settings\ and open your users folder and create a folder named .android and put that file in it.
8. I have attached a file named adb.rar below. Just unrar the adb.rar file. There will be three files there that you can put in a directory (any name you want).
9. Open a command prompt and cd to wherever you copied those adb files. If you set your path to that directory, you can have the prompt set for any directory, like where your apks are stored. Type 'adb devices'. It should go through some commands ending with a list of devices connected. The serial number of your HD+ should be listed. You can now run ADB commands.
2. Sideloading Apps
Once Unknown Sources is activated by my CWM zip above, you do not really need to install apps this way anymore.
Once you have ADB connected to your HD/HD+, it is very easy to sideload install apps. Just have your command prompt set to the location that you have your apk's stored and type "adb install xxx.apk", where xxx.apk is the name of your app. It is best to name the apk to something simple with no underlines or special characters in the name. It does not matter what you name it, the real name is inside the apk. The app should install. I would start with a launcher app since sideloaded apps cannot be seen in the stock launcher. Then I would install AnyCut which I have attached to this post. This app allows you to put the Home command on your launcher's home screen so that after you make your launcher default, you can get back to the B&N home page. There is a trick mentioned in the B&N guide referenced above that lets the stock app drawer see your sideloaded apps. On the Apps screen, hold the volume up button while you press the "Apps" word at the top of the screen for 2-3 seconds. An "Extras" screen will pop up showing all of the sideloaded apps. You have to do this every time you want to see it.
3. Rooting the HD/HD+
Rooting is now very easy using CWM in the referenced thread above. If you want to use the older manual method, click on the "show content" button below. But be warned these older methods no longer work on version 2.0.5 or newer.
Verygreen came up with the original scheme to root the HD+. But it had a problem. The HD+ checks on boot to see if /system has changed, and if it has, it will not boot. It tries this 8 times and on the last time the "8 failed boot" procedure kicks in and your device is wiped clean (including your storage space) and the factory ROM is re-installed. He later modified it to survive a reboot. Someone0 developed another scheme where he can root without modifying /system directly. So the next time it boots, it boots normally. See his thread here.
ONCE YOU HAVE ROOT, DO NOTHING THAT MODIFIES /SYSTEM OR IT WILL NOT BOOT AND END UP RESETING ITSELF. Also do not install anything that installs to /system, like busybox, AdFree and a few other apps. Ignore this warning with Universal Root rev3 or higher.
4. Setting OTA (Over the Air) Updates from B&N to Manual
When you first register the HD/HD+ it will automatically update itself to the latest version. To protect yourself against further updates that might jeopardize your ability to root or add other mods, you should try to block further automatic updates. But it seems that making this mod is no longer effective, B&N updates anyway.
Again, I have a CWM zip that will do this for you in the referenced thread above. If you want to see how to do it manually, click on the "show content" button below.
EDIT: (2/22/13) I have a new way to block OTA that seems to work so far. Another user (thanks greenya!) discovered this and I have come up with a way to implement it. I use the app AdAway to put my own black list of sites to not allow access to. If you want to try this, you must be rooted. Get AdAway either on the 1mobile.com market or at its developer's site (http://code.google.com/p/ad-away/). Before you do anything go to its preferences and change the target hosts file to /data/data/hosts. That way it will not reset the device. Then go to "Your Lists". Add this site to the black list: su.barnesandnoble.com. Then go to the main menu and select "Download files and apply ad blocking". It will ask you if you want to add a symlink, say yes. (If you installed the new boot.img from verygreen or flashed my latest version of Universal Root (rev3 or higher), you do not need to worry about adaway resetting your device. Just install it normally.)
It does not seem to block any B&N shopping or downloading apps or books. I installed this on my 2.0.5 and purposely tried to update and it says it needs the update but pushing download does nothing. Then I unblocked it and pushed download and it started to download immediately. So it does work.
Basically the same method used on the Nook Color and Nook Tablet should work on the HD+. It requires that you edit a database file and that requires root access. I use the paid Speed Software's SQLite Editor. You need to use the latest version (2.0.1). I could not get my older version to get root access.
So here is a description on how to do it with SQLite Editor. Open the app and it should get granted superuser access. Then browse with it to /data/data/com.bn.devicemanager/databases. There should be a file there named "devicemanager.db". Open that with SQLite Editor. There should be a list down the left side, one being "registry". Click on that. A table opens up that looks like a spread sheet. On line 6 is com.bn.device.fota.mode. Scroll across till you see the value column. It should say auto. Edit that to manual. Save the database and you are done.
This worked on the other Nooks, so should work here. See the post below for another automatic method.
5. Setting Up Installing from Unknown Sources
I also have a CWM zip that will do this for you in the referenced thread above. If you want to see how to do it manually, click on the "show content" button below.
You can toggle the unknown sources using the same method as I used for blocking OTA. Just look for the database in /data/data/com.android.providers.settings/databases. The database is settings.db. Open secure and line 4 - install_non_market_apps and change the value to 1.
6. Setting up Google Play Store and Google Apps
I also have a CWM zip that will do this for you in the referenced thread above. If you want to see how to do it manually, click on the "show content" button below. If you have stock version 2.1.0 or higher you do not need to flash my zip. Play store is included in the ROM.
Someone0 has a post on how to add Google Play Store is here. And he now has it so you can install the entire Gapps package, including Play Store. Again, you must be rooted first.
7. Setting LCD Density
If you are like me, you hate the tiny fonts on these high resolution devices. You can change the default lcd density to help with that. The default lcd density for the HD/HD+ is 240. I changed it to 300 and everything works fine on the HD+ and fonts are a little larger. But you cannot modify build.prop on /system to do that. It will cause the device to reset itself since you are modifying /system. To get around that, create a file in /data named local.prop. Add the following line to that text file:
qemu.sf.lcd_density=300
Then reboot and your new density is set. You need to be rooted to do this on the device.
I found that changing the density on the HD made the SystemUI app crash. If you want larger fonts for the HD, I recommend you use the tip in the next section.
8. Larger System Fonts
If you don't want to set your LCD density higher but you still want larger fonts, a user (Windsor1959) just passed on this tip. Go to the B&N app store and install the free app Go Read. Once that is installed, open it and use the menu to go to accessibility settings. There is an option for larger system fonts. It works great. Thanks Windsor1959.
I also just discovered that there is another hidden setting that lets you set the system fonts from small, normal, large and huge. To get to these settings you need a third party launcher like zeam or adw and the AnyCut app I attached below. On the launcher screen long press and select shortcut. Select AnyCut from the list. Within AnyCut select activity and scroll down to fonts. Select that and a fonts shortcut will appear on the launcher screen. Open that and you can select the font size.
9. Data structures on the HD/HD+
For those of you used to having two separate partitions for data and media files, B&N has used a different scheme for the HD/HD+. They make one very large /data partition ranging from 5GB to 28GB depending on which device you have. Then they create a folder in /data (/data/media) and, using the sdcard fuse feature, link it permanently to /sdcard. So that means it is one big dynamic space for both /data and /sdcard, sharing the free space. /data is considered root and /sdcard is not.
They named it /sdcard because a lot of third party apps expect there to be an sdcard on the system and won't run unless there is one. That creates a little bit of a terminology problem for us Nook Color users. We are used to having /sdcard be an external SD. And on top of that, if we do add an external SD, it is mounted as /ext_sdcard under /mnt and that is hard for some apps to see. And when you connect your device to your PC with MTP, internal media (sdcard) is called 'internal memory' and the SD (ext_sdcard) is called 'SD card'. I think B&N did this with the expectation that users would not be rooted and be able to see that stuff under the hood.
Since sdcard is really just a part of /data, it is formatted as ext4 instead of FAT32 like the Nook Color media partition was. That means you can store a single file larger than 4GB, which is the limit for FAT32. Most external SD cards are formatted FAT32 so they are also limited to a single file size of 4GB. But it makes them directly readable by your Windows based PC. When you first put a new external SD in the HD/HD+, it asks you if you want to reformat it so you can more easily store your media files. If you say yes, it will format it to ExFAT, a new flash drive format that supports larger file sizes. That's good for your media files since you can have very large files on it. But it could be bad if you want to take the card out and put it in your Windows XP PC because XP cannot read it without an update patch from Microsoft. If you have Vista or higher, ExFAT can be read natively.
When you do a factory reset (clear /data) your media directory (/sdcard) is wiped out too.
Also, the B&N media, books, magazines, etc., are stored in /data/nookmedia, which is root.
10. White on White Text for Some Apps
One of the annoying issues with using some third party apps is the HD/HD+ displays some dialogue boxes with white text on a white background so that the text is unreadable. Someone0 and I developed a patch that can repair this. I have a zip in my CWM thread referenced above to repair the HD+ and HD. (Also since stock version 2.1.0, B&N has dramatically changed the color scheme so that the white-on-white issue is no longer the problem it used to be, I have discontinued providing white-on-white mods for version 2.1.0 and above.) If you want to see how to do it manually, click on the "show content" button below.
Someone0 and I have been working on this and have found a solution. It requires a modification to the framework-res.apk on /system. And the mod works very well. The problem is that the apk is on /system and must be symlinked using our symlink trick we use on /system files when we need to modify them. That is easy to do, but this particular apk is very critical to your system. If you do not get it installed properly, it will lock up the device and you either need to reset it completely or repair with ADB.
If you are tech savvy enough you could modify your own apk and install it. In the colors.xml file in the values section of the de-compiled apk, are two settings that need to be changed, "background_light" and "background_holo_light" need to be changed to "ffcfcfcf". The color choice was a compromise between making the text dark enough to be seen against a white background and bright enough to make things like menus show in the grey backgrounds. Re-compile and put the apk in /data, delete the apk in /system and symlink to the one in /data. The problem with doing it manually while running is as soon as you delete the apk, things go bonkers. And you cannot add the new symlink until the original apk is deleted. If you start messing with this mod, be sure to have ADB enabled so if it locks up and gets stuck on booting, you can access things with ADB and hopefully repair it. When I did my system manually, I copied the modded apk to /data with root explorer, used root explorer to set /system to read/write, then used ADB to delete the apk in /system and create the symlink. If you mess up, it will boot, but get stuck at the 99% level. Hopefully if you left ADB enabled, you can use ADB to repair whatever is wrong.
11. Implementing Userinit.d
Userinit.d can be used to run specialized scripts as part of the boot process. The HD/HD+ does not implement userinit.d, but it can be modified to allow it. And these scripts can be used to customize the performance of the device, like modify fonts, change colors, add symbolic links, modify drives, set CPU speeds and tweaks, etc.
I have implemented userinit.d in the new Universal Root zip in my referenced CWM thread above. (The latest version no longer uses it).
The scripts are usually named with numbers at the beginning and no extension. Examples would be the scripts from CM7 init.d which are: 00banner, 01sysctl, 03firstboot, 05mountsd and others. They are executed in the order of the numbers. They are plain text files that have as the first line:
#!/system/bin/sh
Then they have script commands in text format.
The beauty of these scripts on the HD/HD+ is you put them in /data instead of /system which would reset your device. Put the script files in a new folder named /data/local/userinit.d. Set the script file permissions to execute.
There are examples of userinit.d scripts out there if you search for init.d scripts on XDA or the web. Some will work on the HD/HD+ and some won't. I have a great example in the next section.
12. Swapping "sdcard" and "ext_sdcard"
I now also have this modification as a flashable zip in my CWM thread linked above. No need for root with that one.
As explained in section 9 above, the internal media is named "sdcard" so that apps can store their files there. Some users would like them stored on their external SD. I have a userinit script that will swap "sdcard" and "ext_sdcard" so that apps will store their files on the external SD. The external SD will show as "sdcard" and the internal media will show as "ext_sdcard". And it shows swapped using MTP also. It can be a little confusing since we cannot control the names, but they are swapped. If you don't have an external SD plugged in, both sdcard and ext_sdcard will show the internal media.
To swap the drives, make sure userint.d is implemented, then download the attached file, 11SDswap.rar, and extract it and put the file in /data/local/userinit.d. Set the permissions of the file to execute in all three boxes. On the next reboot, they will be swapped. To return to normal, just remove the file and reboot.
13. Skipping OOBE (Out of Box Experience)
Skipping OOBE is when you want to skip the registration step when you first start your device or after a reset. Not registering means that you will not be able to buy books or apps from B&N or, if you already have an account, have access to already purchased items. Your name will show as TEST (which can't be changed). And, if you set up wifi, the device will still check for updates and if found, update.
So if you don't want to register, or that device is already registered to someone else and you can't, just skip OOBE. There are instructions for the Nook Color here. They still work for the HD/HD+.
14. Back Up Your Stock ROM Installation with CWM v6.0.2.8 for Nook HDplus and v6.0.2.7 for the HD
Now you can backup your stock installation with my bootable CWM (ClockworkMod) recovery SDs. That way you can restore if you make a mistake and change /system so the device starts to reset itself. Just catch it before the reset completes, insert the card and restore and you will be back to OK.
You can do anything with these CWM SDs you normally would do with CWM, (nandroid backup, wipe system, data, cache, dalvik-cache, fix permissions, etc).
One of the nice features is you can wipe /data without it wiping your internal media at /data/media. So, if you want to reset, just wipe /data and your media files are still left intact. And when you do a nandroid backup, it can be placed either on internal media or your external card. The nandroid backup feature backs up /boot, /system, /cache and /data (without the media folder). So if you want the media folder backed up you must do it manually from within stock. And when you restore, you can selectively restore any partition. So if you mess up /system by putting something there that causes a reset, just selectively restore /system.
EDIT (5/22/13) - There is a new procedure brought to my attention by another user (thanks fanoush) which lets you make the CWM SD without burning the image. It seems the OMAP4 devices are a little more liberal on the booting requirements than previous OMAP devices. This makes it easier to install on any size SD. Go to my HD/HD+ CWM thread linked in my signature and look at item 1a. There are instructions and files there.
The versions attached below are under 120 MB so they can be put on any size SD. It burns very quickly. But there is no room there for any backups. After burning the SD you can use partitioning software (like Mini-Tool Partition Wizard or EaseUS Partition Manager, both free) to expand it to the full size of your SD card if you want so there would be plenty of room for backups. But be sure to only expand the back end of the partition, being careful not to touch the beginning.
I also now have a 4GB versions for both the HD and HDplus attached to the CWM thread referenced above.
To make the SD, download the version for your device and extract the file. It should be a 120MB .img file. Burn (write) that image file to your SD card using Win32diskimager in Windows. In Linux or OSX (Mac) use the "dd" command.
To use Win32DiskImager, find it on the web (here, it's free) and install it on your Windows PC. Open it (be sure to run it as administrator) and select the drive (device) that has your card reader with your SD inserted. Then in the image file box put the location where you have the extracted img file. Then when everything is set right, click on the write button. A warning will pop up asking if you want to proceed. When you have verified that you are going to write to the correct device, click on Yes. (One user overwrote their external USB hard drive by not verifying first). With the small version it should burn fairly rapidly. If you get an error message about access denied, it means you are looking at the drive with Windows Explorer. Close Windows Explorer and try again. In fact, it is a good idea to close all unnecessary windows when burning, even your browser.
Insert the SD into your powered off Nook HD/HD+ and power on. It should boot to CWM with the label v6.0.2.8 for HD+ stock. The HD version just says v6.0.2.7 for Stock. You can tell it is booting properly if the cyanoboot logo shows up after the Nook logo shows for a few seconds. If the Nook logo stays there and starts changing, it means it is booting to stock. Hard power off by holding the power button for several seconds. Try again.
Manipulate the controls with volume up/down for cursor, n key to activate and power key for back.
15. Modifying System Files on the HD/HD+
Ordinarily you cannot modify system files on these devices because they will detect the change and reset themselves back to factory stock, wiping out all your data at the same time. But there is a safe way to do it if you are rooted.
If you have installed my new Universal Root rev3 or higher or installed verygreen's boot.img, the below procedure is no longer necessary, just modify the files directly.
The HD/HD+ has a manifest file included in the boot files that has a listing of each file that is supposed to be in /system and a checksum of each file. On boot, it reads the files in /system and makes sure each file that is there is on the list and matches the checksum. It ignores directories, symlinks and missing files. If one is added or has the wrong checksum, it stops and tries to boot again. If it reboots 8 times in a row without completing the boot, the automatic reset feature kicks in and your device is formatted and the factory ROM is reinstalled.
So you can see that missing files are OK and symlinks are OK. So if you want to modify a system file, first copy it to /data somewhere, delete the original, and make a symlink in /system to replace the deleted file. The symlink points to the file copied to /data. But be careful, some files, like framework-res.apk, are being used all the time and if you delete it, even temporarily, the system goes crazy.
The scheme that someone0 and I use is to mimic /system under /data/su so that the structures are the same to avoid confusion. For example, if you wanted to modify build.prop, it would be copied to /data/su/system/build.prop and the symlink would point there. Since build.prop is not used very often, it is safe to now modify it however you want. But be careful, some settings there are vital, like hardware rotation. Mess with that and things will go all wonky on the next reboot.
Here are the specific commands to make this happen using build.prop as an example:
1. Use your root file manager to copy /system/build.prop to /data/su/system/build.prop. Set the file's permissions to match the original.
2. Delete /system/build.prop also using your root file manager
3. Set up Terminal Emulator. Start the program and type su enter. After you allow superuser access, the prompt turns to #
4. Type the following command at the # prompt (without the quotes):
"mount -o remount,rw /system"
5. Then this command:
"ln -s /data/su/system/build.prop /system/build.prop"
(That first letter is a lower case L)
6. Then this command:
"mount -o remount,ro /system"
You are done. You can now modify build.prop in /data any way you want and the system will not reset.
But before you do this mod or any other system file mod, I recommend you have backed up your system using CWM as described in the previous section. That way if you did not get it right somehow and it starts to reset, you can insert your CWM card to stop the rebooting and selectively restore /system and try again.
One side benefit of doing this build.prop mod is if B&N tries to update you in the future, it will fail because it cannot verify your build.prop because it is missing. And, in my experience, it does not try again.
16. Nook HD/HD+ internal partition structure and backups
The partition structure for the HD/HD+ is the same and is as follows:
Code:
P# Name Size Type
1 xloader 128K Fastboot Image
2 bootloader 256K Fastboot Image
3 recovery 15MB Fastboot Image
4 boot 16MB Fastboot Image
5 rom 48MB vfat
6 bootdata 48MB vfat
7 factory 448MB ext4
8 system 672MB ext4
9 cache 464MB ext4
10 data varies ext4
There is a simple process to make image backups of your internal partitions. Most people will never have to use the backups, but there is one critical partition that holds vital device specific information that was created at manufacture that is probably wise for you to back up. The process requires that you have either Terminal Emulator installed or ADB set up. And it can be done either in rooted stock or CM10/CM10.1. In Terminal Emulator or ADB Shell in superuser mode, type the following command:
dd if=/dev/block/mmcblk0p7 of=/mnt/sdcard/factory.img
This will make an image of your partition 7 that has that vital information. It also has a copy of the factory.zip file used to reset your device should you need to. If you want to back up the rest of your partitions, just change the p# and file name in the above commands to match the listing above. Partition 10 is quite large so should not be backed up using this method.
To restore a partition, just reverse the information following the if= and of= statements in the command. The information stored in partitions 1, 2, 3, 4, and 8 is specific to the ROM version you were running when you made the backup, so restoring them to another version is probably not a good idea (and if you do, restore all 5 of them together). Only do it if it is a last resort. And of course you should not restore HD partitions to the HD+ and vice versa.
Enable Unknown Sources and Blocking Auto OTA made easy (updated 12/3)
Instead of making a new thread, I have decide to make the tips that already available, but hard to use and make it simple.
So, what is it? This little thing will set Enable install from Unknown Sources and change the auto update to manual update for Nook HD ROM. I keep hearing how people are saying they have hard time making these changes so, I make it pretty dead simple. It's as simple as I can make. If you are looking at the timeline, root first, then this, and then gapps after. I now make them all so simple that it take me like 15mins to do all those 3 things from scratch. Originally I grab the sqlite3 from one of the app, which I guess I shouldn't have. Now I replace it w/ the one from CM9, which I guess is okay. And smaller size too.
If you were using verygreen version of root, try running this first.
Code:
adb shell su -c "/data/su/busybox chown shell.shell /data/su"
Pre-Requisite:
ADB and root.
NEW Instruction:
download the settings_new.zip in the attachment and save it somewhere.
unzip it.
run install.bat (for windows)
OLD Instructions:
download the settings_old.zip in the attachment and save it somewhere.
unzip it.
run install.bat (it basically just upload settings.sh and sqlite3 and change their permission, if you are on linux just do that instead)
adb shell
su
/data/su/settings.sh
*** OLD TEXT ***
While it's true that we should put heavy emphasis on not touching /system and that is not just manual works, but also any app with root access. You could be installing something like busybox via goole play store and screw everything up. That said, we are not touching /system at the moment because we lack the knowledge of that the nook is doing during boot process. I have been able to get asomething like AdAway to work which actually creating a sym link from /system/etc/hosts to /data/data/hosts file. I been doing this under the assumption that mounting and sym link are ok in the /system. But I would be worried too if there is a lot of those.
Click to expand...
Click to collapse
Lost and Confused
I tried following the instructions on the B&N’s website, but I do not see ‘Android Composite ADB Interface’ or even ‘Android Phone’ within the Device Manager of Windows. I now have ‘BNTV600’ and ‘NOOK’ under Device Manager/Portable Devices. I think this is for the big leagues and I may mess something up. Probably going to wait until there is a YouTube video guide showing step by step on how to successfully root the Nook HD+.
Many thanks to ‘leapinlar’ for the help.
cybersonic_ca said:
I tried following the instructions on the B&N’s website, but I do not see ‘Android Composite ADB Interface’ or even ‘Android Phone’ within the Device Manager of Windows. I now have ‘BNTV600’ and ‘NOOK’ under Device Manager/Portable Devices. I think this is for the big leagues and I may mess something up. Probably going to wait until there is a YouTube video guide showing step by step on how to successfully root the Nook HD+.
Many thanks to ‘leapinlar’ for the help.
Click to expand...
Click to collapse
If you read my description above, it says to update the driver for BNTV600.
No longer able to access internal & external memory on the Nook
leapinlar said:
If you read my description above, it says to update the driver for BNTV600.
Click to expand...
Click to collapse
This is what I did:
1. Plugged my Nook HD+ to my computer (ADB enabled)
2. Device Manager / BNTV600 / Update Driver Software / Browse my computer for driver software / Usb_driver_r04-windows folder / OK
3. Clicked on ‘Let me pick from a list of device drivers on my computer’
4. MTP USB Device appeared so I clicked on ‘Have Disk’
5. Browsed ‘android_winsub’ and clicked Open and OK
6. Android Composite ADB Interface appeared so I clicked ‘Next’
7. Message, ‘Windows can’t verify the publisher of this driver software’
8. Install this driver software anyway
9. Rebooted my computer
10. When the Nook is connected to the computer (ADB not enabled)
a. The Nook shows up as a G: drive and ‘MyNOOK Setup’ is the only file in it
b. Clicking on the ‘MyNOOK Setup’ brings me to a message:
• Welcome to MyNOOK Setup.
• MyNOOK Setup is a one-time installation that will allow you to tranfer your personal files to your NOOK.
• Transferable files include, but are not limited to: photos, music, videos, EPUB, PDF and Microsoft Office files.
• Note: Copyright protected files are not transferable
• To install, go to .... can't post link since im a noob
• For more information, visit ..... can't post link since im a noob
c. MyNOOKSetup.dmg appears when I click on the first link
11. When the Nook is connected to the computer (ADB enabled)
a. AutoPlay ‘BNTV600’ constantly appears.
12. I cannot access the internal or external memory on the Nook for both #10 & #11,
13. Running ‘makeroot.bat’ in the cmd for both #10 & #11 does not work either.
14. Device Manager / NOOK (BNTV600 no longer exist)
Follow my instructions to install the drivers and use my driver file from my first post. Go to device manager and delete any those three drivers you installed earlier, composite, mtp, etc. Then just do the bntv600.
Sent from my Nook HD+ using Tapatalk
Cool but....
...I am having a slight problem. I can not download your attached file usb_driver_r04-windows-Modded-for-HD.zip :/ everytime I do my computer which is running windows xp is telling me there is nothing there. Can you please help me thank you
Possible driver conflict with Samsung Galaxy Tab 7 Plus
leapinlar said:
Follow my instructions to install the drivers and use my driver file from my first post. Go to device manager and delete any those three drivers you installed earlier, composite, mtp, etc. Then just do the bntv600.
Sent from my Nook HD+ using Tapatalk
Click to expand...
Click to collapse
I followed your instructions and I successfully installed the driver you provided in your zip but the following actions occur after computer reboots.
When ADB is disabled
• NOOK (G Drive appears in My Computer
When ADB is enabled
• NO NOOK (G Drive in My Computer
• BNTV600 AutoPlay windows constantly pops up
I forgot to say that I have a Samsung Galaxy Tab 7 Plus installed in this computer. The following items are what I see in Device Manager:
• Portable Devices / NOOK
• SAMSUNG Android Phone / Android Composite ADB Interface
I tried deleting all the drivers and repeat your instructions but the SAMSUNG Android Phone / Android Composite ADB Interface keeps appearing.
Dopey32 said:
...I am having a slight problem. I can not download your attached file usb_driver_r04-windows-Modded-for-HD.zip :/ everytime I do my computer which is running windows xp is telling me there is nothing there. Can you please help me thank you
Click to expand...
Click to collapse
I don't know what to tell you. I just tried again with windows XP and it downloaded fine. Just keep trying. And watch where windows puts it.
cybersonic_ca said:
I followed your instructions and I successfully installed the driver you provided in your zip but the following actions occur after computer reboots.
When ADB is disabled
•NOOK (G Drive appears in My Computer
When ADB is enabled
•NO NOOK (G Drive in My Computer
•BNTV600 AutoPlay windows constantly pops up
Click to expand...
Click to collapse
I experienced a lot of the same symptoms.
The Nook G: is for Mac users that do not have MTP. It is so they can get the drivers they need. Notice the .dmsg (sp ?) is for them. That will only go away when you get MTP working or switch to enabled adb.
I was most concerned with getting the adb interface working, so I just ignored the MTP issues until later. In fact I temporarily disabled it so it would not keep popping up during adb.
After I got everything sideloaded and rooted, I tackled the MTP issue. With adb unchecked, I went to USB devices and uninstalled the USB mass storage device (which was the Nook G). Then it recognized MTP.
Sent from my Nook HD+ using Tapatalk
I think it's safe to say that what we(me and other who got all the stuff out seperately) did so far aren't anything very dangerous. We havn't touch any other partition or boot loader. Unless you mess them up yourself since now you have root, then the worst it could happen is a full factory reset or you can force yourself to factory reset it.
okay got a little farther
I have installed the drivers and my nook is having the same symptoms as cybersonic_ca. Now I am trying to figure out how to utilize the command prompt, i type in adb devices and it responds with 'adb' is not recognized as an internal or external command, operable program or batch file.
please help, i am trying to root my nook and HD+ but i feel i must be forgetting something. I am sorry if i am very bothersome but i can not figure out what is going on
All these tips also help with the HD. Thanks so much!
Sent from my Nook HD using xda premium
Dopey32 said:
I have installed the drivers and my nook is having the same symptoms as cybersonic_ca. Now I am trying to figure out how to utilize the command prompt, i type in adb devices and it responds with 'adb' is not recognized as an internal or external command, operable program or batch file.
please help, i am trying to root my nook and HD+ but i feel i must be forgetting something. I am sorry if i am very bothersome but i can not figure out what is going on
Click to expand...
Click to collapse
Then you have either not installed the Android SDK (Software Development Kit) on your PC (which includes adb) per the B&N instructions or your path variable is not set to include where you installed it.
Sent from my Nook HD+ using Tapatalk
Dopey32 said:
I have installed the drivers and my nook is having the same symptoms as cybersonic_ca. Now I am trying to figure out how to utilize the command prompt, i type in adb devices and it responds with 'adb' is not recognized as an internal or external command, operable program or batch file.
please help, i am trying to root my nook and HD+ but i feel i must be forgetting something. I am sorry if i am very bothersome but i can not figure out what is going on
Click to expand...
Click to collapse
if you can't follow or understand the instructions about adding the path to adb in the environment path you can always just cd "/to the directory adb is installed/" and run adb directly from there. easy way is to just drag the folder into the command prompt window. it'll save a bit of typing - only works if you're not running cmd as admin.
You said you modded the drivers from B&N? What did you change? Just curious...
So, instead of making another thread, since this is a tips thread, I'll just post it here.
Just in case you are not familiar with a factory reset on the Nook HD+, there are two kind of factory resets. The one that you perform yourself, which is actually not a full factory reset and the one that Nook get pissed and do the full one.
A factory reset that you perform yourself, whether from the GUI or button combination will basically clean the partition /data while a full blown one will basically restore other partition such as /system.
Why do I bring this up, because as we know, we are not perfect. I make mistake and so do other. Sometime instead of trying to re-trace the step and fix our mistake, it's easier to just reset everything. Well, since we can't just do a full blown factory reset our self, at least not very easy, we can at least force the Nook to do it for us.
So, if you felt like I did something wrong, and I don't know which step to take next, I make a little tool for you to start over. You can see the attachment, reset.zip in there, there are 3 files. You only have to run reset.bat if you need a linux version, maybe you can beg the OP to do it for you. If you exam the package, you can see that this is very similar to the original root method which force itself to factory reset, so this is basically a modified version of that. Obviously you still required ADB. Well, on the other hand, if you never get ADB working in the first place, you probably can't mess up that bad that you need this tool in the first place.
Let me make it clear, this tool WILL RESET EVERYTHING. It also REBOOT MANY TIMES. And expect the whole process to take about 10 minutes.
dbh369 said:
You said you modded the drivers from B&N? What did you change? Just curious...
Click to expand...
Click to collapse
I actually modified a generic driver by putting the Nook HD+ device id in it. I was not able to download the B&N driver so I don't know if it needed modifying or not.
Sent from my Nook HD+ using Tapatalk
cybersonic_ca said:
I followed your instructions and I successfully installed the driver you provided in your zip but the following actions occur after computer reboots.
When ADB is disabled
• NOOK (G Drive appears in My Computer
When ADB is enabled
• NO NOOK (G Drive in My Computer
• BNTV600 AutoPlay windows constantly pops up
I forgot to say that I have a Samsung Galaxy Tab 7 Plus installed in this computer. The following items are what I see in Device Manager:
• Portable Devices / NOOK
• SAMSUNG Android Phone / Android Composite ADB Interface
I tried deleting all the drivers and repeat your instructions but the SAMSUNG Android Phone / Android Composite ADB Interface keeps appearing.
Click to expand...
Click to collapse
I am having the same problem as Cybersonc_ca. I did everything according to the nook developer website and when I enable ADB on my nook hd+, it does not show my BNTV600 under portable devices but I DO have Android Phone >> Android Composite ADB Interface.
If I go to command prompt, how can I make it so that it checks that folder as well?
I apologize for such noob questions. Thank you.
sayw0rd said:
I am having the same problem as Cybersonc_ca. I did everything according to the nook developer website and when I enable ADB on my nook hd+, it does not show my BNTV600 under portable devices but I DO have Android Phone >> Android Composite ADB Interface.
If I go to command prompt, how can I make it so that it checks that folder as well?
I apologize for such noob questions. Thank you.
Click to expand...
Click to collapse
Go to command prompt and type 'adb devices' and see if you have any. And the looking for bntv600 was for getting the composite to show. You have that.
Sent from my Nook HD+ using Tapatalk

Noob Notes on Rooting/Romming/Customizing KF 1st-gen 6.3.2

Hi. A week ago I had no clue about any of this so I'm definitely a noob. I wanted to say thanks to everyone on this site who have contributed to the software, who've made guides, and who have answered questions. Special thanks to kinfauns for his Beginner's Guide and his Howto Root, etc. I had already started taking notes and piecing together definitions of the various parts of this process when I found his guide and fell over in worship. Also big thanks to Jcase for his 6.3 root guide, which gave me confidence in the procedure for rooting my 6.3.2 KF. I must also extend my gratitude to Thepooch for maintaining his Index of links for the KF. Unfortunately, I found this later rather than sooner, but it was an immense help anyway. Pokey9000, ChainsDD, TWRP, the CryanogenMod team, and Hashcode deserve thanks and recognition for their development and maintenance of software. (Links to each of these pages in next post.)
My story is that from the first day I bought the KF I had planned on ditching Amazon's crappy OS, but I just didn't have time or get around to it for years. I finally got googling the other day. I saw some simple directions, but not knowing what certain things did I wasn't willing to go running programs or commands on my computer and KF without having a better understanding and trust in the authors' instructions, so I kept reading. As I always do with complicated procedures that I'll probably forget by the time I do it a second time, I began taking some fairly detailed notes, especially on procedures. When I felt knowledgeable enough, I gave it a go and had only a minor hiccup. In the spirit of helping, I'm posting those notes here for others to use.
Experts, if you care to please feel free to correct anything you see that is wrong, or make suggestions. I'll probably incorporate some corrections, but I doubt I'll maintain this for too long. In other words, read the comments, people.
Noobs, please be aware that this is in no way a fully proper and tested procedure, nor is it in any way definitive. It is merely the things I learned starting from zero and getting to the point where I was comfortable enough to move forward. So keep this in mind. It does, however, also include many of the links and sources for my information, which should also help people make their own determination on things when it's clear I'm speculating. It also extends beyond the setup process into discussing apps a bit, which should be helpful for the complete noob like me.
###############################################
##### Android / Kindle Fire Rooting and Romming #####
###############################################
Read this (skip the windows driver section, but check out the section after that for fastboot and adb commands):
----- http://forum.xda-developers.com/showthread.php?t=1552547
And then this:
----- http://forum.xda-developers.com/showthread.php?t=1638452
And then note this for v6.3:
----- http://forum.xda-developers.com/showthread.php?t=1568340
And here is the repository for links to ROMs (including stocks), bootloaders, recoveries, et al.
----- http://forum.xda-developers.com/showthread.php?t=1859851
FYI: The Kindle Fire uses the ARM architecture in an TI OMAP 4430 chip.
----- http://www.zdnet.com/blog/hardware/inside-the-kindle-fire-processor/16317
----- The OMAP 4430 is a dual-core ARM A9 part clocked at 1GHz built using 45nm CMOS process. It features Symmetric Multiprocessing (SMP) and an integrated POWERVR SGX540 graphics accelerator (supporting OpenGL ES v2.0, OpenGL ES v1.1, OpenVG v1.1 and EGL v1.3) for 3D games and UI. It also features IVA 3 hardware accelerators to allow full HD 1080p video encode/decode. The chip also features on-board USB 2.0 support.
----- FYI: The 1st-generation Kindle Fire (which I have) is 'codenamed' Otter. The 2nd-gen is Otter2.
----- ----- http://wiki.cyanogenmod.org/w/Otter_Info
###################
#### Key Terms #####
###################
ADB (Android Debug Bridge) - Communicate with and control an Android-powered device over a USB link from a computer; part of the Android SDK; has a client, server, and daemon.
----- http://www.androidauthority.com/about-android-debug-bridge-adb-21510/
Code:
./adb help
Fastboot - A diagnostic and engineering protocol that you can boot your Android device into so you can modify the file system images from a computer over a USB connection, that is, you can flash roms to it. Is part of the ASDK (Requires more than the SDK - does it?), and specific USB drivers for windows. For fastboot to work, the device has to be in fastboot mode in order for the computer to send commands to it.
----- http://www.elinux.org/Android_Fastboot
Code:
./fastboot help
----- Usually commands are in the format: fastboot <operation> <kf_source/destination> <file>
----- So to change the splash screen image, something like:
----- ----- http://forum.xda-developers.com/showpost.php?p=21262416&postcount=126
Code:
fastboot flash splash1 splash1.img
Recovery Mods - Essentially a rudimentary OS / advanced bootloader. Many are ROM managers that allow you to switch between various OS's you have stored on your device in ROM format, or to add/delete them. You basically wipe the system then install a new one each time you switch ROMs. Recovery mods also serve backup functions, and allow tethering (so you can use your phone as an internet connection for your laptop). The term 'recovery' comes from Android's /dev/mtd/mtd1 recovery partition, as compared to the /dev/mtd/mtd2 boot partition; the latter is the primary boot holding the kernel and initrd with rootfs for default boot, while the former is the backup boot holding another kernel and initrd with rootfs in case the primary borks; note that mtd3 is the system partition holding the bulk of the Android system files, mtd4 is the cache which is only used for OTA (Over The Air Amazon/Sprint/Verizon updates) so largely unused, and mtd5 is userdata for user-installed apps and data.
----- http://www.elinux.org/Android_Fastboot
----- TWRP (Team Win Recovery Project) is one popular recovery, built on ASOP (Android Open Source Recovery) recovery.
----- ----- http://www.teamw.in/project/twrp
----- ----- http://teamw.in/project/twrp2/79 <- the kindle fire page
----- CWM (ClockworkMod) is another recovery, but there is some sort of bug with certain chips in 1st-gen Kindles that will brick sometimes with CWM, so don't use it.
----- ----- http://www.clockworkmod.com/
----- COTR (Cannibal Open Touch Recovery) is a newer recov. Open as in open source, touch as in touch screen.
----- ----- http://www.redmondpie.com/cannibal-...ures-of-all-custom-recoveries-under-one-hood/
Bootloader - Just like a linux bootloader. This is the first thing you install (after you get root access). The Kindle requires a special one because there needs to be a way to access recovery with just one button (as opposed to a cell phone).
----- FFFe (FireFireFire Extended) - Seems to be the most popular for Kindle Fire. The extended, I believe, is a variations where dual boot is enabled (see Recovery Mods info to get an idea of how that works.) To use it, when the logo pops up after you turn on the Fire press the power button. It also does some other stuff, like make fastboot easier (I think the usb detection triggering fastboot is the 1st stage, and the rest of FFF is second). I believe that FFF is based on kf_u-boot (which is now outdated?).
----- ----- http://forum.xda-developers.com/showthread.php?t=1369405
----- ----- http://forum.xda-developers.com/showthread.php?t=1615093 dual boot with FFFe
----- kf_u-boot - Pokey9000's (from http://forum.xda-developers.com) KF-specific fork of the firmware Das U-Boot (typically abbreviated as just "U-Boot") for Embedded PowerPC, ARM and MIPS systems.
----- ----- http://www.denx.de/wiki/U-Boot/
Bootmode - "As the Kindle Fire powers up or reboots, the bootloader begins to do its job and checks for the bootmode of the device. The bootmode tells the bootloader how it should proceed in the boot up process. Most users will just be concerned about three of these bootmodes: normal (4000), fastboot (4002), and recovery (5001). In a great majority of the cases, the Kindle Fire will be in the normal bootmode setting, telling the bootloader to continue right on to booting the operating system. However, there are circumstances when the device needs to be started up directly in fastboot or recovery mode. This is possible by changing the bootmode setting and rebooting the device. Bootmode is a persistent setting, meaning the Kindle Fire will remember this new setting until it is changed again. No amount of restarts or ROM flashes will change the bootmode until it is explicitly changed again."
----- http://forum.xda-developers.com/showthread.php?t=1552547
SU and Superuser.apk - Superuser is an app that manages what apps on your rooted device have access to the su binary. Apps that are granted su have elevated permissions and can modify just about any part of the system. Superuser.apk runs as any other app and gives you, the user, a place to see what apps you have allowed or denied, as well as view a log of which apps have used su when. The su binary is what other apps call when they need superuser rights. The binary checks the database maintained by Superuser.apk to determine if you have already granted rights to the requesting app, and if not tells Superuser.apk to display a prompt asking you for permission. Superuser comes pre-installed on any rooted ROM. In fact, without it, you don’t have a rooted device at all. You cannot uninstall it, it lives on the system partition with other apps that came pre-installed on your device. It can be updated from the Market if the developer of your particular ROM has used a version that is signed with the proper keys, which are publicly available on my github (see link).
----- http://androidsu.com/superuser/ (You want the ARM architecture for the KF.)
##########################################
##### Set up ADB and Fastboot (via ASDK) #####
##########################################
http://androidtweak.in/general/installing-and-setting-up-android-sdk-adb-and-fastboot-on-gnulinux/
1. Download and unpack the Android SDK from Google to /opt. Get the full ADT bundle.
----- http://developer.android.com/sdk/index.html#ExistingIDE
2. Inside its directory, inside sdk/tools, run ./android.
3. In the SDK Manager that opens check that under Tools the Android SDK Platform-Tools are installed. If not, install them.
4. Exit the SDK Manager.
5. Verify that there is now a sdk/platform-tools directory, and that adb and fastboot are in it.
6. If you want, you can add blah/sdk/platform-tools to your $PATH.
Code:
PATH=$PATH:blah/sdk/platform-tools
####################################################
##### Get ADB to recognize the device (Kindle Fire) #####
####################################################
1. Plug in your device. The screen that comes on is called Mass Storage Mode, which allows you to mount /mnt/usb (with fstab setup correctly: /dev/sdh /mnt/usb auto defaults,noauto,user,uid=1000,gid=100 0 0 # kindle fire). Pressing 'Disconnect' on the Kindle will turn off this mode. The following I did with it on, but I don't think it matters.
2. Run 'adb devices'. If you see the first results, ignore the rest of this section.
----- https://rechtzeit.wordpress.com/2011/02/24/adb-devices-shows-no-permissions/
Code:
adb devices
List of devices attached
0123456789012345 device
----- If you see the following, then udev is unable to determine the permissions for this USB device.
Code:
adb devices
List of devices attached
???????????? no permissions
3. Verify the device is connected and get some basic info. (If you're unsure which device is yours, do a lsusb before plugging it in as well.)
Code:
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 004: ID 1949:0006 Lab126
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
...
----- So the Kindle is device 004 on bus 002, the vendor ID# is 1949, and 0006 is the device #.
4. Get more info. Note that the first result will probably be the last usb device plugged in, but verify by looking at the idVendor and idProduct as well as the manufacturer and product attribute lines.
Code:
udevadm info --attribute-walk --name=/dev/bus/usb/002/004
looking at device '/devices/pci0000:00/0000:00:13.2/usb2/2-5':
KERNEL=="2-5"
SUBSYSTEM=="usb"
DRIVER=="usb"
ATTR{configuration}==""
ATTR{bNumInterfaces}==" 2"
ATTR{bConfigurationValue}=="1"
ATTR{bmAttributes}=="c0"
ATTR{bMaxPower}=="500mA"
ATTR{urbnum}=="1473"
ATTR{idVendor}=="1949"
ATTR{idProduct}=="0006"
ATTR{bcdDevice}=="0216"
ATTR{bDeviceClass}=="00"
ATTR{bDeviceSubClass}=="00"
ATTR{bDeviceProtocol}=="00"
ATTR{bNumConfigurations}=="1"
ATTR{bMaxPacketSize0}=="64"
ATTR{speed}=="480"
ATTR{busnum}=="2"
ATTR{devnum}=="4"
ATTR{devpath}=="5"
ATTR{version}==" 2.00"
ATTR{maxchild}=="0"
ATTR{quirks}=="0x0"
ATTR{authorized}=="1"
ATTR{manufacturer}=="Amazon"
ATTR{product}=="Kindle"
ATTR{serial}=="123456789012345"
5. If you haven't up to this point, switch to root.
6. Create a udev rules file for the device.
Code:
cd /etc/udev/rules.d/
vi 99-android.rules
----- Note that udev is being replaced by hal (at least in Slackware), and so a rules/policy file will probably need to be made in /etc/hal/fdi/policy instead of this in the future.
7. Enter the following into it and save. You should be able to leave out owner:group to let anyone use, and there are probably several other variations that will work (e.g., I believe instead of SYSFS you can have ATTR or ATTRS).
Code:
SUBSYSTEM=="usb", SYSFS{idVendor}=="1949", OWNER="me" GROUP="users", MODE="666"
8. Try it again as root, and then as your user. You should now see the serial number from the udevadm command.
Code:
adb devices
List of devices attached
123456789012345 device
9. You will also need to add a second, identical line changing the idVendor attribute to "18d1". This may not become a problem for you, but when the KF boots into fastboot mode it ceases to be recognized as a standard Kindle and instead looks like this:
Code:
lsusb
...
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 002: ID 18d1:0100 Google Inc.
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
######################
##### Temp Root It #####
######################
In order to gain root access to the device, you must use one of several methods. Which one you use will depend on the device and its current system (firmware?) version. To find your version go to Settings -> More -> Device -> System Version. As of this writing (2013-09-20), my 1st-gen Fire is version 6.3.2. The generic Android root util called SuperOneClick is known to work on at least the 6.2 Kindle software versions. You can also install an app on your Kindle called ES File Explorer (Apps -> Store -> search for 'ES', select the app, click Free, click Get App, click Install, etc., Open App) that has a root util that comes installed in it (which should show up right there, check out youtube vids for details). You can also do it by hand using fbmode (known to work with 6.2 through 6.3.1). Note that most of the one click type utils just batch run fbmode commands or similar by hand methods.
1. Go to Settings -> More -> Device
----- 1a. -> Allow Installation of Applications, change it to on.
----- 1b. Be sure you see Battery Fully Charged. If something goes wrong, you don't want it running out of juice before you can fix it.
2. Connect your device to the computer, and disconnect (aka turn off Mass Storage Mode).
3. Verify that adb is working. The prompt in the first result means it is. If it's not you'll see the device not found error. (Be sure to exit the adb shell when done.)
Code:
adb shell
$
$ exit
adb shell
error: device not found
4. (Be sure to exit the adb shell first.) Check to see if you already have root access. If you get the first result, then you have root access and can skip the rest of this section.
Code:
adb root
adbd is already running as root
adb root
adbd cannot run as root in production builds
5. Get into fastboot mode somehow, fbmode is the easiest. This is a workaround to get you into fastboot mode when you don't have root privileges. Note that once you have root privileges, you can change the bootmode with "adb shell idme bootmode 4002; adb reboot" instead. (Also, I'm not sure if fbmode gives permanent root privileges.) First download fbmode and unzip it into the platform-tools dir.
----- http://forum.xda-developers.com/showthread.php?t=1414832
----- MD5sum: 091dc2ca822eab525d85aad629add7d3 fbmode.zip
----- I extracted it to sdk/platform-tools/fbmode(by_pokey9000).
----- 5a. Place the fbmode file onto your KF in /data/local/tmp. (You can also use /data/local. The /data partition is write accessible to unprivileged users so that's why we use it.)
Code:
adb push fbmode(by_pokey9000)/fbmode /data/local/tmp
3225 KB/s (510876 bytes in 0.154s)
----- 5b. Change the file to executable by running a command in a remote shell on the KF, and verify.
Code:
adb shell chmod 755 /data/local/tmp/fbmode
adb shell ls -l /data/local/tmp/fbmode
-rwxr-xr-x shell shell 510876 2011-12-29 01:32 fbmode
----- 5c. Now run the binary via a remote shell, and verify.
Code:
adb shell /data/local/tmp/fbmode
----- 5d. Reboot the device (will reboot into fastboot).
Code:
adb reboot
6. Immediately continue with installing a bootloader.
############################
##### Install a Bootloader #####
############################
There are lots of these available. Currently (2013-09-20) FireFireFire Extended v1.4a seems to be the most popular. Note that the older version of FFFe (prior to 1.4) caused the yellow triangle boot hang problem you may read about. As mentioned in the Key Terms above, you will need a bootloader specifically designed for the Kindle Fire so you will be able to access the recovery partition/software using the only (power) button.
1. Download FFFe, and unzip it into the platform-tools dir.
----- http://forum.xda-developers.com/showthread.php?t=1632375
----- ----- https://code.google.com/p/kindle-alt-roms-cm10-cm9-dev/downloads/detail?name=fffe-1.4.1-awidawad.zip
----- ----- SHA1: b99620e382ea5d01cb6fa9e465ab719f63621780
----- or: http://goo.im/devs/Hashcode/otter/bootloader/ <- this one is hashcode's and I think I trust it more.
----- ----- MD5sum: 419c53b922c963082454b14b7de75a90 fff-u-boot_v1.4a.zip
----- I extracted this into sdk/platform-tools/fff-u-boot_v1.4a(by_hashcode)
2. Flash the fff binary to the bootloader partition. The binary will be in the cache directory. I'm not sure you even need the META-INF files or the padfile. I expect it would have been fine to go from sdk/platform-tools/fff-u-boot_v1.4a(by_hashcode)/cache/fff-u-boot_v1.4a.bin, however, I'm not sure how important the other files are so I unzipped it all to the sdk/platform-tools dir and used it from there. The -i 0x1949 switch is required for non-root privileged devices.
Code:
fastboot -i 0x1949 flash bootloader fff-u-boot_v1.4a.bin
sending 'bootloader' (243 KB)...
OKAY [ 0.065s]
writing 'bootloader'...
OKAY [ 0.177s]
finished. total time: 0.242s
3. Continue immediately with flashing the recovery.
##########################
##### Install a Recovery #####
##########################
1. Download TWRP. As of this writing (2013-09-20) TWRP is at 2.6.3, and we want the Otter. (Note the codename for KF 1st-gen is Otter. So I assume Otter is what we want, but I've seen people mention or reference Blaze a lot. I'm not sure what that is, but since the references were usually a year or so old and since I know Otter will be correct, I'm going with Otter.)
----- http://teamw.in/project/twrp2/79
----- MD5sum: 8b5e6f15ab88ce52022991925dcd4ac0 openrecovery-twrp-2.6.3.0-otter.img
----- I extracted this directly into sdk/platform-tools/.
2. Flash the openrecovery image to the KF's recovery partition. The -i 0x1949 switch is required for non-root privileged devices.
Code:
fastboot -i 0x1949 flash recovery openrecovery-twrp-2.6.3.0-otter.img
sending 'recovery' (6564 KB)...
OKAY [ 1.648s]
writing 'recovery'...
OKAY [ 1.416s]
finished. total time: 3.064s
3. You now need to reboot the KF. Do not do 3a, but read because in Jcase's 2.6.3 instructions, he tells you:
----- http://forum.xda-developers.com/showthread.php?t=1568340
----- 3a. Your device will now boot into twrp recovery, and flash the firefirefire bootlaoder. When done it will prompt you to reboot. Upon reboot you will get stuck on the "yellow triangle" screen of firefire fire.
Code:
fastboot oem idme bootmode 5002
fastboot reboot
----- I have no idea what he's talking about. Those commands did not work for me. When I figured out how to restart in a manner that made more sense (see 3b.), I selected to boot into the TWRP recovery, and as far as I could tell, TWRP did not flash its own version of FFF, nor did it reboot. It simply started TWRP. I poked around in there. It did at one point tell me that it was not yet rooted and asked me if I wanted to have it do it, but I declined to follow the rest of Jcase's instructions. Point of the story: ignore 3a, and do 3b instead.
----- 3b. Reboot the KF.
Code:
fastboot -i 0x1949 reboot
rebooting...
finished. total time: 0.000s
4. This will now boot into the FFF bootloader, which will offer you a choice prior to booting into the primary OS of booting into recovery. You will want to do that for the next commands to work. You need to immediately continue to permanently root it.
############################
##### Permanently Root It #####
############################
1. Get Superuser/Su and unzip it. As of this writing (2013-09-20) the latest is Superuser 3.2 RC3. The KF uses the ARM chip architecture so we want the ARM version (see above in the Key Terms section). Note that you need to make its own directory to unzip it into because all but two of its files are the same that as those that came with FFF, and in case they are different (use diff) you don't want to replace them; if they are different, you'll have to make the call which versions you want to use. The two files you do want no matter what will be in the system/ directory.
----- http://androidsu.com/superuser/ (You want the ARM architecture for the KF.)
----- MD5sum: 6462ac14cd38ed7c539ce3e29a6b92a8 Superuser-3.2-RC3-arm-signed
----- I extracted it into sdk/platform-tools/Superuser-3.2-RC3-arm-signed(by_ChainsDD)
----- 1a. Once in recovery, mount the /system partition in read/write mode. ("adb shell remount system" might also do this, and it will change a mounted /system between r/w and ro.)
Code:
adb shell mount system
----- 1b. Copy su to the right place in /system.
Code:
adb push Superuser-3.2-RC3-arm-signed(by_ChainsDD)/system/bin/su /system/xbin/su
3447 KB/s (85096 bytes in 0.024s)
----- 1c. Change the ownership to root only (so nobody can mess with it).
Code:
adb shell chown 0.0 /system/xbin/su
----- 1d. Change the permissions to executable (so anyone can try to get su), and verify.
Code:
adb shell chmod 06755 /system/xbin/su
adb shell ls -l /system/xbin/su
-rwsr-sr-x 1 root root 85096 Feb 29 2008 /system/xbin/su
2. Disable the root checker by renaming the executable. (I suppose you could just chmod a-x it, but this is how the pros do it, so I'll stick with their method.) I'm not entirely certain what check_rooted does, but I assume it is used by Amazon and will cause headaches.
Code:
adb shell ls -l /system/bin/check_*
-rwxr-xr-x 1 root shell 54680 Aug 1 2008 /system/bin/check_prereq
-rwxr-xr-x 1 root shell 5556 Aug 1 2008 /system/bin/check_rooted
adb shell mv /system/bin/check_rooted /system/bin/check_rooted.bak
adb shell ls -l /system/bin/check_*
-rwxr-xr-x 1 root shell 54680 Aug 1 2008 /system/bin/check_prereq
-rwxr-xr-x 1 root shell 5556 Aug 1 2008 /system/bin/check_rooted.bak
3. Return to normal bootmode (4000), and reboot. (Actually I'm not sure we ever changed it since we didn't use Jcase's "oem idme bootmode 5002" command, and I'm pretty sure fbmode only changes it for 1 reboot. But doing this will not hurt anyway.)
Code:
adb shell idme bootmode 4000
<idme> write 4000 to offset 0x1000
adb reboot
4. After reboot, when you're back in Amazon's default OS, install the Superuser app. It will appear in your carousel. Play with it.
Code:
adb install system/app/Superuser.apk
7539 KB/s (1500495 bytes in 0.194s)
pkg: /data/local/tmp/Superuser.apk
Success
######################################
##### Make A Full (up to 8GB) Backup #####
######################################
This will back up all partitions and the hidden NVRAM data. If you ever have to restore from scratch, you can get fastboot to write a new partition table and then fastboot in these backups. Need >8GB local free, and adb installed and able to get a shell.
----- http://forum.xda-developers.com/showthread.php?t=1369405
1. Make a new directory to store the dump files and cd into it.
Code:
sudo mkdir /mnt/1.2tb.pri_my300/KindleFire
sudo mkdir /mnt/1.2tb.pri_my300/KindleFire/preROMing.backup
2. Make sure that your KF is running adb as root (as above in #? of the Root It section).
Code:
adb root
adbd is already running as root
3. Then pull the blk copies from the device. This will place them on the root fs, and then I move them to the backup directory. (I'm sure you can direct them to the end destination with pull, but I didn't figure that out before I ran this.)
Code:
for F in `seq 1 12`; do adb pull /dev/block/mmcblk0p$F; done
adb shell idme ? > nvram.txt
sudo mv mmcblk* nvram.txt /mnt/1.2tb.pri_my300/KindleFire/preROMing.backup
#######################
##### Install a ROM #####
#######################
http://forum.xda-developers.com/showthread.php?t=1638452
1. Download the one you want from the link. Hashcode, who is active on xda-developers, maintains the CryanogenMod, and he seems to be trusted to do quality work so I'll use the latest CM ROM. As of this writing (2013-09-20) the CryanogenMod-10.2 is current. Note the codename for KF 1st-gen is Otter (not Otter2, not sure what blaze is for).
----- http://forum.xda-developers.com/showthread.php?t=2410112
----- http://goo.im/devs/loosethisskin/otter/cm-10.2
----- MD5sum: 7a5c807f410ecaeb37220bda8c7b4eee cm-10.2-20130913-0258-otter-sgt7.zip
2. Copy the ROM.zip file to the /sdcard directory on the KF, and checksum it.
Code:
adb push cm-10.2-20130913-0258-otter-sgt7.zip /sdcard
6569 KB/s (186800117 bytes in 27.769s)
adb shell md5sum /sdcard/cm-10.2-20130913-0258-otter-sgt7.zip
7a5c807f410ecaeb37220bda8c7b4eee /sdcard/cm-10.2-20130913-0258-otter-sgt7.zip
md5sum cm-10.2-20130913-0258-otter-sgt7.zip
7a5c807f410ecaeb37220bda8c7b4eee cm-10.2-20130913-0258-otter-sgt7.zip
2. Definitely check and follow the instructions on the specific ROM's info page. In this case, I believe it is the standard methodology. Since it tells us to also install Gapps, we need to download that as well. (See Install Gapps section below for more info.)
----- 2a. Download it. In my case, Hashcode has given instructions to get it the following link. You are to match up your CryanogenMod version with the appropriate Gapps version, which is made easy with the table at the top.
----- ----- http://goo.im/gapps
----- ----- MD5sum: 1f51b5cc6370c1f45dc951109b6ce6ed gapps-jb-20130813-signed.zip
----- 2b. Copy it to the KF, and checksum it.
Code:
adb push gapps-jb-20130813-signed.zip /sdcard
adb shell md5sum /sdcard/gapps-jb-20130813-signed.zip
1f51b5cc6370c1f45dc951109b6ce6ed /sdcard/gapps-jb-20130813-signed.zip
3. Wipe cache, dalvik, data and system (full wipe). Wipes typically remove the existing files in the data and cache partitions that could interfere with the operation of the new system software. A "Factory Reset" will delete any installed apps, software/network settings, etc. It will not touch the /sdcard directory that contains music, eBooks, and files of that nature. In our case, we need to do the four listed by Hashcode.
----- 3a. From the main menu of TWRP, Wipe -> Advanced Wipe -> Select Partitions to Wipe
----- 3b. Check the dalvik, data, cache, and system boxes.
----- 3c. Swipe to Wipe.
4. Install from your ROM.zip, and tell it to install Gapps while you're at it.
----- 4a. From the main menu of TWRP, "Install"
----- 4b. Navigate to the /sdcard directory on the left (should be the default the first time you use TWRP) and select the cm-10.2-20130913-0258-otter-sgt7.zip file from the list on the right.
----- 4c. Check the box "Zip file signature verification?" if you've placed .md5 files with the zips. Even though you already have, it's nice to make sure TWRP agrees with you.
----- 4d. Press "Add More Zips"
----- 4e. Select the gapps-jb-20130813-signed.zip file from the right.
----- 4f. Swipe to flash install them.
5. When it's finished and you are prompted, press "Reboot.
6. When you reboot, CM will take some time to get going the first time, just let it. Then walk through the setup process. All your setings, like the Wi-Fi password, will be gone and need to be recreated.
7. Cleanup by deleting the zips within the File Manager app.
###################################
##### Install Google Apps (Gapps) #####
###################################
You may not actually need this. It may come installed with the ROM, but you'll definitely want Gapps either way because this includes Google Marketplace where you can get all the Android apps.
1. Download it. In my case, Hashcode has given instructions to get it the following link. You are to match up your CryanogenMod version with the appropriate Gapps version, which is made easy with the table at the top.
----- http://goo.im/gapps
----- MD5sum: 1f51b5cc6370c1f45dc951109b6ce6ed gapps-jb-20130813-signed.zip
###################################
YOU'RE DONE MOTHER****ER!
Play around.
Try some other stuff:
###################
##### ~/.android #####
###################
It's useful to have a single place on your main box to keep everything you want/need. So:
1. Make a ~/.android dir and cd into it.
2. Make some dirs.
----- .Bootloader
----- .Recovery
----- .ROM
----- .ROM/CM-10.2
3. link to platform tools
Code:
ln -s ../../../opt/adt-bundle-linux-x86_64-20130917/sdk/platform-tools/ .platform-tools
4. Move the fbmode and superuser dirs from there to here.
----- .fbmode(by_pokey9000)
----- .superuser-3.2-RC3-arm-signed(by_ChainsDD)
5. Move fff-u-boot_v1.4a(by_hashcode) into .Bootloader, move openrecovery-twrp-2.6.3.0-otter.img into .Recovery, move cm-10.2-20130913-0258-otter-sgt7.zip and gapps-jb-20130813-signed.zip in .ROMS/CM-10.2 (you move gapps with it because it is fairly specific to the ROMs)
6. CD to the real /opt/.../platform-tools. Symlink to those six dirs and files.
#####################
##### App Backup #####
#####################
Besides complete backups, you can also simply save the apps you have installed to you 'puter. This is useful before you go uninstalling **** that you only think you don't need. Of course, there are apps that will do most of the following for you, namely Titanium Backup, which you should probably use since they'll sync things instead of just overwriting.
1. Navigate to your ~/.android/ director.
2. mkdir an apps folder, an apps/system, and an apps/data.
3. Copy all the apk files to your pc. Note that the data/app files are all unimportant apps that you've downloaded. The system ones are what you really need to be concerned about removing.
Code:
adb pull /system/app ./app/system
pull: building file list...
pull: /system/app/FaceLock.apk -> ./FaceLock.apk
pull: /system/app/VoiceSearchStub.apk -> ./VoiceSearchStub.apk
pull: /system/app/TalkBack.apk -> ./TalkBack.apk
...
adb pull /data/app ./app/data
pull: building file list...
pull: /system/app/FaceLock.apk -> ./FaceLock.apk
pull: /system/app/VoiceSearchStub.apk -> ./VoiceSearchStub.apk
pull: /system/app/TalkBack.apk -> ./TalkBack.apk
...
----- You can also look at the package list via the package manager, and include their associated files (-f) if you want.
Code:
adb shell pm list packages
...
adb shell pm list packages -f
...
----- Or grab the list files directly and look at them.
Code:
adb pull /data/system/packages.xml .
adb pull /data/system/packages.list .
----- You can install or uninstall via adb (assuming you have root access and system is mounted rw)
Code:
adb root
adb remount (or adb mount -o rw,remount /system)
adb install <package name>
adb uninstall <package name>
----- Or more viciously:
Code:
adb shell rm -f /system/app/<apk-name>.apk
----- Or via the package manager:
Code:
adb shell pm uninstall <package-name>
###############################
##### Remove Unneeded Apps #####
###############################
Check out this page to give you a list of apps included with your specific CM OS version. Then remove ones you don't want. You will want to use ES File Explorer to shutdown, clear data/cache, then uninstall these. For some you'll need to use ES in root mode, which can be found in ES's settings.
[couldn't post the url]
[couldn't post the url]
Android Keyboard (AOSP) - If you replace this with a different keyboard, you can remove this safely. I like Hacker's Keyboard, but honestly I don't feel quite safe eliminating this one altogether.
Apollo - Music app/widget. You will probably want to replace with something else that handles more codecs.
Bluetooth Share - The KF doesn't have bluetooth.
Bubbles - This and other wallpapers can obviously be removed.
Calculator - Might want to replace this with a better one.
Calendar, Calendar Storage - You can remove this, but Google uses it to sync with your Google account. More importantly, it appears that _LOTS_ of calendar apps use Google's Calendar/Sync as a proxy. So even if you find a different calendar app, it might need Google's stuff here to work correctly. Leave it alone.
Cell Broadcast (Receiver) - This app operates on a different frequency than primary cell/data/text service. This means that when an emergency happens and too many people are calling each other at the same time, the cell carriers, and really the govt, can broadcast emergency info that will get to everyone. You can also use it to listen to a specific channel if you know someone is broadcasting on it. Obviously, since the KF doesn't have cell service, this is completely useless and can be removed.
Clock and cLock - You can remove both, but the system Clock might need to be kept for certain apps to function. cLock doesn't need to be there. I did take out both, and FancyWidget's clock kept working so it obviously didn't depend on this app and took date/time from the system itself. That said, Clock does provide an alarm, and so might possibly be the primary alarm service.
Downloads & Download Manager - You might be able to replace these, but why bother.
DSP Manager - Digital Sound Processing. This is basically an equalizer, but does let you make different settings for speakers, headphones, etc. There are probably better, but why bother. More, do you really need this at all? Wait and find out.
Email - An email client. Can be replaced by something else. You don't need this as long as you're solely using gmail or other web-based email.
Exchange Services - This is a client for MS Exchange. It provides the server-client sync.
Face Unlock - Provides capability to unlock screen with face recognition. With no camera, the KF has no need for this whatsoever.
File Manager - If you've replaced it with ES File Explorer, you can remove this. However, I think it's not a bad idea to keep this around as a backup. Of course, with the ability to use ADB to install, it's really not necessary.
Focal - This is CM's replacement for android's standard camera app. The KF has no camera, remove this.
Gallery - Is a simple 3d photo browser. There are probably better ones, but since your KF doesn't have a camera this will only be useful for pics you grab from the net. You probably will not need anything better.
Google Ears - This is a widget that will ID songs for you by listening. This is a problem since the KF doesn't have a built in mic. It might work via a headset device's mic. You can try it and see. I'm not sure if this might also ID a song playing through the KF, like if you're listening to internet radio.
Google Feedback - This is the app that reports back to Google when apps bork. I always turn error reporting off, but removing this would ensure nothing hinky takes place without your knowledge. On the other hand, other Google apps might wig out if it's not there. CM says it's safe to remove.
Google One Time Init - This runs the first time you start the device. That CM link says that it conflicts with another Google app. Remove it after the first run.
Google Partner Setup - Not sure what it does, but according to the second link it's no problem to remove. I removed it from the startup list so far.
Live Wallpaper Picker - Yeah, you need this.
Market Feedback Agent - It's a Google app that allows other apps to call it and ask you to provide market feedback, you can safely kill or remove it.
Media Uploader - This is an app for use with Swingular.com that lets you take pics of yourself and share them to people you're cybering with. It has things like auto-faceblurring. You can use this without a cam, but with the KF it seems unlikely. Remove.
Mobile Data - Used for data xfer on cell carrier network. Pretty sure it won't hurt to remove.
Mobile Network Config - Used for configuring cell network. Pretty sure it won't hurt to remove.
Movie Studio - This is a fairly low-rated video editor. It was probably included by CM for size and/or simplicity. You don't really need a vid editor on your KF since with no camera you can't take vids. I honestly can't imagine needing to replace this, so remove.
News & Weather - A simple news reader app. Probably should find a replacement.
Notepad3 - This is a simple text editor app. It is very small, so you could probably leave it even if you replace it with something else.
One Time Init - See Google One Time Init above. I think these are two parts of the same thing, but this one might be to trigger the CM Account app and prompt for registration.
Picasa Uploader - Uploads pics to your Picasa account. Since no camera on KF, remove this.
Pico TTS - Is a service for Text to Sound. It might only be used by TalkBack below, in which case you can eliminate it. But, it also might be used by other TTS apps, in which case you'll probably want it around.
Provider Telephony - Provides APIs for monitoring the basic phone information, such as the network type and connection state, plus utilities for manipulating phone number strings. Probably can safely remove this.
Search Applications Provider - This has to do with Google Search. Apparently there's a bug in it that makes this slow down search. I don't think it's a good idea to remove this, but you should disable it in the App Manager. This could, however, cause problems so keep it in mind.
Setup Wizard - Runs the first time you start phone. Remove it.
SMS Push - This has to do with text messaging and also WAP Push. You can probably remove it, but might want to wait.
----- [couldn't post url]
Sound Recorder - A simple recorder. Probably don't need more.
TalkBack - This is a Google app that will read and speak aloud text from your phone's menus and some Google apps. So for Gmail it'll read the subject line of each email you touch. It's for blind people and probably not all that great for them, either, since it's pretty limited. There are other apps that do TTS (Text to Sound), and I'd recommend looking into those. I'd say remove this, but who knows how *****y Google will get about it. See Pico TTS above.
Terminal Emulator - Is one of the most popular terms. I think Terminal IDE is better, so you should at least add that, if not replace this altogether.
Trebuchet - This is a launcher service which does a lot more than just launch apps. Good launchers provide _lots_ of additional ui customizations, and Trebuchet is one of the better ones. Keep it unless something changes in the near future. Halo (notification manager) is somehow related to this, although I think it is a seperate app; Halo is also considered excellent.
User Dictionary - A user dictionary addon for android devices that do not have a standard user dictionary component. It is used by the keyboard and god knows what else. Do not remove it. There are similar apps. It might be possible to replace this with one of the others, but why bother.
Voice Dialer - This is a voice activated dialer for phones by Google. Obviously the KF doesn't need it.
Voice+ - Another phone related Google app; it catches all outgoing calls and uses Google Voice service to connect you with the dialed number by calling you back on your selected callback number first, then calling the number you dialed. I think it basically covers your cell phone's number with an online one. Obviously the FK doesn't need this, either.
###################
##### Add Apps #####
###################
Important:
DroidWall - Simple firewall app, lets you whitelist apps to give access to the internet.
Titanium Backup - System backup/restore app, lets you transfer apps/data/settings from one OS/mod to the next.
ES File Explorer - File manager.
ES Task Manager - Lets you kill apps.
TrustGo Security - FW/AV. Lets you scan your system/apps, scan incoming, etc. Currently one of the better free Firewall/AntiVirus for Android. It will probably be replaced by the next time you need to dl one, so google.
Greenify - Resource manager of sorts, it lets you choose which apps to have free reign of resources, and which to stick into hibernate mode when you're done using them. This means you don't have to constantly use ES Task Manager to kill apps when you're finished with them.
Adfree - Downloads/Updates a hosts file to block ads from the internet and apps.
System Tuner - Has endless tweaks, diagnostics, and functions.
Terminal IDE - A terminal emulator with all sorts of nice features and commands. Just poking around in this for a couple minutes and I'm in love. It installs a bunch of C binaries of commands you're used to, giving a much more familiar robustness. Note that this will create a $HOME directory for you that exists within the app's own /data/ directory tree. If you want to create a single home for all apps, you will need to make some changes.
ROM Manager - This would be useful if it would use TWRP, but since it's developed by the same guys as ClockworkMod Recovery, it insists you install that. Since at this time it seems CWM has problems with Kindle Fire?, you probably won't be able to use much of this for a while. What you really need is to find an entire system image creator for backups. ROM Manager does have a function for fixing permissions, which presumably makes sure nothing has messed up the permissions on important sys files.
Apps:
Amazon App Store - This is the second largest after Google's, but you'll have to get the app store app to use it. And there will be apps only available there.
Keyboard - You can remove the keyboard that comes with your OS if you replace it with a different one.
Hacker's Keyboard - This is a full keyboard complete with arrow keys. It also has a function key to get Home, End, the F row, etc. You can set it so that it will use the Android Keyboard in portrait mode, but switch to the HK in landscape.
Swype - Lets you drag finger across screen to each letter rather than tapping.
SwiftKey - Predictive text is the specialty here, gets to know you and can predict your next word.
Widgets:
FancyWidgets - Not perfect, but gives you a nice clock/weather widget.
WeatherBug - Gives you detailed weather info.
Browser:
Android Browser: Seems fast.
Dolphin - I think this is the winner. Pretty fast, and also has a lot of good features.
FF - Seems slow, and also has your familiar add-ons, but there would be the nice advantage of bookmarks sync. Of course, with a hosts file based ad block (AdFree) you won't need adblock and that should help.
Opera - Seems fast but limited in features.
There are many others.
Browserlike Apps:
Gmail - Google's gmail reader app.
Tapatalk - A BBS forum reader/interface app.
Facebook - Some say a good, others say a ****ty FB reader app.
DuckDuckGo - Is a search app that I believe you can set up to punt you off to a browser if you're going to do much more.
Ebook Reader:
----- TTS (Text to Sound) - I'm not sure if you'll need one of these or if one will come in your ebook reader, but I think you'll eventually want to check it out. It'd be nice to be able to have a book or wikip page read to you while doing other ****. Also see Pico TTS.
There are a lot.
Video Player, Video Editor:
tbd
Music Player:
tbd
News Reader:
tbd
Pic Viewer, Pic Editor:
tbd
RSS Reader:
tbd
Maps:
Google Maps - Supposedly there's a way to get offline maps, but I couldn't figure it out.
Maps With Me - Offline. I dig it.
OsmAnd - Offline. Didn't like.
RMaps - Offline. Didn't like.
MapsOn - Offline. I dig it.
Misc:
Google Sky Map - A very fun app to have to see the location of stars, planets, galaxies, and constellations.
Bubble Level (not sure of name) - An app that will act like a carpenter's level.
Screenshot UX - Lots of root and non-root screenshot apps. I liked this the best.
Games / Learning - Be very careful of these. Definitely want to AV scan these before using. Watch their permission requests for strange things they shouldn't need.
Chess Free
Sudoku Plus
Duolingo - Learn a language.
Solitaire
Tetris
##################################
##### Stop Auto Startup of Apps #####
##################################
It will scare you how many apps and services startup by default. Use SystemTuner -> Startups. And uncheck all these (note that some need to have other things installed before you do this, like the Android Keyboard, so be smart).
Android Keyboard AOSP
Calendar, Calendar Storage
Clock - This might cause probs, but shouldn't.
CyanogenMod Account
DSP Manager - You may want to check that this starts on its own when you start your media apps. If not, if you want this you'll have to start it by hand, or turn this startup back on.
Firefox
Gallery
Gmail
Google Contacts Sync
Google Partner Setup
Google Play services
Google Play Store
Google Search
News & Weather
ROM Manager
System Tuner
Titanium Backup
WeatherBug
Fixed. No links in 3rd post, sorry.
Sent from the 404

those invisible menu options

There is an interesting discussion on the Russian forum the-ebook.org (paste this link into Google and select the translation; item is on page 2) regarding those annoying invisible menu options in many apps. Although the translation is a little rough around the edges, the gist seems to be that the default text and background colors for the app menus are not exactly what the e-ink display has in mind, often resulting in light or near-white text on a white background--hence, invisible text.
The "solution" used is to change some background color settings in framework-res.apk. I have no idea what the outcome looks like but it seems like a really good idea, although beyond my abilities, and the example used is 1.10 firmware. I'm using 1.21. Any attempt I have made to modify apk files has always failed
Does anyone have a fool-proof set of steps for doing this?
I remember reading about what you're talking about somewhere on the forums but I could never get it to work either...
Here's what I'm talking about:
http://forum.xda-developers.com/showthread.php?t=1356514
http://forum.xda-developers.com/showthread.php?t=1512846
OK, well.....I've got the adjusted background images extracted from the framework-res.apk file that I got from the Russian site (I'm working with the lighter background option at this point). And...I've found the setting in WinRar to simply "store" (not compress) the updated png files. So far, so good. My altered apk file is the same size as the original.
The clincher is to get it back on the Nook without disaster ensuing. I'm going to follow Renate's method for pushing back framework-res.apk via ABD (from this thread):
C:\>adb shell
# stop
# mount -o rw,remount /dev/block/mmcblk0p5 /system
# ^C
C:\>adb push framework-res.apk /system/framework
C:\>adb shell
# reboot
Keep your fingers crossed. If it works, I'll report back with step-by-step and files.
[Report: in concept this "works". On reboot I could see the slightly grey background color in menu options and going to a few apps where I knew the menus were invisible, I could see white text on the slightly grey background. BUT...almost no apps will work. The B&N side seems to function OK, but the App drawer is useless. Back to the drawing board. The Russian site has a method for installation using RootExplorer. I'll try that next.]
OK...day 2. Here's what does NOT work:
1. method in post above using ADB
2. method using RootBorwser as adapted from Russian site and detailed below:
a. Change permissions in /system, /system/etc and /system/framework folders so that all users have write access
(note this is my kludge to get around not knowing how to "mount" the /system partition as r/w--maybe it's wrong?)
b. Use ADB wireless to move modified framework-res.apk into /system/etc
c. Use RootBrowser to check ownership of modified framework-res.apk (should be and was already owner: 0-root, group: 0-root)
d. Use RootBrowser to change permissions on modified framework-res.apk to rw-r--r-- (664)
e. Use RootBrowser to move (cut/paste) modified framework-res.apk into /system/framework (overwrite)
With Superuser permission, this all went off without a hitch.
f. Use RootBrowser to reset permissions of folders listed in (a)
g.Shut down Nook and restart.
The result is the same as the ADB-only method described before. The Nook starts up just fine. You can see that the background color of menus is slightly gray. Those changes have obviously worked. But the vast majority of apps will not run (ADW Launcher is an exception). At one point while I was fiddling with things the Nook spontaneously rebooted.
I guess that's better than spontaneously combusting
SIGH. Clearly, despite my best efforts, something I did in handling the framework-res.apk has damaged it in some subtle way, OR, my inability to properly "remount" the /system as R/W is causing the problem, although using ADB this is accomplished without difficulty and since the result is the same...it must be the modified apk file.
And this is why I have a dedicated SD card backup......
Method 3 that does NOT work:
1. Install Ninjamorph and BusyBox from Market
2. Follow instructions for altering framework-res.apk found here.
Two ways to Finish Project, with zip-align and without. Both yield the same result which is the same as the other methods above, i.e., the B&N stuff mostly works and the desired contrast of the menus is achieved so you can actually see what used to be invisible, but most apps will not run. Really frustrating.
I have to say that while this method seemed promising it is tedious in the extreme as each of the 28 png files must be replaced individually and that means each must be located in a much larger list (which reverts to the top after each replacement....). Ugh.
I simply don't believe anyone who says they can make these modifications with the instructions they have provided. It must be that people who are more familiar with this stuff are leaving out information which is so obvious to them that they don't even think to mention it
framework-res.apk is an apk and therefore it must be signed.
It's a system apk so it must be signed with the system signature.
Modifying a few things doesn't annoy the signature matching, other stuff does.
When you have problems, please quote from logcat because that tells you exactly what the problem is.
Using ADB:
Code:
logcat
Whatever.9.png are special files.
The are usually created thusly:
http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch
When they get packed into an apk they are turned into a PNG graphic with alpha channel.
aapt handles this.
If you take a PNG with sidebars and just zip it, it will not work.
Renate NST said:
When you have problems, please quote from logcat because that tells you exactly what the problem is.
Using ADB:
Code:
logcat
Whatever.9.png are special files.
The are usually created thusly:
http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch
When they get packed into an apk they are turned into a PNG graphic with alpha channel.
aapt handles this.
If you take a PNG with sidebars and just zip it, it will not work.
Click to expand...
Click to collapse
I just tried again and this time after pushing the amended framework-res.apk file (yes, all 28 amendations are nine-patch files) I typed in logcat before rebooting.
Whoosh!!! Lines of information went streaming by faster than I could follow, so much that some of the earliest disappeared from the top of the console window. I have no clue how to extract the text from the console window
The top-most complaint I saw was a reference to system error 1248 in association with the CleanMaster app. Then there seems to be a periodic (15 second) dhcpcd renewal. Eventually there is a section that says "Framework disconnected, eof, failed to read size, closing connection". Then comes a long list of notifications from the Service Manager about all the services that have just died. After that it just continues with the 15-second dhcpcd renewal cycle. Then I gave up and rebooted.
The result is the same as before. The new image backgrounds have been incorporated into the system, but most of the app drawer is just pretty icons. ADW runs--at least the drawer and home page appear. The B&N Home and Library pages load but you can't access any of the books shown. Wi-Fi can be accessed but no apps that use it will run. Occasionally the CleanMaster app throws up an error message.
Here's what I've learned so far:
1. In the original amended framework-res.apk file (for FW 1.10) viewing the archive reveals that the files which have been changed all have an "archive " attribute. None of the original files show any attribute. I don't know whether that is important. I've searched on this topic and have come up with nothing.
2. In moving the amended *.9.png files from the original Russian example for FW 1.10 into a copy of my own framework-res.apk for FW 1.21, those "archive" attributes came along for the ride and the resulting amended file does show "STORE" for the method so I think I got that part right and didn't recompress any files when moving from one apk to another (I dragged the files from one instance of WinRAR to another--I tried 7zip as well...).
But I have no idea why people report that this procedure works just fine. For me, it is predictable, but not successful.
I've just completed yet another restore from backup. I'm going to uninstall CleanMaster and try again. Perhaps it's background activities are driving the process into the ground. I have no clue.
Here's the logcat session file (learned how to get that done!) after a re-try, having removed CleanMaster first.
No change in the outcome but no bleating from the Nook about CleanMaster errors.
I wonder--is it the modified apk that is causing the system to malfunction, or....is it the way it is being pushed back to the Nook?
So..an experiment: I pulled a copy of the stock framework-res.apk from my Nook. I didn't do anything to it at all. Then I pushed it back to the Nook via wireless ABD:
C:\>adb shell
# stop
# mount -o rw,remount /dev/block/mmcblk0p5 /system
# ^C
C:\>adb push framework-res.apk /system/framework
C:\>adb shell
# reboot
This is supposed to work, yes? It does not. It leaves me in the same condition that all of the other attempts by this and other methods have. The Nook boots normally and displays Home but you can't access the "currently reading" book. I can get to the app drawer via the quicknav buttons, but very few apps will work (including ADB). There is no way to examine the file system because RootBrowser will not work (although ES File Explorer does, but it doesn't have root access).
So....whether the modified apk is OK or not, I would never know because all of the methods I have tried to get the framework-res.apk back onto the Nook have been unsuccessful.
That procedure should work fine.
Have you checked using the stock framework-res.apk ?
Renate NST said:
That procedure should work fine.
Have you checked using the stock framework-res.apk ?
Click to expand...
Click to collapse
Yes, that's what I just tried. Just pulled it via ADB and then pushed it right back. I also installed a copy of Root Explorer (I generally used Root Browser) because that's what was used in the original thread on the Russian site where I got started with the whole project. That also yields the same results. The Home screen loads but you can't access the book currently being read from it or from the little button at the top left. You can access any of the QuickNav options. The Library "functions". But you can't access books from their covers and the double-tap does not work.
In the app drawer, ADW seems to work fine but you can only run a very few apps, and none that require wi-fi (although wi-fi works). Too much fiddling around and the Nook spontaneously reboots.
When I have tried to move in the modified apk with the slightly gray background 9.png files I can see that the new image backgrounds have been used in the drop-down menus. This suggests to me that the problem is not in how the 9.png files have been moved from the FW1.10 apk obtained from the Russian site into my FW1.21 apk but rather in the integration of the modified apk into the system. I've checked permissions, etc. Everything is OK but the system is just screwed up.
I'm running FW1.21 which has been rooted using Nook Manager with Gapps added. I've done the multi-touch modification and have swapped in a modified internal.db file which seems to have solved the confusion of the "reading now" button. I have some apps that run along in the background, like Tasker and Clean Master (probably others that I don't realize). Do I need a completely clean system to make this change?
I saw the logcat and it showed that it's unhappy and killing the Android.
I couldn't see exactly where the problem is.
I think that you are doing too many things at once.
If there are specific things that do not work, a logcat when you do that should show.
Renate NST said:
I saw the logcat and it showed that it's unhappy and killing the Android.
I couldn't see exactly where the problem is.
I think that you are doing too many things at once.
If there are specific things that do not work, a logcat when you do that should show.
Click to expand...
Click to collapse
Yes, I was probably a little unclear. The ONLY thing that I did when I produced the logcat was attempt to push the modified framework-res.apk file back to the Nook. All those other things mentioned have long ago been successfully accomplished and included in my current backup (which I've had to use dozens of time in the last week or two as I struggle with this framework issue).
The ONLY change to the stock framework-res.apk is the overwriting of 28 *.9.png images with ones copied from another framework-res.apk which, unfortunately, is from FW1.10 (or I'd just use it "as is" without the copying). However, even pushing back an unmodified stock apk results in the same mess.
Like I say, based on what functionality remains when the modified apk file is pushed over, it is clear that the new images are being used, but the system function is severely degraded.
I don't know much about the process, but from what I've read I'm wondering if it would be better to use a zip via CM to deliver this modified file? That way the Android system is not even running (right?) during the replacement procedure.
When you say "stop" Android is no longer running.
Try clearing the cache:
Code:
rm -R /data/dalvik-cache/*
Renate NST said:
When you say "stop" Android is no longer running.
Try clearing the cache:
Code:
rm -R /data/dalvik-cache/*
Click to expand...
Click to collapse
Before pushing? After, but before rebooting?
Anytime that Android is stopped you can clear the cache.
I tried this with a copy of the stock apk:
Code:
C:\>adb shell
# stop
# rm -R /data/dalvik-cache/*
# mount -o rw,remount /dev/block/mmcblk0p5 /system
# ^C
C:\>adb push framework-res.apk /system/framework
C:\>adb shell
# reboot
It put me in an very long chase of the black and white dots that I almost thought would be endless but eventually it finished booting and is in the same condition as all the previous methods. Very crippled.
I can't figure it out
First, get the 1.2.1 update off B&N's website and unzip.
Get framework-res.apk out of that and push it.
The stuff in /system/framework should all be chmod 644.
An ADB push probably leaves it with wider access.
None of this should make any difference.
I'd guess that you are either missing a resource in your fw-r or else you modified something else.
Find an app that crashes. Get a logcat of just that crashing.
Renate NST said:
First, get the 1.2.1 update off B&N's website and unzip.
Get framework-res.apk out of that and push it.
The stuff in /system/framework should all be chmod 644.
An ADB push probably leaves it with wider access.
None of this should make any difference.
I'd guess that you are either missing a resource in your fw-r or else you modified something else.
Find an app that crashes. Get a logcat of just that crashing.
Click to expand...
Click to collapse
I got a copy of the FW 1.21 zip from B&N and extracted the framework-res.apk. I didn't try to push it yet. Instead I got the checksum for the current file on the Nook and compared it to the newly minted file. They were identical. I don't think there is any point in trying yet again with the same procedure. If my reasoning is incorrect, I'm certainly game to try anyway.
All files in /system/framework are chmod 644. The Framework folder itself (and the system folder) are something else, but the contents are all 644.
The only modifications I have made after rooting with Nook Manager are the installation of Google Apps, the implementation of multi-touch (I have to go back and look that up to see what all I did, but surely nothing with framework-res.apk or it never would have worked....), editing settings.db to relabel the QuickNav buttons after programming with NTMM, and pushing a modified copy of internal.db to fix the schizo "reading now" button. As i say, these are all long-established changes and the Nook has been stable with them. I think Google apps may modify framework.jar, but I'm not sure.
[I checked on multi-touch. I flashed a new kernal image and added one line to /etc/permissions/required_hardware.xml in order to enable multi-touch...have no idea what "flashed a new kernal" actually did, but it worked]
Two really noob questions: 1) how can I get a logcat of an app crashing when ADB will not run once a copy of framework-res.apk has been pushed? 2) if the Android system is actually stopped when I type "stop"in ADB shell, how does ADB continue to function?
And, actually, apps do not so much "crash" once I've attempted to put in a "new" framework-res.apk--most just refuse to run. But maybe there is something going on in the droid brain while the screen flickers a little and nothing else happens.
ADB runs under Linux, not the Android subsystem.
You should always be able to access ADB.
If ADB isn't running continuously and reliably you have problems.
If some app does not run, give the specific section in logcat where it doesn't run.

Categories

Resources