This warning is a general Android system security feature that alerts users when activating a third-party input method. It's shown for all keyboards installed by the user as a precaution, and does not mean that this specific keyboard is known to be stealing data, just that it could potentially do so.
A keyboard knows which keys you are currently typing (that's part of its job description), and a malicious application could abuse that, especially if it were to ask for Internet access permission.
The source code for this project is available at the Source link above, you are welcome to review it and/or build your own binary.
In case you're curious about the technical details related to showing this security warning, see the Android OS source code, specifically ime_security_warning in the official Android source LanguageSettings.java and message catalog.
The permissions requested by the application are those needed by the underlying Gingerbread keyboard, see the AndroidManifest.xml file from the original AOSP source code.
It uses the contacts information for completion of names and email addresses, and audio recording for the voice input feature.
I'm considering making a minimal-permissions version with this code disabled if there's sufficient demand, see http://code.google.com/p/hackerskeyboard/issues/detail?id=2 for more details.
This is a temporary side effect of a recent change in Android permissions that appears on 4.1 (Jellybean) devices. I'll need to build and publish a new version to fix this, if you want this earlier you can download one of the release candidates from https://code.google.com/p/hackerskeyboard/downloads/list which includes a fix for this.
The application is not actively asking for the READ_CALL_LOG permission. The equivalent rights were granted automatically on older Android versions when asking for READ_CONTACTS, and recent versions split this up into two separate permissions. To avoid breaking backwards compatibility, apps requesting READ_CONTACTS are automatically treated as also asking for READ_CALL_LOG unless they explicitly declare that they are aware of this distinction by setting the API level. I'll need to rebuild it with a current SDK to remove this permission, thanks for pointing that out.
More info here: http://developer.android.com/reference/android/Manifest.permission.html#READ_CALL_LOG, note that the permission was added for API level 16 (Android 4.1 Jelly Bean), and the current build isn't yet targeting that level.
See "Source" link above: http://code.google.com/p/hackerskeyboard/source/browse/
See BuildingFromSource for instructions how to build it yourself.
The recommended method is to launch the "Hacker's Keyboard" application and use the two buttons shown by the application to enable it. The help text shown below the buttons explains this in more detail.
Alternatively, use these manual steps:
See also the following entry that explains how to activate specific layouts.
These devices use a heavily modified operating system that isn't fully compatible with standard Android versions. I consider these as unsupported, but users have been successful in activating third-party keyboards.
The application NookColor Tools allegedly works for both the Nook Color and Kindle Fire. See this xda developers thread for Kindle Fire specific information. I have not tried this myself, please be careful with steps involving rooting or OS modification.
On standard Android devices, pressing the "Back" button while the keyboard is visible will close it instead of doing the usual "Back" action.
If this is not working for you, or if you have a nonstandard device that doesn't have a Back key, try a vertical "swipe down" gesture (across multiple keyboard rows) to close it.
You can configure the gesture used for this in the keyboard's "Gesture and key actions" settings menu. If the swipe action is too hard to trigger, try binding the "close keyboard" action to the "Volume down" hardware key. This won't interfere with normal use of the volume button while the keyboard is closed.
For the future, I do plan to add support for a dedicated "close keyboard" key, but this needs to be part of the general user-customizable layout support (issue 13) - there just isn't enough roum in the current layouts to add this by default for everyone.
Several languages are available as add-on dictionary packages on the Play Store: https://play.google.com/store/apps/developer?id=Klaus+Weidner
Additional dictionary packages are on the project download page: https://code.google.com/p/hackerskeyboard/downloads/list?q=label%3ADictionary
Hacker's Keyboard is also able to use dictionaries from AnySoftKeyboard language packs, including Arabic and Greek: https://play.google.com/store/search?q=anysoftkeyboard+language&c=apps
The dictionary should be available for use immediately after installing the package. The "Input language selection" setting menu shows "Dictionary available" for each languages where it found a usable dictionary.
Many non-English layouts have more than two characters assigned to each key, typically accessed by using the AltGr key. On this keyboard, the additional characters are accessible by long-pressing keys in the usual locations. For example, on a German keyboard, long-press "<" to show a pop-up mini keyboard which includes "|". On a French AZERTY keyboard, long-press "à" or "é" to get "@".
I'm planning to add support for an AltGr key in a future version.
The Circle key (shown as a check mark in older versions) to the left of the arrow keys corresponds to pushing a trackball to make a menu selection, or pressing the middle of a directional keypad. The corresponding Android keycode is DPAD_CENTER. This is usually equivalent to pressing RETURN, but some applications treat it differently. For example, when navigating a dropdown suggestion list such as the browser's address bar, you can use it to copy the current selection for further editing instead of immediately selecting it.
As a secondary function, you can long-press the Circle key to activate a "compose" function, for example Compose (long-press Circle) followed by the "o" and "c" keys generates the "©" Copyright symbol. See ComposeSequence.java for the list of supported combinations.
Version 1.29 changed the way that the automatic punctuation swap works. Earlier versions were quite aggressive about automatically removing spaces before punctuation, but this could lead to problems when you actually want a space character.
The new version tries to make this more consistent. Short version: if you want the old behavior, turn on the "Auto-Complete" setting, or tap the suggested word instead of pressing the space bar.
The reason for the change was that the old behavior made it very difficult to type punctuation consistently, especially after adding ":" and ";" to the list of characters that should be space-swapped. The keyboard needs to be able to distinguish "Test: " from "Test :-)", and this was difficult in the old system.
If this isn't working for you as described here, please let me know.
See issue 17, this feature depends on operating system support that's only available starting with Gingerbread (v2.3). In the meantime I recommend disabling the option in the keyboard settings if it's not working correctly.
There's a known problem if the current input method gets replaced while it's active, the system can get confused. The symptom is that the keyboard appears unresponsive, or only shows the typed output after switching screen orientation. Switching applications should fix it, or alternatively try briefly switching to a different input method and back.
The log files show "IME died" and "android.os.DeadObjectException" when this happens. This is outside my code, as far as I know the system should restart the IME but this sometimes doesn't appear to happen.
This keyboard layout was originally designed for tablets, so it's unavoidable that the keys will be rather small on phones. By default it'll revert to the standard 4-row (10 keys across) Gingerbread layout on phones when in portrait mode. You can change that in settings but I don't recommend it.
Note that the key height is adjustable, you can configure the overall keyboard height as a percentage of screen size in settings, with two separate settings for portrait and landscape mode.
There's also a separate config setting for the key label sizes, this is useful if the key symbols are too small or too big due to your device's pixel density settings.
Recent Android versions (starting from Honeycomb / 3.0) do include support for the Ctrl-X/C/V/A shortcuts in EditText widgets and other common dialogs, and this generally works with Hacker's Keyboard.
Support for the extra keys varies by application. The keyboard just sends key events, and the application receiving the key events is responsible for acting on them, and typically applications ignore unknown or unexpected key events, or (in unfortunate cases) misinterpret the keystrokes to launch menu shortcuts or similar.
If possible, try attaching a USB or Bluetooth keyboard to your Android device to see if the corresponding keys work with a real hardware keyboard. If that also doesn't work, it'll most likely require a change to the application before a soft keyboard such as this one can support them. If it works with a real keyboard but not with the Hacker's Keyboard application, please file a bug.
Developers: see KeyboardSupportInApplications for more information.
You can send a crash report through the Android crash reporting tool, this will give me some basic anonymized data about the crash location and an indication how often a problem occurs, but isn't always sufficient to figure out what's going on. If possible, please include details how to reproduce it, and information about your phone and Android version, those aren't included in the automatic report. If you want me to respond, please make sure to include your email address in the text.
It's easiest for me to handle if you file a bug, that helps avoid losing track of things and lets me easily send progress updates. You can also just send me email if you don't want to use the issue tracker.
For crashes and similar issues, I'll most likely need system log information to figure out what's going on if I can't reproduce the bug. See HowToAccessSystemLogData for more information how to get this data from your phone.
Unfortunately, this isn't generally possible. Hacker's Keyboard could give up control and activate a different input method in portrait mode, but this would be irreversible. The user would need to re-activate Hacker's Keyboard manually to use it again, or the other keyboard would need to cooperate by implementing its own logic to switch keyboards back.
The reason for this is that the Android operating system enforces security restrictions for input methods that are intended to prevent malicious applications from intercepting user input. See the "Security" section in the InputMethodManager documentation for details.
Keyboard switching would be possible with modifications at the operating system level, for example on a phone running custom firmware, but that's beyond the scope of this application.
Some users have reported success using the application "Keyboard Manager" which requires a rooted phone. I haven't tried this myself.
This is still a work in progress, though the current version now supports most of these. I'll need help from users to support languages where I wouldn't be able to tell if it's working correctly. Let me know if you think you can help contribute, here's the Spanish keymap as an example. The AddingNewLayouts wiki page has more details.
Note that the Gingerbread keyboard doesn't properly support dead keys that modify the next typed character (typing ´
and a
to get á
). Instead, the usual approach is to add the alternative characters to long-press menus. This may not work well for languages that have too many variations.
This is now available in the v1.20 Market release. Select "English (DV) [en_DV]
" in the Input Languages menu.
The ConnectBot application disables landscape mode by default on phones. Go to its main menu settings and set "Rotation mode" to "Automatic" to enable it.
I've proposed a patch for that project to add support, at this time it has not been applied yet so you'd need to build your own modified VNC viewer binary: http://code.google.com/p/android-vnc-viewer/issues/detail?id=238
Tickets: #13
Tickets: #17
Wiki: AddingNewLayouts
Wiki: BuildingFromSource
Wiki: HowToAccessSystemLogData
Wiki: KeyboardSupportInApplications
Wiki: UsersGuide
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: pspacm...@aol.com
I g0t this keyboard hoping it would fix my problem with the as400. I need the function keys f7 etc. This keyboard shows those keys but they do not work. So i still can't get on the as400 for my job.
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: Andreas....@gmail.com
I'd like to support this project. However, I am not a programmer. Are there other means of support appreciated, like a financial donation?
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: ofekshri...@gmail.com
What. Root should I use. On a Made In. Chaina !0". Tablet. With 1GH prosesor and android 2.2 withoout loosing my HEBREW lang that works pefectly on it?
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: gwj...@gmail.com
Would it be possible to make the keyboard semi-transparent?
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: megamart...@gmail.com
It would be nice if you program the function keys with strings
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: wdew...@gmail.com
pspacm...@aol.com
The terminal application may not support f7. The article talks about some applications not being able to handle extended keystrokes. You may want to look for a different terminal emulator or contact the author/vendor of the application you are using. You could also try a physical keyboard as suggested in the article.
Bill
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: orensn...@gmail.com
Can you add current layout changing by alt+Shift or Alt+Space key (for full USB hardware keyboard support)?
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: nbro...@slugmail.ucsc.edu
On your download page, there are two pictures of the keynoard being used with a ssh client. Which client is that?
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: Klaus.We...@gmail.com
the screenshots were using ConnectBot?
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: unknown...@gmail.com
Can you add a Colemak layout?
Last edit: Anonymous 2024-08-11
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: marcel.g...@gmail.com
"Would it be possible to make the keyboard semi-transparent?" x 2 PLEASE.
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: eric...@gmail.com
I want to use Dvorak on an external keyboard.... I see that Hacker's Keyboard supports Dvorak.... But would that also work from an external keyboard or only the Touchscreen keyboard? thanks!
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: behringe...@gmail.com
Thankyou for such a useful app, it's the first thing I install because my phone would be useless without it (ssh & shell work). I can't seem to find the Euro symbol though, neither in EnglishUK nor German. Thanks & keep up the good work.
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: juliodgr...@gmail.com
hi, excelent app. my default in sgs2. can you make it work with android 2.1? My Nook Touch is great with connectbot but lame keyboard. Thanks!
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: ktrof...@gmail.com
Perfect and comfortable keyboard. One issue only: for some reason, when I switch layout (both from English to Russian and back) by slidind space key, the very first letter I type appears underlined. Typing next letter erases first one. Thus, in order to type "key" word right after russian text I have to do the following: change layout, type "k" (actually I can type any key - it appears underlined and will be erased) then type "k" again (now not underlined) and "ey" to finish the word. Is it possible to fix this issue?
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: ktrof...@gmail.com
UPD: just read about issue 182 . Updated to version 1.30rc5 - now everything is fine!
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: jfeinsm...@gmail.com
I noticed mention of sliding text entry in the release comments, but cannot figure out how to enable it on the current release on Play Store. Is that feature in there, and how can I enable?
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: mlucas2...@gmail.com
This is by far the best keyboard I have used on android devices. My only question is it themeable? I'd kinda like an olive green / paramilitary look. Not that grren matrix crap a lot of keyboards use. Other than that it handles everything I do such as doc editing, ssh sessions, forum posting and it does a great job.
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: ralfmusc...@googlemail.com
Is there a way to enter Unicode characters with a known hex number (as e.g. in Linux, where one presses Ctrl-Shift-u, then the hex digits, then space)? Assuming, of course, that the device can display them.
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: jan...@gmail.com
I like the keyboard but the forward slash ( / ) is difficult. It's not available as a shift or long-press from any of the keys on the main keyboard and it's not an option on the Fn keyboard. The only way I can see the enter it is for the keyboard to think I need punctuation and tap the / there; problem with that is that it's kludgy. The back slash ( \ ) can be used from the main keyboard - why not the forward slash? Or am I missing something?
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: 00SV...@gmail.com
Could you plese make Ctrl key automatically switch language to english when pressed? It's needed to use Ctrl+key combinations with all languages(they work only with english)
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: HybridPo...@gmail.com
Nice keyboard, I use Dvorak layout, but layout does not work on a physical keyboard. For some reason I can not get Dvorak to work with anybodies keyboard software and physical keyboard....
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: techgee...@gmail.com
HybridPo?, try External Keyboard Helper. That's how I got Dvorak on my ASUS Transformer Pad. However, it would totally rock if Hacker's Keyboard gained remapping support for external keyboards, making for a seamless user experience.
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: mirandah...@gmail.com
I have a translator app on my Kindle fire. I am currently trying to learn Russian so I set the translator to translate Russian into English. While I was doing that the keyboard changed into the Cyrillic alphabet and I can't change it back. I don't know how it changed into Russian in the first place. Is there a way I change it back to english while still being able to use the Cyrillic keyboard sometimes?
View and moderate all "wiki Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Wiki"
Originally posted by: silvestr...@gmail.com
Swipe left to delete last word?