One of the more obvious settings missing from Android is the ability to use one keyboard, say Swype, in portrait orientation, and then automatically switch to another keyboard when the phone is in landscape.

This feature has been oft-requested, and is something that is strangely missing from many mobile OSes. Well, the clever clogs over at the XDA-Developers Nexus One forum have managed to figure it out with a little workaround.

However, the hack only works for those on rooted phones with access to the /system partition as Read-Write. Thankfully that is most phones, nowadays. In the words of the hack’s creator, ne0fhyk:

The application is rather simple so far. It shows you lists of the input method you have on your device, and allows you to specify different ones for portrait or landscape orientation.

It will then launch a service that's triggered by orientation's change events, and reset the input method based on your preference.

To do so, the service must run as system. Just copy the application under /system/app/.

Restarting after installation is recommended.

This is a work in progress. Occasionally, the keyboard switching shows lag. I am working on improving the app, so any feedback is appreciated.

I tried to install the hack myself, and it’s a little bit more complex than that.

1. Download the APK (there may be a newer version on XDA by the time you read this)

2. Install it as normal

3. Don’t try to open it, you will just get Force Close

4, Open Terminal on your phone or use adb shell  / adbWireless

5. Type “su” (may not be necessary in adb), your “$” prompt will change to “#”

6. Type “mount


7. Find the line near the top which mentions “/system”, noting the “ro” in the parentheses at the end of the line

8. Enter “mount –o rw,remount –t yaffs2 /dev/block/mtdblock3 /system”, replacing “mtdblock3” with whichever mtdblock your line says above.

9. Enter “mount” again, check that “ro” has changed to “rw”. This means you can now write to your /system partition.


10. Use “cd” to change to your app folder: “cd /data/app/

11. Find the installed KeyboardManager using “find *keyboard*


12. Move the keyboardmanager APK to your /system partition with the command “mv com.android.bg.keyboardmanager-1.apk /system/app

13. Now you want to reboot your system to load the application again, and also reset your /system partition to “ro” for security. Simply enter “reboot” and hit enter

14. Once your phone has restarted, open up Keyboard Manager from your application drawer

15. Choose which keyboards you’d like to use in which orientation, from the displayed drop-downs


Having used the app for a little bit, it does work, but it’s not instantaneous. It may take a few taps of the text entry field to work. The developer is definitely not done with this project, so at this stage it’s kind of a proof of concept, so don’t be surprised if the experience is a little buggy.

It’s great to see this issue finally, sort of, pretty much resolved. Check it out and leave your experiences in the comments below. Oh, and do a nandroid, k?


Source: XDA-Developers via reddit

Brian O'Toole
Having learnt his writing techniques reading e-Books of Sherlock Holmes, Brian now spends his time /kicking, lurking, SSHing and encoding.
  • Ryan Rife

    Use RootExplorer, saves lots of time.

  • John

    With root explorer do I just chuck the .Apk into /system/app?

    • http://androidpolice.com Brian

      No, you still have install it into /data/app as usual first, since it's the APK inside the APK that you want. Confusing, I know.

  • ne0fhyk

    Hi Brian,
    I am the developer of the app. Thanks for the exposure.
    I wanted to let you know I made an update to the application.
    The apk file, and instructions for installation are at http://forum.xda-developers.com/showthread.php?p=9036984#post9036984