[Nook Color General] leapinlar:
At the request of a user I am creating this thread to consolidate my tips for the Nook Color that are spread out over several other threads. Check back occasionally as I may add more tips to this post. (Note: This tip post got so large that I had to split it into two posts so that XDA would let me post changes. See the next post in this tread for the continuation.) See the change log in my second post.

Most of these were developed for CyanogenMod versions 7, 9, and 10, but some may work on other ROMs. These tips are in no particular order, except that general tips are in section A and SD tips are in section B.

I know this is a long post (I have been accused by one user of being 'long-winded'), but you do not have to read all of it (unless you want to). Just scan the headings and read those that apply to your issue. I think the most useful tips for users having problems are A8, A9, A10, A11 and A12. For SD users it is item B2, which points to the latest SD image file.

A. GENERAL TIPS THAT WORK ON CM7, CM9, or CM10

A 1. Put some settings in /data to avoid losing them in a ROM flash

Many things can be added to the /data directory to customize how CM operates. By adding the things there, they survive a flash of a new ROM since new ROM flashing usually only effects /system.

You can create a new text file named local.prop and put it into /data. That file can contain anything that normally can be put into build.prop in /system. It is loaded after the build.prop file is loaded so in some cases it can override settings in build.prop.

You can create a new folder in /data/local named userinit.d. In that folder you can place script files that you want to run at boot time. An example of a script that works is the script to make the SD boot partition show up on your system for SD installed CM. That is described later.

You can put a custom boot animation in /data/local and it will override any boot animation that is included with your ROM in /system.

You can set some system properties by putting entries in a folder named /data/property. For example, if you want to skip the boot animation at boot time, create a text file named persist.sys.nobootanimation and place the value 1 in it. Then the animation is turned off. If you want to re-enable it, change the value to 0.

In some of these files it is important to set the permissions correctly in order for them to work. For example, any scripts in the userinit.d folder must have their permission set to execute or they will not execute at boot time.

A 2. Dalvik Cache, what it is, how it works.

Dalvik cache is a method that android uses to speed up operations. There are two dalvik caches. One in /cache (for system apps) and one in /data (for installed apps). Clearing dalvik cache with recovery clears both. Clearing /cache will clear the dalvik cache in /cache but not the one in /data.

In flashing new ROMs, the only one really needing clearing is the one in /cache since only new system apps are installed in a ROM flash. Also only clearing the one in /cache makes it boot faster since the nook does not need to rebuild the one in /data for your installed apps which have not changed.

I have described how the cache works and a tip on how to speed up booting for SD installs here. The tip is repeated in section B3 in the second post of this thread.

A 3. Wiping in preparation of a new ROM flash.

Ordinarily if you are moving from one nightly to another nightly of the same rom, just wipe dalvik cache with Clockworkmod (CWM) Recovery.

If you are moving from one type of rom to another, it is best to do a "wipe data/factory reset". A factory reset wipes /data, /cache and clears any apps you installed to SD. The rest of your media data on emmc or SD is left intact. Since a factory reset clears both /data and /cache, there is no need to separately clear /cache or dalvik-cache. A factory reset means you will lose all settings and installed apps. So, before you do a factory reset, you may want to backup your apps with a program like Titanium Backup so you can restore them later without re-installing. If you have one of the newer Nook Colors with the new partition layout, you need to have version 3.2.0.1 or newer of CWM or the factory reset will not complete properly.

The new rom automatically wipes /system as part of the installation, so you should not have to ordinarily wipe that.

Never wipe /boot. It will remove your stock or CWM recovery and you may end up in a bootloop. Or worse yet, since it removes the boot files, it will not turn on at all unless there is a bootable SD in the SD slot.

When flashing a stock ROM, I have found that for some reason CWM does not wipe clean enough and the new ROM stalls. I have found that I have to flash my format partitions 5, 6, and 7 zip as described in my item A15 below. In fact, anytime you are switching from one kind of ROM to another it might be a good idea to use that zip first.

A 4. Freeze/Block applications

There may be times when you want system installed apps to be removed from your system. Do not just delete them from /system. You may find later that you want them back and also deleting them may cause your system to lock up. You can use third party apps like Titanium Backup Pro (not free) or Gemini Application Manager (free) to freeze/block the apps you don't want. These apps change an entry in a system database that tells the system to ignore those apps. They will not be loaded into memory or listed in your app drawer. With these third party apps you can do this to any app. For CM9/CM10 you can do the same thing for system apps in Settings/Apps. Just open the system app and select disable. You can always enable it later. But this only works for system apps.

