KeyboardSwap Plugin Switches Keepass2Android Keyboard Without Root


Reading Time:  4 Minutes
 

word managers on Android have long been neglected by Google, but that’s going to change with Android O. Android O’s Autofill Framework will drastically improve user/password data entry and will also eliminate the need for performance-costly Accessibility Services, but unfortunately it’ll be quite some time before most devices will ever receive Android O. For those of us who will be waiting months for Android O to be available for our devices, the standard features will have to suffice. A personal favorite among the XDA-Developers team is Keepass2Android which is an Android port of the popular open-source Keepass . Keepass2Android allows you to access your password database from the cloud storage of your choosing, and it also features fingerprint database unlocking and/or quick database access through a shorthand of the full password. But one nifty feature has been locked for many years to be used only by rooted users: automatically switching s/input methods. A new Keepass2Android plugin called KeyboardSwap aims to fix that.

Many s in Android offer their own s (also known as input methods in Android) because the Android system clipboard is notoriously insecure. Any application that requests the permission to read the clipboard is automatically granted it without user input, and unless you know your way around the App Ops command line, you can’t easily revoke the permission either. Keepass2Android is no different, and its , while aesthetically unpleasant, gets the job done. However, on many there’s no quick and easy way to change input methods without going into settings. Some software from OEMs and custom ROMs offer an input method switcher in the notification panel or navigation bar, but many do not. That’s why Keepass2Android’s automatic switching feature is so useful.

In the comments of our XDA Spotlight article featuring Keepass2Android, one of our users pointed out that Keepass2Android was still relying on the outdated Secure Settings application in order to automatically switch input methods. Since we now know that most of the functionality of Secure Settings can be replicated without root access, I figured it would be possible for Keepass2Android to replace Secure Settings with another app. I e-mailed the developer of Keepass2Android, Philipp Crocoll, with a non-root solution I came up with and the solution was the KeyboardSwap Plugin.

The way it works is simple. The application uses the WRITE_SECURE_SETTINGS permission which is normally restricted from user apps but can be granted manually via the package manager command line interface in the Android Debug Tools (ADB). All you have to do is install the plugin from the Google Play Store, ensure that you’re on the beta version of Keepass2Android, then enter the following command in a command prompt/terminal once you have ADB set up:

adb shell pm grant keepass2android.plugin.swap2 android.permission.WRITE_SECURE_SETTINGS

The plugin can then write the name of the Keepass2Android input method service into the Settings.Secure.DEFAULT_INPUT_METHOD setting and Android will automatically open up this the next time entry is needed. Of course, this service actually has to be enabled within Keepass2Android by going into the settings –> –> access –> switching then toggling the “auto-switch ” function.

For instance, if your current default is Gboard, then the KeyboardSwap Plugin will save com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME as the current , then change DEFAULT_INPUT_METHOD to keepass2android.keepass2android/keepass2android.soft.KP2AKeyboard once you’ve selected a in the app. When you close the Keepass2Android input method, then the KeyboardSwap Plugin restores the Gboard input method service to the DEFAULT_INPUT_METHOD setting.

To the end user, once the permission has been granted the plugin “just works.” You won’t have to worry about anything related to the plugin once it’s set up. You can hide the application icon from your app drawer and never touch it again. If you factory reset or uninstall then re-install the app, only then will you have to grant the permission once again. Otherwise, this is a simple plugin that you can set up and forget, and it’ll make your just a tad bit faster.