[Barnes & Noble Nook Tablet] jichuan89:
Enable Copy & Paste on the Nook Tablet​

Background

The lack of copy & paste functionality on the Nook Tablet is one of the most annoying "features" of the B&N firmware and it affects not just geeks like me but also the average user. This thread and this thread are two of many, many threads complaining about the missing copy & paste. This thread proposes a "fix" by combining the Hacker's Keyboard and Swype, but is still really lame.

The method I will describe here solves the problem by replacing /system/framework/framework.jar which contains the code for Android widgets like text fields. I have merged into the stock /syste/framework/framework.jar the code responsible for copy & paste from the Android source code.

Instructions

Video walkthrough: http://www.youtube.com/watch?v=7V70a3FYbt4

0. Before you proceed, know that THIS IS EXPERIMENTAL SOFTWARE THAT PROBABLY VOIDS YOUR WARRANTY AND MAY PERMANENTLY OR TEMPORARILY BRICK YOUR TABLET. Even though it worked for me, it may not work for you, and worse, it is quite possible that it could cause your tablet to boot-loop or die. I AM NOT RESPONSIBLE FOR ANY POSSIBLE DAMAGES TO YOUR TABLET / ANYTHING ELSE CAUSED BY THIS METHOD. BY USING IT YOU AGREE TO ASSUME ALL RESPONSIBILITY FOR YOUR ACTIONS.

1. Your tablet needs to be rooted for this to work. If you have not rooted it yet, search this forum for instructions.

2. Since we will be copying files to /system, you will need to install ES File Explorer or Root Explorer or whatever other app that allows you to do that.

3. Download the file that corresponds to your OS version from below:

1.4.2 (16GB/8GB): http://www.mediafire.com/?5pf2aegq02194lq MD5: ef35d35daffd0d9574f48a43ccc4b58c​

1.4.0 (16GB): http://www.mediafire.com/?es6gd31wzr7yk8a MD5: 99d2e7eff173fbdc77c79b4f4a6ff53c

The 1.4.0 version has been reported to cause boot loops for some people, while it has worked for others. You have been warned.​

If you're on a different OS version, post the file /system/framework/framework.jar form your tablet and I will make a package for it.

4. Extract file contents to microSD card, and insert microSD card into the tablet.

5. Using ES File Explorer / Root Explorer, copy the extracted file framework.jar.new to the directory /system/framework/. (If you're using ES File Explorer, make sure "Up to Root", "Root Explorer", and "Mount File System" are checked in settings.)

6. Copy the extracted file uim-sysfs to /system/bin/.

7. Go to /system/bin/, and change the permissions of the file uim-sysfs to executable. (If using ES File Explorer, long press -> Properties -> Change -> Check everything under "execute".)

8. Power off tablet and power on again. The tablet should take much longer to boot this time than normally, so no need to worry. When the tablet boots up, you will most likely see lots of force close dialogs. This is normal.

9. Wait one minute. You could be stuck in a boot loop if you don't wait.

10. Power off tablet and power on yet again. This time it should also take much longer to boot; the boot times will return to normal after several reboots.

11. Profit.

Force close issues

The first time you run some (read most) apps after applying this hack would likely result in force closes. While annoying, there is no way to get around it due to how the Dalvik VM caches references to /system/framework/framework.jar. In addition, every time you install new apps or update apps, you will have to reboot the machine before those apps are usable; you will get a force close when you try to use those apps until you reboot.

The solution is simply to reboot your tablet each time you get a force close error from an app that worked fine before this hack. The force close error for that particular app should go away following a reboot. If you get a force close from another app after that, just reboot again.

How it works

The information below is for people interested in understanding how this stuff works. If you just wanted to enable copy and paste on your tablet, you can stop reading.

This hack is based on the exploit explained at http://xdaforums.com/showthread.php?t=1534518. The uim-sysfs script in the attached file saves the stock /system/framework/framework.jar, copies over my modified framework.jar.new, and restarts the zygote process. After the zygote process has loaded my framework.jar.new, the uim-sysfs script restores the stock /system/framework/framework.jar so that /init will not bail on the next boot.

To enable copy & paste in /system/framework/framework.jar, I decompiled the stock implementation and merged in related code from AOSP. The two classes I changed are android.widget.TextView and android.widget.EditText. For android.widget.EditText, I simply used the AOSP implementation because the only difference between the two was in the enabling of copy & paste. I manually merged android.widget.TextView because there appears to be B&N enhancements in it in addition to disabling copy & paste.

The exact steps I took as well as a diff of my modifications are documented in post #12.

Disclaimer

Again, this is experimental software. That it worked for me does not mean it will work for you, or that it won't brick your tablet. I am not responsible for any possible damages resulting from using this method.