A 5. Sleep of Death (SOD) on CM7 and CM9

SOD has been a problem with CM for a long time. If you leave your wifi set to stay on all the time and the device goes into deep sleep, it sometimes will not wake back up. There is apparently some interaction between waking up and wifi that locks it up. The device is on but you cannot get the screen to come back on. The only way to get out of it once it is locked is to hard power off by holding the power button for like 15 seconds and then releasing the power button and pressing again to power back on. For CM7 the work around is a modified wifi kernel module (twlan_drv.ko) in /system/lib/modules. (Get it here). The devs have built in the mods to the CM9 kernel so the revised module is not necessary in CM9.

A 6. ADB on CM9/CM10

For some reason that I do not understand, the device id (which is normally 2080:0002) is changed for CM9/CM10 in Windows. That means the adb composite drivers do not install properly and adb does not work. When you turn on USB debugging and plug your USB cable to your PC, Windows says it is looking for MTP drivers, but is really looking for adb drivers. I have explained how to fix that here.

A 7. Soft Navigation Keys in CM9 in Phone GUI

In both CM7 and standard CM9 the status bar is at the bottom of the screen and has soft navigation keys built in. In CM7 when you change screen density to a higher value, the status bar does not change. However in CM9, when you change density higher than the standard 160 dpi, the GUI switches to the phone mode and puts the status bar at the top like a normal android phone. The downside is that the soft navigation keys normally displayed on the bottom of the screen are suppressed. To get them activated just add a couple of lines to your properties file. See my post here.

A 8. Recovery bootloops

There is sometimes a mysterious bootloop issue where no matter what a user does, the Nook bootloops on booting. This is usually caused by a corrupt or missing recovery itself or by missing or corrupt files in partition 2 (/rom). No matter what the user chooses in the boot menu, it tries to find a working recovery to boot to. If it finds one, it boots to it. If it cannot find a working one, it boots to a blank screen or just a stuck "loading". Even if you put one of the older bootable CWM SDs in the slot, it still gets stuck since those older CWM SDs do not contain normal recovery files, just special bootable files.

There is a flag file in the /rom partition that tells the Nook to boot into recovery. ROM Manager uses that flag file to tell the system to boot to recovery when the user selects that option. And it tries to boot there no matter what the user tells it to do in the boot menu. After it successfully boots into recovery, recovery resets that flag file as it exits normally with the menu choice. So next time it boots it boots normally.

Sometimes that flag never gets reset, usually because there is no working recovery to reset it. So it continues to try to boot to recovery.

And sometimes it could be a missing or corrupted file on your /rom partition. In a folder in /rom (/devconf), several device specific information files are stored. One of those files (DeviceID), is critical to your device booting to a rom. If it is missing or corrupted the Nook will always try to boot to recovery so that it can repair itself. See my description of this problem in item A12 below.

If you boot to a blank screen or a stuck "loading" no matter which option you choose, it usually means a corrupt or missing recovery. If you boot to recovery repeatedly no matter which option you choose, it usually means a corrupted /rom partition.

To fix a corrupted or missing recovery on emmc, use my new CWM recovery SD I have detailed in my item A10 below. This SD has been modified to include the normal recovery files in addition to the special bootable CWM files there so that it can boot into recovery in this kind of failure. Just prepare the SD as described in item A10 below and turn off the Nook and insert the SD. Boot and the new CWM should appear. Sometimes just exiting that CWM immediately with the menu choice will get you out of the loop so you can boot to your ROM. But you probably still need to put a good recovery on emmc. Flash one of the stock recovery versions I have attached to this post below, or the new version of CWM (5.5.0.4) for emmc by Racks, also attached below (thanks Racks for the CWM). I recommend that you flash my stock recovery with CWM 5.5.0.4 as alternate version. That will put stock recovery as the normal recovery and the new CWM as an alternate recovery. That way if the nook decides it needs to repair partition 2, it can (see item A12 below for a description of that). And you can still get to CWM by booting to the alternate choice with the boot menu or holding volume up/down while booting. (The only downside I can think of using this zip is ROM Manager can no longer be used to flash things, it needs CWM as the normal recovery.)

You should probably save the CWM bootable SD for future use. You can use it to nandroid backup to the emmc media partition, factory reset and flash new ROMs to emmc as well as getting out of future bootloops.

