KeePass and TOTP Authenticator for KaiOS on the Nokia 8110

Installing a KeePass and TOTP Authenticator client on KaiOS on the Nokia 8110 4G. In this case we will be porting existing webapps for KeePass and Google Authenticator to KaiOS and make them work on the Nokia device.

The KaiOS-powered Nokia 8110 4G is an amazing phone for a very good price. So much so, that I would really like to use it as my main phone.

However, there are two (open source) services on which I very much rely, and which are not available on the KaiOS platform for the Nokia 8110 4G (at least, at the time of writing this article). These services are a client for KeePass (password manager) and Authenticator an app for TOTP one time code generator for authentication.

I really need these apps, as it can always happen, that I need to log in to my accounts, and I have only my main phone with me.

In this blog post, I will present an alternative, which worked really well for me, and show you, how to install both a KeePass client as well as a TOTP authenticator (for example Google Authenticator) on your KaiOS device.

This will work on any KaiOS device, but I am going to do it on the Nokia 8110 4G. Let’s get started!

The Alternative

J2ME

One technology, I directly thought about, was having a J2ME app run on KaiOS. I am a big enthusiast of older devices, like Nokia Symbian or Blackberry Bold devices, and they all supported J2ME!

You could even run J2ME apps on the most primitive feature phones!

And of course, there were J2ME KeePass and J2ME Google Authenticator clients. For a KeePass client you had keepassj2me and for Time based one-time password generation you had totp-me.

I still have those programs around, they still work great!

That’s actually the thing about J2ME, in my opinion is was one of the best things to happen to mobile phones. A cross-platform system, that united feature phones from all brands! Only thing, it was apparently quite difficult to develop a J2ME app, because you had to make it work on an incredible range of devices.

Anyway, I am getting distracted. Of course there are emulators around, that are making J2ME apps work.

So, since the KaiOS platform does not have support for Java apps nor J2ME, the first thing I though of was a J2ME emulator for KaiOS on the Nokia 8110 4G.

J2ME on KaiOS

Apparently, there is a J2ME emulator available, it can be found here. It is called KAVA and can be installed, in a method I am describing here.

There is a big “however”, however. This emulator is still in beta, and for me after the successful installation, is was just hanging when I tried to start a Java -jar file on my KaiOS device.

I tried to mess with everything, but nothing really worked.

But there is a different, much more elegant solution!

The solution is a web app!

Of course! KaiOS is based on Firefox OS Boot to Gecko. It can run Web apps natively.

While it is really sad, that our Nokia 8110 4G running KaiOS can not run J2ME, Java or jar files, the Web App alternative is actually not a bad thing at all.

If you are not familiar with this technology, you can view this blog post as an introduction to WebApps on the KaiOS platform. Yes, it is sad that J2ME is dead, but WebApps have the capacity to also be truly cross-platform, and perhaps replace J2ME. In fact, Web Apps are already cross-platform!

WebApp introduction

Basically, you can think of a WebApp as just a website. It has all the necessary files (like .html, .css, .js etc.) and all the media (like text, images etc.).

However, this ‘website’ is scaled nicely, and has all its main content available offline, locally, on your KaiOS device. That’s it! There is just a couple of lines, that have to be added to an extra file, called manifest.webapp, to make the Soft Buttons as well as the D-Pad work correctly with your WebApp on your KaiOS device.

Talk about easy!

Actually, if you want to read a more in-depth article about this topic, I suggest this article, where I write about how to convert a WebApp to KaiOS, and how you can do it easily yourself.

KeePass WebApp for KaiOS

Ok, let’s get the KeePass client installed on your KaiOS device.

By the way, here is the homepage of the original developer: bitbucket.org/namn/browsepass/src/master/. Download it as a .zip file from here and unzip it.

Before installing it on your phone, create a file, in the root directory (where the index.html is), called manifest.webapp. In this empty new file post the following code:

{
  "name": "KeePass",
  "description": "A read-only, web-enabled version of KeePass.",
  "launch_path": "/index.html",
  "icons": {
    "512": "/img/icon-512.png",
    "128": "/icon-128.png"
  },
  "developer": {
    "name": "namn",
    "url": "https://bitbucket.org/namn/browsepassg"
  },
  "default_locale": "en",
  "chrome": { "navigation": false },
  "cursor": true,
  "ime_default_softkey_bar": true
}

Save this file, and deploy the WebApp with the method the method I am describing here (recommended).

What this file does, it just ‘tells’ the KaiOS system to enable the D-Pad cursor (so you can navigate the app) and enables the soft-keys (for example to exit a text field, which is kind of important). Alternatively, it would also work with OmniSD, but I haven’t tested that. In that case you should zip the app again.

Here are a few screenshots of a KeePass WebApp running on KaiOS:

KeePass icon in the launcher

KeePass icon in the launcher

KeePass WebApp running on KaiOS on the Nokia 8110 4G

KeePass WebApp running on KaiOS on the Nokia 8110 4G

In my experience this works very well, and is perfectly usable!

GAuth WebApp for KaiOS

For the TOTP authenticator WebApp the procedure is exactly the same. You can download it as a .zip file from here.

Again, credit goes to gbrad.

Paste this code into the manifest.webapp file:

{
  "name": "GAuth",
  "description": "A simple application which generates TOTP tokens when multi-factor authentication is used with your Google account. It implements RFC4226 (HMAC-based OTP) and has been tested to work with Google Authenticator, Dropbox, Dreamhost and Amazon.",
  "version": "0.9.9",
  "launch_path": "/index.html",
  "appcache_path": "/cache.manifest",
  "icons": {
    "16": "/img/icon_16.png",
    "48": "/img/icon_48.png",
    "128": "/img/icon_128.png",
    "256": "/img/icon_256.png",
    "512": "/img/icon_512.png"
  },
  "installs_allowed_from": [
    "*"
  ],
  "developer": {
    "name": "Gerard Braad",
    "url": "http://gbraad.nl"
  },
  "cursor": true,
  "ime_default_softkey_bar": true
}

Again, install it either with OmniSD or with the method I am describing here (recommended).

Here are a few screenshots of the GAuth WebApp running on KaiOS:

GAuth in KaiOS launcher

GAuth in KaiOS launcher

GAuth TOTP code generator in KaiOS on the Nokia 8110 4G

GAuth TOTP code generator in KaiOS on the Nokia 8110 4G

GAuth preferences KaiOS

GAuth preferences KaiOS

This app also works perfectly, as if it has been developed for this system.

Conclusion

It is very easy, to make WebApps work on KaiOS. Again, to read more about the latter check out this in-depth post. I really think very positively about the future of KaiOS and the concept of WebApps (thanks to Firefox, actually).

Anyway, if you have questions remaining, feel free to post them as a comment, or contact me. Also, feel free to tell me, if any of the links stop working, or something changes. Last but not least, I am happy to hear suggestions on how to make this process even easier.

comments powered by Disqus