yashsingh1/xdaforums huggingface dataset:
[Acer Iconia A500] JimbobTranter:
My SD Card had the same problem and this, all of a sudden it was unreadable! I tried every method under the sun including trying to access it through an arduino and using SPI which is the alternative way of communicating with the device. I found a company called RecoverFab who said they could read the data from the memory chip even if the erst of the card was dead! So in a last ditch attempt I sent it over to them and the day after they received it I got an email and they had recovered 100% of everything on the SD card! I have never been so happy as it was all the photos from my girlfriends 21st! Superb communication and service!
[Asus  Eee Pad Transformer Prime] agentdr8:
I have successfully modified the Asus Keyboard.apk to allow the to launch any installed web browser. This is a continuation of the original thread, but more space/visibility for any questions and/or support issues.

Updated for Jelly Bean & ICS -- Thanks to Kick4U for updating Aroma installer to support odex/deodex roms and for his F4/F5 edits

DOWNLOAD:AROMA installer for Jelly Bean & ICS - v2.0 - via Dev-Host Updated by Kick4U

The AROMA installer zip should be flashed using TWRP 2.2.2.0/2.2.2.1 which can be found here (I used the blob version via fastboot)

The installer offers the key layout changes that nhshah7 posted here. I've adapted the changes for the ICS key layouts as well.

I put in logic to determine the OS version installed and then decide which packages to extract. The script relies on the following /system/build.prop field to be correct: ro.build.version.release. If this is set to 4.1.1 then the JB packages will be pushed. Any other value will result in ICS files. Since I no longer have ICS installed I have no way of testing that this works for ICS, but I can only assume it does based on its behavior with JB installed.

Also, this AROMA package may work on the TF101 and TF300 but I have neither so I have no way of testing it. Please let me know if it does or does not and I'll update the post accordingly.

Thanks to daerwynn for testing the package on the TF700. Confirmed working! Most likely it will work on the TF300 (or AndroWook) too, but will wait until someone posts some feedback.

Support stuff

If after you've installed this mod your browser button does not prompt you for browser selection, try and clear your default browser: go to Settings, Apps, find your default browser and select the "Clear defaults" button.
[Asus  Eee Pad Transformer Prime] Ronde90:
Hey what's up. I started the original thread and I just wanted to say thanks for all the hard work you put into solving this; its much appreciated.
[Asus  Eee Pad Transformer Prime] Ronde90:
Also, do you know if there is a keyboard shortcut or way to modify the keyboard button action like you did so that when you press the button with the 4 white lines (the one that opens up setting in whatever app you're using), when in your launcher, it will open up the running apps button (the one on the touch screen that is to the right of the home button)? Thanks again for all the help.
[Asus  Eee Pad Transformer Prime] agentdr8:
Not sure about remapping that button, as each foreground app should have control over it, whereas the recent apps soft-button to the right of the home soft-button is global in scope. I would imagine if you wanted to change its behavior in a specific launcher it should be something the developer has put into the app as a preference.

If we're talking about the stock ICS launcher, then it should be modifiable by any chef once custom ROMs drop and the bootloader is unlocked.
[Asus  Eee Pad Transformer Prime] agentdr8:
No problem. I got to learn more about android application development, smali editing, decompiling, editing signed system apps, and all sorts of other stuff. Using the noggin' every now and then keeps the cobwebs from becoming permanent :D

And as a long-time XDA fan/member, I like being able to contribute what I can back to the community.
[Asus  Eee Pad Transformer Prime] barryflanagan:
Thanks, that works!

Really looking forward to custom ROMs for the TFP - so many little areas such as this which can be made so much better.
[Asus  Eee Pad Transformer Prime] newellj79:
Worked awesome! Thank you so much.
[Asus  Eee Pad Transformer Prime] fknshwow:
just confirming that the root explorer method works.

just mount as r/w, backup and delete the two keyboard files, copy the browser fixed keyboard into system/app and everything is right to go :)

---------- Post added at 04:36 AM ---------- Previous post was at 04:29 AM ----------

yes this is true, the foreground app has control over they keyboard. but not that top row of function keys, thats been separated from the rest of the keyboard... for example if you deleted that keyboard.apk the function keys would stop working but the rest of the keyboard however would continue to function. its the way they have been mapped is why foreground apps dont have immediate control over the button, anything is possible with software, something can be written to take control of it but the dev would need to direct it to the separate keyboard apk for control over those keys