To fix the issue of a corrupted /rom partition, go to my partition repair thread here or use the romrestore utility attached to this post. See item A12 for a description of romrestore.

For those interested in the details, the recovery flag file is named BCB and is in the /rom partition (P2). It is not what is contained in the file that makes a difference, it is the file size. If the file is 512 bytes or larger, the Nook will boot normally. If the file is less than 512 bytes or is MISSING or unreadable, it boots to recovery. And the DeviceID file in /rom/devconf is a 17 byte text file containing your 16 digit serial number followed by a linefeed.

A 9. Bootable SD Cards

An SD card must be formatted in a very specific way before the Nook Color will boot from the SD. The first partition must begin exactly on the 63rd sector of the card and the flags properly set.

It is very difficult using normal formatting programs and partition managers to make that happen. That is why devs include burnable images to burn to the cards if they are to be bootable. Examples include eyeballer's bootable CWM card, verygreen's SD installer card, racks' dual boot SD card and my new bootable CWM version 5.5.0.4 in item A10 below. They have the images all set up so that when burned properly the first partition is configured so it can boot.

But even when using these images they do not always work if they are not burned to the card properly. The cards may be readable in the PC, but do not always boot in the Nook. In Windows, most devs recommend using winimage or win32diskimager (here, it's free) run in administrator mode. Also if using winimage, do not select "write disk", select "Restore Virtual Disk Image to physical drive". In Linux or OSX, use the "dd" command. And they recommend using an external USB reader rather than any built in readers in the PC. Sometimes it is just the card you are using causing the problem. And sometimes you can get them to boot if you plug your stock USB cable and powered off Nook into your PC. Wait a few seconds and it might boot.

Don't give up, keep trying. It eventually should work if you have the SD prepared properly.

A 10. New Bootable CWM Recovery SD (v5.5.0.4 and now v6.0.1.2)

I have created a new bootable CWM SD and attached a zip of the image to this post (CWM-5.5.0.4-bootable_SD.zip). It is version 5.5.0.4 and is to be used for flashing/wiping/backing up emmc. To create the SD just unzip the image file and burn it to your SD with win32diskimager (here, it's free). Since it is only 200MB it can be put on a very small SD. Also since it is so small there is no room to make backups there. However, this version of CWM will let you backup to internal (emmc) media storage. But there should be plenty of room to put flashable zips on the SD. If you want the partition larger, after burning just use a partitioning program like Mini-Tool Partition Manager to expand it. This version of the bootable SD uses the new Cyanoboot bootloader, so just let it go and it will automatically boot to CWM. When finished using CWM, be sure to exit using the menu choice so that the recovery flag is reset. When you have exited, either keep the SD for future use or reformat it to use for other purposes. Thanks to Racks for the 5.5.0.4 CWM.

This CWM SD can be used for getting out of some recovery flag bootloops as described in item A8 above.

Just added v6.0.1.2 with a little larger partition (300MB). This version should be used if you want to flash the stock ROM from item A15 below. Otherwise, use either version.

For those users that do not want to use CWM, I have make a bootable SD that has an older version of TWRP here. Newer versions of TWRP will return an error message trying to flash my older zips. The image has also been modified to get you out of some bootloops.

A 11. EMMC partition repair

Several users have complained that they get blank screens and cannot flash new roms to their Nook Color. And sometimes they end up in a recovery bootloop where it will do nothing but boot to recovery no matter what they choose in the boot menu. Sometimes this is due to corrupted partitions.

I have developed some tools to help users repair corrupted partitions on emmc. See my thread here.

A 12. B&N stock automatic repairs (Factory reset to stock via 8 failed boots and automatic partition 2 (/rom) repair)

B&N built in two automatic repair utilities for Nook Color systems that were malfunctioning. First, it has a fail safe system that allows it to repair itself if the user was unable to get it to boot 8 times in a row. Second, it has an automatic partition 2 (/rom) repair utility (romrestore).

But both of these repair functions are only available if you still have the stock recovery on emmc. If the user has replaced that recovery with CWM (or TWRP) recovery they will not work. It is OK if CM has been installed on emmc, it is only a problem if CWM was also installed there wiping out the stock recovery. But I have a solution for that. I have attached a zip to this post that will re-install the stock recovery replacing CWM on emmc. And I just added the partition 2 repair zip to it. Now both stock repairs will work. Just flash the zip with CWM recovery (either from emmc or a bootable CWM SD card). I also added a version that will put stock as the normal recovery and CWM 5.5.0.4 as the alternate recovery. Just select it with the boot menu if you want to use it.

Stock recovery looks very different than CWM. If you boot into it (either using power/n keys during boot or the boot menu choice in cyanogen bootloader), a dialog box pops up asking if you want to do a factory reset to wipe all the data on the device. If you say yes it will wipe /data, /cache, and the media partition. If you say no it will reboot.

8 failed boot reset. An image of the system as it came from the factory is stored on one of the partitions (p3). After the 8 failed boots, the stock recovery software is automatically started and wipes all data (including emmc media storage) and restores the system files to original.

This is really handy for rooted stock users who want to either sell the system or return it to B&N. And it is useful if somehow the user cannot get the system to boot to a bootable SD and they want to start over with the stock ROM.

The procedure to follow if you still have stock recovery on emmc is:

(Paraphrased from a post by Harrybub)

Of course if you can still flash things using CWM, it is probably easier to just flash a stock zip than to do the 8 failed boot procedure. But I wanted users to understand the process in case it was their only option. See item A15 below for flashing stock ROMs with CWM.

Automatic partition 2 repair utility. This repair utility will automatically repair partition 2 (/rom) if it thinks it is necessary. In partition 2 is a folder (/devconf) that holds vital system configuration files that the Nook needs like serial numbers and boot counts to help it decide to do the 8 failed boots described above. Every time the Nook boots, it checks the integrity of that folder and if it thinks it needs repair, it tries to repair it.

The test that it uses is it looks for a specific file in devconf named DeviceID. It is a text file that contains your 16 digit serial number followed by a linefeed (17 bytes total). On boot, if the that file is corrupted or missing, stock recovery is automatically invoked and runs a zip file named romrestore.zip that is in /boot. That zip looks in partition 3 (/factory) for a file named rombackup.zip. That file is a backup of your devconf folder from partition 2 that was made at system manufacture. If the backup file is found, the repair zip first formats partition 2 and then copies those backed up files from partition 3 back to your partition 2. It then continues the boot process booting to the installed ROM.

Partition 2 repair bootloop. This last repair utility is how some recovery bootloops happen. The user replaces the stock recovery with CWM recovery as part of putting a new ROM on emmc. Then when the system boots, it checks for integrity of partition 2 and if it thinks it needs repair, it tries to boot to stock recovery to do the repair. But stock recovery is no longer there. So it boots to CWM recovery and does nothing. No matter what the user does, it keeps trying to find stock recovery. Hence a bootloop.

There are three ways to get out of this loop.

You can flash a new stock rom on emmc. It will reinstall the stock recovery and repair zip as part of the installation. Then it can find that stock recovery on boot and repair itself. But you have to use a stock zip file that has been modified so that CWM can flash it. See my item A15 below for a link to a version of stock 1.4.3 that has been modified to be CWM flashable.

Or you could flash my stock recovery zip mentioned above. I just modified it to include the repair zip. In fact, you might want to flash my stock recovery zip that has CWM as an alternate recovery. I have included the CM bootloader with it so that you can use the boot menu to get to the alternate CWM. By using the stock recovery as normal recovery, the Nook can repair partition 2 any time it thinks it is necessary. And it is ready any time someone wants to use the 8 failed boot procedure.

Or you can flash one of my versions of the partition 2 repair utility. I have two. Romrestore (CWM flashable) is attached to this post. This romrestore zip is the stock version modified so it is flashable with CWM. It does not recreate the partition, it just repairs the files there. The other version is in my EMMC partition repair thread here and actually recreates the partition before it repairs the files. Once either of these are flashed successfully, and the Nook boots, the system should not find any errors in partition 2 and it should boot normally.

A 13. Nook Color Charging/Battery

The Nook Color charging adapter and cable have been custom made for charging the Nook. First the charging block has the data pins (d+/d-) shorted. Second the charging/USB cable has a special connector on the Nook Color end of the cable. It sort of looks like a standard microUSB connector but it is not. It has been elongated to add a second row of pins behind of the standard microUSB pins. Those extra pins mate with similar extra pins in the connector inside the Nook Color. Among other things, those extra pins give the cable more charging capacity. (For those interested, the pinout has been recently traced by a user and documented here.)

The charging circuitry inside the Nook Color looks for those conditions of the charging block (shorted d+/d-) and the extra pins in the connector. If it finds both of those conditions it allows for full charging capacity of the Nook Color (about 1.9A). The Nook Color will charge quite rapidly at that current. However if it does not find both of those conditions, it will think it is connected to a USB port and limit charging current accordingly (about .5A). This can take a while to fully charge the Nook Color (especially if the screen is on at the same time.) The charging circuitry does this for all ROMs. (Edit: There is also a third possibility. If you use a shorted d+/d- charger and a standard microSD cable it will charge at about half rate (about 1A). Thanks bobtidey for that tip.)

It is possible to use third party charging blocks with the data pins shorted along with the stock cable and you can still get full charging capacity.

But standard microUSB cables work great for data transfer between the Nook Color and your PC. And they can be used for limited charging with the USB port of your PC. Your PC usually limits that to .5A anyway.

Using the stock cable frequently sometimes leads to cable failure issues since the stock cable is so fragile. I got one replaced under warranty by B&N. But I finally bought a spare B&N power charging kit at Office Depot for $25. It included the charging adapter and cable. I have since found that the B&N kits are available online by many vendors. I have seen them as low as $12.95. Do a search for ADP-H01 and you will see many.

Several users have complained of battery problems. Their percentage varies all over the place and the device shuts down unexpectedly. My advise usually is to try a wipe battery stats from CWM. There is a lot of controversy in the community whether that really does anything useful. A few "experts" have said it does nothing and is only a placebo. And it has been removed from newer versions of CWM and TWRP. Another thing to try is to delete the max17042.bin file from /rom. Don't worry, it will get rebuilt on the next boot.

One of the users on this forum (catawalks) ran across an article about use and care of lithium ion batteries. There is a lot of good advice there that is not common knowledge. The user learned that how he was treating his battery was almost guaranteed to make it fail. (He was leaving it discharged for long periods of time then recharging fully and storing again.) You can read the article here (thanks catawalks for the link).

For those having an unusual battery drain while the unit is sleeping and want to find out what is causing it, get BetterBatteryStats here. This app is free if obtained here on XDA but costs on the Play Store. It tracks what are called "wakelocks". Those are applied when specific applications want to keep the Nook awake while it performs tasks in the background. They bring the system temporarily out of deep sleep. Of course your system uses more battery while this happens. Look at the wakelock information this app displays to get an idea what is keeping your Nook awake.

A 14. Skip Oobe (Out-of-Box Experience) for stock Nook Colors

If people are having trouble registering their stock Nook Colors, mateorod discovered a documented procedure where you can skip the registration step including setting up wifi. Just go here and follow the instructions. It even explains how to factory reset so that all data is wiped from the device. Thanks mateorod!

A 15. Flashing stock ROMs with CWM

Ordinarily stock ROM zips downloaded from B&N cannot be flashed to emmc with CWM. You must use the stock recovery to flash them. However, the zip can be modified to make it flashable with CWM. You can get a stock version 1.4.3 zip that I have modified to be flashable with CWM here or DizzyDen's older 1.4.1 stock zips here. The zip files are so large that it is best to use either the 6.0.1.2 CWM or the 2.1.8 TWRP bootable SDs from item A10 above. If you are coming from a CM ROM, I have found that I first need to format my partitions with the format 5-6-7 zip (formats /system, /data and /cache) that I attached to this post. If I just did a wipe with CWM, the stock rom would hang on boot for some reason. (And if you are interested in putting the stock ROM on SD, I have instructions in section B below).

A 16. Swapping Internal and External Media Storage

In CM7 there used to be a setting that would allow users to swap internal and external SDs. This was useful for users that had no external SDs and wanted their apps to use internal memory as SDCARD. Starting with CM9, CM changed it so the setting was no longer in settings, but was moved to the CMParts app. And now the CMParts app has been removed. But users can make manual modifications to activate the swap.

There are two ways to do it. One is to edit /system/build.prop to add this line:

persist.sys.vold.switchexternal=1

The second way is to add a property file to /data/property. That way it sticks with a ROM upgrade. Add this file:

persist.sys.vold.switchexternal

And insert the value 1 (with no carriage return) in the file.

After making one of these edits, just reboot and they should be swapped. To return to normal just change the 1 to 0 and reboot again.

But there is a problem with some early versions of CM10.1 and CM10.2 that prevents this from working properly. It has been fixed in the current builds. But if you are running an older version, you can fix it yourself by editing this line:

ro.vold.switchablepair=/mnt/emmc,/mnt/sdcard

to

ro.vold.switchablepair=/storage/sdcard0,/storage/sdcard1

-----

-----

If you have questions or comments just respond to the thread.