Skip to content

Keyboard 67 v67.0.0

Latest

Choose a tag to compare

@Noorquacker Noorquacker released this 21 Oct 22:41

Keyboard 67 brings Nintype / Keyboard 71 to modern 64-bit-only Android phones.

The keyboard engine is Jormy's original closed-source 32-bit ARM library, which current phones (Pixel 7 and newer, recent Snapdragon/Tensor devices) can no longer run. Keyboard 67 ships a new native layer, ninbridge, that runs the original library inside an ARM32 → ARM64 JIT (based on dynarmic), with its libc, OpenGL ES and JNI calls translated to the 64-bit system. The engine itself is unchanged: same keyboard, same typing, same dictionary.

Install

Download keyboard67-v67.0.0.apk, install it, then enable Keyboard 67 under Settings → System → Keyboard → On-screen keyboard.

  • arm64-v8a (modern phones): runs through ninbridge.
  • armeabi-v7a (older 32-bit phones): runs the original library natively.
  • x86_64 (emulators, Chromebooks): runs through ninbridge.

This is a new app ID (com.nqind.keyboard67), so it installs alongside Keyboard 71 and doesn't share its settings or learned words.

Highlights

  • Works on 64-bit-only devices (tested on a Pixel 9a with Android 17).
  • Opens in about 0.6 s once the keyboard service is running. Ninbridge records which code it compiles and precompiles it in the background on the next start.
  • Typing costs about 3–10 ms of engine time per keystroke.
  • Renders on demand instead of 60 fps all the time, so an idle keyboard uses about 4% of a CPU core instead of about 50%.
  • Fixes a memory leak that came from a loader bug (unresolved IFUNC atomics) and crashed the keyboard after a few minutes of typing.

Known issues

  • The keyboard area can stay black after a phone call. This also happened with the original app. Workaround: close the keyboard (back gesture) and tap the text field again.
  • Memory use is high for a keyboard (roughly 450–600 MB), mostly JIT-compiled code and its bookkeeping.
  • This build is signed with a development key. A later build signed with a different key will require uninstalling this one first.

Technical details are in PORTING.md.

Nintype was created by Jormy. Keyboard 71 is by lurebat. Keyboard 67 is a free, non-commercial continuation to keep it usable.