the mapping for the qwerty keyboard is housed in the framework, this is so you can plug in any usb/bluetooth keyboard and they will be correctly mapped. the apps made (unless written to use it) do not know that asus has made an apk to map extra keys, that is why the foreground app doesnt take control of it
[Asus  Eee Pad Transformer Prime] XXtremeAzzKicker:
Yep, root explorer method work great
[Asus  Eee Pad Transformer Prime] ickk:
Oh Man, I have been waiting for a change like this since I've purchased my original transformer. Thanks. Surprisingly I've been unable to find anything to reassign key actions. I hate how the lock button is next to the backspace key on the keyboard - touchtyping results in alot of swearing for me.
[Asus  Eee Pad Transformer Prime] agentdr8:
You can change the keymapping of some of the shortcut keys just by editing the keylayout. I know a lot of people get frustrated when typing and accidentally lock their TP or turn off the Wifi.

What would you want it remapped to?
[Asus  Eee Pad Transformer Prime] ickk:
I'd probably just disable it for the time being until I found a use for those keys. I don't find myself using them enough, I don't even use the dock as much due to them. It's nice that they care enough to add features, but when I want to type for an extended period of time (basically when I plug in the dock lol) they hinder the docks productivity. I find myself typing projects while laying in bed on thumb keyboard more than I do using the dock for typing - its main use has just been for sd/usb and battery life for the days I'm on campus all day because of it.
[Asus  Eee Pad Transformer Prime] agentdr8:
I sent this to another XDA member in PM, but I figured I'd share here in case anyone else wanted this.

To change your lock key to a delete key, try this:

adb pull /system/usr/keylayout/asusdec.kl

Edit that file and find the line:

key 142 SLEEP WAKE UNLOCK

Change the word SLEEP to DEL, save and exit. adb push that file back:

adb push asusdec.kl /data/local/tmp

adb shell

su

mount -w -o remount,rw /dev/block/mmcblk0p1 /system

cd /system/usr/keylayout

cp asusdec.kl asusdec.kl.orig

cp /data/local/tmp/asusdec.kl ./

chmod 644 asusdec.kl

sync

reboot

It should now function as just a delete key, and no longer a sleep key.
[Asus  Eee Pad Transformer Prime] barryflanagan:
Thanks - worked a treat!

I wish there was a way to remap the BT and WiFi keys to something more useful, but for that I think we need to hack the Keyboard.apk (have done this already to change the browser button to launch the default browser rather than being hardcoded to the ICS stock one)

Someone more talented than me could write a nice little utility to manage those dock special keys!
[Asus  Eee Pad Transformer Prime] sparkdroid:
Did this last night and it worked great. Just an FYI, if you already have your default browser open, pressing the button opens google in a new tab. This can come in handy sometimes.
[Asus  Eee Pad Transformer Prime] agentdr8:
I actually have a version of the Keyboard.apk that I made that disables those two keys. I didn't check to see if they could be remapped at that point. I can test later and post it up.
[Asus  Eee Pad Transformer Prime] barryflanagan:
That would be great!
[Asus  Eee Pad Transformer Prime] Nakebod:
Just FYI: This mod is also working on the TF101, also running ICS.

Afaik there was no "keyboard shortcut hack" for the TF101 yet, so I'm glad this works. Or maybe there is, but Google gave this result first :D

Now I can finally use my browser-key with the browser I want to use, thanks!
[Asus  Eee Pad Transformer Prime] lamboboy732:
Just use alt+tab on the dock to switch between apps
[Asus  Eee Pad Transformer Prime] agentdr8:
That's great news. When I started researching I also found that TF101 users were facing the same issue and came up with no solutions.
[Asus  Eee Pad Transformer Prime] IconBoy:
Could someone please post the original Keyboard.apk and keyboard.odex file that is for the Prime? I can't find my backup. Sigh....
[Asus  Eee Pad Transformer Prime] agentdr8:
Zip attached. These are pulled from the official 9.4.2.15 release blob.
[Asus  Eee Pad Transformer Prime] Keion:
Plz provide apk w/ meatspin homepage.

(Im kidding, great work op)
[Asus  Eee Pad Transformer Prime] IconBoy:
Reverting back to the original keyboard, I was able to update to the latest firmware and restored root with Voodoo OTA Rootkeeper. Thanks for all the help!
[Asus  Eee Pad Transformer Prime] agentdr8:
Lulz if that's what floats your boat, then I can definitely make it happen for you... :D
[Asus  Eee Pad Transformer Prime] Keion:
:) I'll keep an eye out and see if one of my friends get a tp, that's when I'll need that apk. Once again, Great work.

