Authenticators, Google or Proton

So I have about 100 authenticator codes in a Android device, both Google authenticator and Proton authenticator.
I installed both authenticators on Jolla, but either wont let import the codes from android phone. If it its Googles QR codes, the camera in Jolla is so bad that if it manages to read the QR code, the app then anyway says something “could not import”.
Then with the Proton authenticator it lets export the codes in JSON format, fine. But when trying to select the file in Proton authenticator on Jolla, the app wont let select the file from the Downloads folder.

So both authenticators are useless, and should I use some native Jolla authenticator? Yes if it could read the Proton Authenticator JSON for example. But no way I will start manually one by one adding 100 codes to Jollas native authenticators.

Is there any way to import from Google or Proton authenticator anything to any Jolla authenticator without manual one by one work? If no, I will be the 100th to put this phone in Tori.fi

1 Like

Never tried this before but just to get some more info, have you tried using the File Browser app to move the JSON file to “android_storage/Download”?

My Android apps can’t access SFOS’s Downloads folder (and I’m glad they can’t).

2 Likes

Exactly that I have done, but the file is not selectable from the Proton authenticator. It is in the android_storage/Downloads the app sees the file, but its grey etc.

1 Like

SailOTP and FoilAuth from OpenRepos (can be installed through Storeman) import tokens as QR codes. You still need to add them one by one, but scanning a QR code is much easier than typing manually.

3 Likes

You might need to adjust UID/GID.

Have you tried if you could import the codes to the Aegis for example?

1 Like

SailOTP stores its codes in a simple sqlite db under

~/.local/share/org.seiichiro0185/harbour-sailotp/QML/OfflineStorage/Databases

You can rewrite the JSON into SQL Insert statements, put them into that db, and then use FoilAuth’s “import from SailOTP” feature to store them securely.

It sounds like the json-to-sql task is something an AI could do well, it you don’t know how yourself.

This is the DB schema:

sqlite3 4acd30ace19590efd508
6b021bb4b5bd.sqlite .schema

CREATE TABLE OTPStorage(title TEXT, secret TEXT, type TEXT DEFAULT 'TOPT', counter INTEGER DEFAULT 0, fav INTEGER DEFAULT 0,
sort INTEGER DEFAULT 0, len INTEGER default 6, diff INTEGER default 0, period INTEGER DEFAULT 30);

If you post an example snippet from the JSON file, I’m sure someone can hack together a script to do that.

This python script can be a start, though it does something else:

There is also this python method which generates QR Codes from a Proton Authenticator JSON:

4 Likes

When I started looking for degoogle alternatives quite some time ago, and long before I heard of the new Jolla phone, I stumbled on the open source application called Aegis Authenticator.

I am still in the A→JP migration process myself, and I don’t know if it would work as the import proxy towards native Jolla authenticatorm but at least it could serve as the intermediate single home (instead of two separate apps) for 2FA tokens. It is more secure than the Google Authenticator as the tokens stay encrypted at rest even after the application is started [1].

I can confirm that the F-droid Aegis Authenticator is able to import an Aegis export from android_storage , but I don’t have Google Authenticator or Proton, so I can’t confirm if theirs would work. If I had to guess, then if you can export as file, odds are good as the Aegis import seems to support both formats (see screenshot), app import requires rooted android to start with, if I have understood correctly.
Maybe worth a try?

6 Likes

When I migrated years ago, I used an open source tool from Github which can convert the Google Authenticator export QR code to regular QR codes and plaintext. I then scanned all these with SailOTP to import them.

Sadly I forgot the name of this tool. And with 100 codes this might be a bit cumbersome.

EDIT: I believe this is what I used: GitHub - scito/extract_otp_secrets: Extract one time password (OTP) secrets from QR codes exported by two-factor authentication (2FA) apps such as "Google Authenticator". The exported QR codes from authentication apps can be captured by camera, read from images, or read from text files. The secrets can be exported to JSON or CSV, or printed as QR codes to console. · GitHub

4 Likes

Proton doesnt see your regular donwload-folder. You have to copy it to the android-sub-dir in your home-dir. Than it works.

I dont use GoogleAuth but could be the same solution.

1 Like

Looks like there’s already some alternatives mentioned, but I just used the native account sync in both and it worked to import everything at once. Though I do understand not wanting to login to a Google account.

2 Likes

that’s not true, Foil Auth can e.g. import multiple OTP secrets from otpauth-migration://offline?data= QR codes:

I’m not aware of any other standard for mass-exporting OTP secrets.

6 Likes

So, is there a way to import Stratum codes to FoilAuth or some no android app? I am not understanding if it is possible.

If you go to export your OTP keys from Stratum, what do you get? Does that not work? transferring codes is not just an issue for the importing app…


Hmm… Am I supposed to use GitHub - scito/extract_otp_secrets: Extract one time password (OTP) secrets from QR codes exported by two-factor authentication (2FA) apps such as "Google Authenticator". The exported QR codes from authentication apps can be captured by camera, read from images, or read from text files. The secrets can be exported to JSON or CSV, or printed as QR codes to console. · GitHub to generate QRs to scan with FoilAuth?

Hi,

Just for this Proton Authenticator. It sync did not work for me at start. Then I did logout after that I could not auth even other apps did work with internet. I did get DNS error “could not resolve”.
After that I restarted my phone and it did not work… after I set “connect trough wif to internet” it started to work.

So for now it seems like it do not resolve correctly with mobile network.