Adventures of a Technomancer

Migrate from Google Authenticator to Authy - Android 5+

Google Authenticator hasn't been updated in 2 years and it's starting to show its age. It's an ugly, single device, no backups allowed authenticator with a tiny font.

Authy on the other hand is a better looking, multi-device authenticator with a large font.

I can also access the tokens for any account from a desktop computer when I flash new ROMs or Developer Previews which require user data to be reset.

So I'm making the switch, and here is how you can as well.


In order to migrate the 2FA tokens over to Authy without invalidating the old tokens you only need an Android phone with root access, and adb installed locally.

So plugin your phone and fire up a terminal/command prompt and enter.

adb shell
su
sqlite3 /data/data/com.google.android.apps.authenticator2/databases/databases

If you are running Android 5.0 or greater you'll most likely see this error message:

Error: only position independent executables (PIE) are supported.

The easiest way around this is to download an sqlite binary that's been compiled for Lollipop. I got mine from XDA.

Download and copy it to your downloads folder, then head back to the terminal/command prompt and copy it over.

su 
mount -o remount,rw /system 
cp /sdcard/Download/sqlite /system/xbin
mount -o remount,ro /system 

Now we're ready to get our data from the sqlite database.

sqlite3 /data/data/com.google.android.apps.authenticator2/databases/databases

The shell prompt will change from # to sqlite>

Enter in the select query

select * from accounts;

And you should get something similar to

1|gmail.com|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|0|0|0|Google|Google

2|github.com|xxxxxxxxxxxxxxxx|0|0|0|GitHub|GitHub

3|LastPass|xxxxxxxxxxxxxxxx|0|0|0|LastPass|LastPass


Now head over to http://goqr.me/#t=url and generate the a QR code for each account by using following URL pattern:

otpauth://totp/screenconnect?secret=XXXXXXXXXXXXXXXX

From here just scan each QR in to Authy, and select the relevant logo.

SME

Subject matter expert = he who touched it last

Gombert: A modular Python readability API

Gombert is an extensible and modular Python readability API which runs any text sent to it through popular readability metrics, some lesser known metrics and any custom made formula modules.

It was created in order to help analyse song lyrics gathered by lyrer because I needed an API capable of handling a large volume of rapid requests.

Gombert is written in Python, using flask as a base to handle data and dynamic routes.

Source is available on Github.

Gombert was created with the help of Kerry MR