Sent from my tf9001 with XDA XD.
[Asus  Eee Pad Transformer Prime] nateysmith:
Can we get this working on the latest version of AOKP?
[Asus  Eee Pad Transformer Prime] agentdr8:
I'm not sure that it doesn't already. In theory it should work with pretty much any ICS ROM, but I can't say that I've tried it on anything other than Virtuous, which is based on the stock Asus ROM. It may require that the ROM have the Asus certs available, otherwise it'll give a cert signing error when trying to install it (of which would only be shown in logcat since it's a system apk).

If that's the case, I might be able to sign it with the test keys.
[Asus  Eee Pad Transformer Prime] Ronde90:
Hi. I tried the replacing the original keyboard.apk with the modified one that you made on the new AOKP rom. For me at least, it does not work. I think that it might not work on the latest AOKP being that the new AOKP is based on the .21 firmware, but IDK. I find that a couple of the shortcut keys work, but not all of them.
[Asus  Eee Pad Transformer Prime] agentdr8:
I downloaded AOKP and compared the Keyboard.apk that it includes to my modded Keyboard.apk and it seems that the only difference (other than my smali edits) is the signing keys. I'm signing it now with test keys and will post it up for testing in a few.
[Asus  Eee Pad Transformer Prime] agentdr8:
Try the new CWM zip I added to the 1st post. I don't have AOKP installed, but the unsigned one should work as it uses the test certs. As always, backup the original Keyboard.apk somewhere first.

EDIT: Also, if not all of the shortcut keys are working in AOKP/CM9 from a base flash, then it's possible that there are framework edits that need to be done to support the keycodes that Asus is using. I found this thread in the TF101 forums that would most likely apply to the TF201 as well.
[Asus  Eee Pad Transformer Prime] Ronde90:
I tried flashing the unsigned zip file through CWM and it doesn't flash. I keep getting a bad source error notice. Could you upload the unsigned apk. file?
[Asus  Eee Pad Transformer Prime] agentdr8:
See attached. I'll take a look at the CWM zip. I tried the signed one on Virtuous and it works fine.

EDIT: XDA zip attachments aren't working so I moved the files to dropbox. This is most likely why you were getting the source error in recovery.
[Asus  Eee Pad Transformer Prime] zerghase:
I've got an idea how the shortcuts could be made configurable without editing the Keyboard.apk every time. With an intermediate app, that catches the hard coded intents from the keyboard, and calls another app depending on its configuration, together with a simple interface to choose an app or website for each button.

@agentdr8 I've never hacked/edited an existing .apk, but if you want, I could write the intermediate app (maybe together with a root-installer for your modded keyboard.apk), so you only have to change the intents to call my app.
[Asus  Eee Pad Transformer Prime] agentdr8:
That sounds like a good idea...the problem though is that the "special" keys that Asus has defined are part of the system framework, so hooking them might not be an easy endeavor. It might be easier to just let Keyboard.apk catch them all and redirect their intents to your app for each button press. That of course would still require a modded Keyboard.apk, but if you can build an all-in-one installer it might be less painful for updates.
[Asus  Eee Pad Transformer Prime] RubenRybnik:
I've been hunting for a good hotkey / shortcut app for the dock for awhile now on the TFP. Only thing that's come close in a "Universal" manner, is AnyCut. However the app is a bit limiting in how it works, can only use search+alpha or numeric keys, but does seem to work.

So the framework file your refering to is the one in /system? I know they keyboard layout file has all the MEDIA_NEXT and other constants in there. So can we add new ones in the keyboard.apk for special buttons pointing to app packages to run? And for the "normal" keys not sure if the intermidiate solution is the only one, or should a framework hack work?

Just curious, really wish someone would come up with a universal solution. Would love to be in a broswer and hit ctrl+` for airTerm to pop up :)
[Asus  Eee Pad Transformer Prime] luciddreamin92:
Nice! about time i found a good way to change the function of the browser key, the default browser sucked, chrome on the other hand is bad ass. And i will say, this works with the latest .28 update. i just used es file explorer to delete the old one and add the keyboard mod app thing. :p
[Asus  Eee Pad Transformer Prime] achimhecht:
Thanks

Thank you! It worked even with the German quertz layout.

Could it be possible to manage replacing the link to the stock file manager for the sdcard in the notification bar in a similar way?
[Asus  Eee Pad Transformer Prime] RubenRybnik:
For those of you that use AOKP it looks like B39 is using KeyHandler now which currently breaks the function keys of the TFP, however it's throwing unhandled key exceptions when pressing the F keys, meaning it should be pretty easy to jack into now. Not a universal solution, but I've been running AOKP for awhile now so it'll do for my own uses. Just fyi.
[Asus  Eee Pad Transformer Prime] nhshah7:
THIS IS AWESOME!!! Thanks so much!!

I actually used the above method to switch my ALT and SEARCH buttons so it's more natural (for me at least) to do alt + tab with one hand. Posted my asusdec.kl file to this post, including the sleep/delete mod.

Is there a way to modify the "SLEEP" key to delete, but to be the real delete, like on a computer, so that it deletes what is in front of the cursor? This can also be accomplished by shift+backspace. I couldn't find a anything in the asusdec.kl file that looked like it would do that.

And to the OP:

This is awesome. Thanks so much!
[Asus  Eee Pad Transformer Prime] barryflanagan:
Haha, yeah. I do this also. In fact I pried off the Search and Alt keys from the keyboard dock and switched them around just to complete the effect. I really find it hard to believe that the Asus people had enough cop to include the alt-tab task switching key combo, but did not stop to think that having to use two hands to do it was just plain silly!

I have a small shell script which I run whenever I upgrade my ROM that copies my asusdec.kl file into place as well as a few other things like changing the mouse cursor icon from being black (and hence pretty much invisible in the quite dark ICS environment) to a white icon I can actually locate
[Asus  Eee Pad Transformer Prime] nhshah7:
You, my friend, are a genius! Doing it now, but my ALT key wont stick back on :(

ps for anyone that tries this, pry the key off SLOWLY from the top or bottom.

EDIT: got it back on - realized that the pins at the top of my ALT key were kinda bent, so pulled it back and now it sticks...kinda crooked, but at least it holds and works :D
[Asus  Eee Pad Transformer Prime] imaudi5000:
can anyone help a newb please? :)

i am trying to do this thru a terminal emulator but cant get the commands right. it would be awesome if someone could simply spell it out line by line :)

thanks so much
[Asus  Eee Pad Transformer Prime] imaudi5000:
bump, can anyone help me please? :)
[Asus  Eee Pad Transformer Prime] collinsac24:
Adb is only from the pc, I don't believe you can do this through your device's terminal
[Asus  Eee Pad Transformer Prime] nhshah7:
It should be possible. I can try to write up a line by line guide later today or tomorrow
[Asus  Eee Pad Transformer Prime] collinsac24:
Through terminal are you sure? I'm pretty sure he can just back up the files and replace them through a root browser but I'm unaware of how it would be done through term. but hey I'm still a noob:p
[Asus  Eee Pad Transformer Prime] lil-devil:
you are able to do it via the terminal

but you can't have your prime on your dock tho as using your prime w/ the dock will mean you can't write over the keyboard.apk

but here is what you can do

su
cd /system/app, cp Keyboard.* /mnt/sdcard/backups (or where ever you want to keep your originals)
rm Keyboard.*
cp /mnt/sdcard/Keyboard_MultiBrowser.apk ./Keyboard.apk
chmod 644 Keyboard.apk
reboot

that should work

just wondering

why not just use adb via your computer?
[Asus  Eee Pad Transformer Prime] ecb116:
I did it too, boy those keys are hard to get them back on if you pull them out wrong. I have the dock for the TF300T but i suspect they are pretty much the same

You have to be eeeeextremely gentle and use a flat screw driver.

I find it easier to start from the top left side of the key, gently pick it until you hear a clicking sound

then the right top side again click, and then the bottom.

If you do this correctly, only the key will come off without the white plastic mechanism that is under there, if that comes off too you will have to detach it from the key very gently without breaking the small plastic pins, put that first in the slot and then the key itself on top of that.

Guys its not easy as prying out the keys from a regular keyboard, so be warned and be cautious :o
[Asus  Eee Pad Transformer Prime] ScottHW:
TF700

Has anyone tried this with the TF700 yet?

OP, IYHO, would you think your apk would work for other TFs (TF200, TF700) ?

Thanks, by the way. This is exactly what I'm looking for.

UPDATE: The latest FW for the TF700 is 9.4.5.26
[Asus  Eee Pad Transformer Prime] agentdr8:
I can't say for certain that it would work on newer devices, but seeing as how it worked on the TF101 as well, it's possible that Asus uses the same APK on all of their docking tablets. If you're rooted, you can just backup the original and give it a try. Worst-case is your dock doesn't work correctly and you have to revert.

If it doesn't work as is, it can probably be smali edited to work. I don't have either of the newer TF devices, but if it's something you want to help me test, I can work with you.
[Asus  Eee Pad Transformer Prime] ScottHW:
Already confirmed on TF700

Thanks for the response. Nice follow up on your own work, I really appreciate it.

In fact, there's another thread which just references your work here

http://xdaforums.com/showthread.php?t=1814134

I posted there, and jtrosky already confirmed that it works great with the TF700. I would have been glad to work with you test out modding the apk for new TFs, but apparently it's not necessary.

Cheers, and thanks again.

UPDATE: I just tried it as well, and it works great on a TF700 running 9.4.5.26! Now my Browser key launchers ICS Browser + (com.beansoft.browserplus, my newly set default browser, which I see from your older thread was your choice too), just like I wanted.

You might like to highlight the "Clear Defaults" instruction in your OP, maybe just in a separate paragraph. All those words... people who are reading fast could miss it.

I used Root Explorer to backup the old files, copy your new apk, and set permissions.

Reminder for anyone else doing it through an explorer

chmod 644 is the same as...
Owner Read Write
Group Read
Others Read

also known as
-rw-r--r--

I thought about writing the commands into a batch script, but these are so simple and short that everyone should know how to do it through terminal, or ADB. Also, since it's one-time only, there's hardly a need for a script.

Interesting... it didn't generate an new Keyboard.odex after rebooting... I'll try do dump the Dalvik cache and see what happens.
[Asus  Eee Pad Transformer Prime] agentdr8:
I don't think it will generate an .odex file since I had originally used a de-odexed source APK, so the classes.dex is within the .apk file.
[Asus  Eee Pad Transformer Prime] ScottHW:
deodex'd

Ahh. Right, I see that now in the OP. Well that explains it.
[Asus  Eee Pad Transformer Prime] d14b0ll0s:
The stock .apk from the Prime posted on page 3 here is actually different than the one from stock Infinity (different file length, a few additional KBs on the Infinity). Any guesses what the changes could be? I'm not sure if it was .207 dock firmware already by that time (posted April 2012).
[Asus  Eee Pad Transformer Prime] BGreeNZ:
Disable task switch on Alt-Tab or Meta(Win)-Tab?

I have the TF300T. I hacked the asusdec.kl to give me a Dvorak layout, with the top and bottom rows remapped as follows:

Esc F1 F2 Trackpad F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Insert ForwardDelete ScrollLock

LCtrl (Fn*) Home Search Spacebar RAlt Menu RMeta*

*Meta = "Windows Logo" key

*Fn is internal to the keyboard and simply modifies the scancodes of the Up, Down, Left, Right keys (unfortunately, only those keys).

I find the "Search" key to be useful to quickly access the URL bar of the browser, so I left it as is. Right Ctrl has been remapped to provide a Right Meta (Win) key.

I hacked the asusdec.kcm charmap file so the toprow keys will fallback to their original function if the application doesn't interpret them as a PC-style function key. With this configuration, it's also possible to overload the toprow keys so they perform additional functions when combined with Shift, Ctrl, etc.

I also used the "Scroll Lock" function reassigned to the incredibly annoying "Lock" key to hack the regular QWERTY layout into the character map. i.e. Dvorak when Scroll Lock off, QWERTY when on.

It all seems to work quite well. My hacked asusdec.kl and asusdec.kcm files are attached, if anyone is interested in them.

I have one remaining problem, though. Android responds to both Alt-Tab and Meta-Tab to switch tasks. I would love to be able to disable the task switch action on one (or both) of those combos, so I can still have a taskswitch key when using Remote Desktop (which I use to display the GUI for Debian, also installed on the device). Anyone know if this is possible?

Edit:

I do not use the "ASUS Keyboard" IME as my soft keyboard. I prefer (perhaps for obvious reasons) Hacker's Keyboard.
[Asus  Eee Pad Transformer Prime] SCWells72:
Did you ever figure out how to disable ALT+TAB/WIN+TAB in Android? I'm trying to do the same thing as it's one of the few remaining obstacles to making my HP Touchpad w/CM9 a fully usable RDP client for my work machine. If possible I'd also like to disable WIN+E (Android traps this to open the default email client and under Windows it would open an Explorer window).

Thanks!