[RFC] AusweisApp - Sillica/Qt port based on the community original source

Hello everyone and especially everyone interested in a port of the German AusweisApp.

Please consider this post a Request for Comments as of now.

AI disclaimer: whenever I use “I”, “me” it actually means, me talking to Claude and generating code this way.

I’ve spent last 6 days on trying to first, add a SFOS target to the original Governicus’ code from the community branch on Github.

I followed this path until I was able to successfully build Qt6 runtime, the actual app, and it ended up thinking it’s a linux desktop.

To make it work like a card reader, I’d need to modify so many files that in the end I though it maybe is not the best idea.

Then I tried another path, taking the code from Governicus as “source” and just YOLO port it to my own repository, this time only taking the C++ code from them and editing it so it works smoothly on SFOS.

And it worked, two days later and a lot of back and forths I have a working app, on my Jolla Phone 2026, that at the moment of writing acts as a “Kartenleser” for my Linux original desktop AusweisApp, can change PIN and (according to tests, didn’t test it on real device with a real card) re-activate card with PUK/CAN.


EDIT: also, just tested it on bund.de, was able to login using that SFOS port as a card reader. I don’t really need any more :slight_smile:

I’m not ready to publish the code yet, first I will send it to an audit to some people I know would be able to tell me if it’s any good and safe, but I’d like to announce here that I’m working on something like this and check if there’s anyone interested in using this on your own phones.

Feel free to comment. If the audit from my “hacking buddies” goes well, I’ll publish the code on codefloe.com regardlless of what y’all think :wink:

EDIT2: https://codefloe.com/sznowicki-sailfish/ausweisapp-satama
EDIT3: Ausweis Satama | OpenRepos.net — Community Repository System

17 Likes

awesome, great work :ok_hand:t2::winking_face_with_tongue::smiley::clap:t2::clap:t2::clap:t2:

i would like to try it. If possible, you should try to publish to jolla app store - don’t know how the design is currently and if sandboxed is reachable

2 Likes

It’s sandboxed. Fortunately it only needs to listen to UDP/TCP ports which sandbox allows. The code is still unreviewed so not ready to publish. After my own review plus people who know more than me I’ll publish it and perhaps also release in Openrepos. Jolla might be a good idea too.

2 Likes

i can help you with that if you want: you should release at least on Jolla app store and CHUM - as you want someone to trust in this app we need app stores with some restrictions / quality goals - oprnrepos might not the right place for that :slight_smile:

1 Like

To my mind every app that fits the Jolla store regulations shouldn’t be on Chum or OpenRepos at all, especially when it comes to such personal data like ID and Banking.

4 Likes

IMHO what matters more is having the code published and rpm files being created with CI/CD so people can verify what is the code actually doing and whether the packages fingerprints/contents match what would be expected. Whether it’s in OpenRepos, Chum or Jolla is a secondary thing to me as it wouldn’t prevent a real malware of entering, if crafter properly.

2 Likes

Exactly. Chum is ideal, but I try to go with tags driving repository ci (github actions → release) followed directly by chum. That’s still two points where something can go wrong via the ci. On harbour, you may have ‘eyes’ on it, but you can’t establish how it was built or where the code came from.

2 Likes

Today is the evening I can publish the code. It has not been changed since my last posts. Feel free to check it out, all contributions welcomed (including AI driven, as long as you vouch you understand what you’re doing and offer small PRs).

3 Likes

Page have a browser check. Stock jolla browser too old and cant access. Info.

Post unclear. The app doesn’t support logging in within a SFOS browser, for now it only acts as a card reader, you need a desktop app to init login.

1 Like

Your link doesn’t work in sailfish stock browser, that’s the intention of the post…

1 Like

well, that’s unfortunate, let’s wait some few months, maybe we will get some browser that is not outdated. We can also use other browsers that are available.

1 Like

Did you publish the app anywhere? I have a usecase now and would like to try it.

Here you go: Ausweis Satama | OpenRepos.net — Community Repository System

3 Likes

Yes, thank you. Reading my Personalausweis worked great, changing PIN also. But the AusweisApp on my Computer (Suse Linux SlowRoll) doesnt find my phone. My Computer is connected via cable with my router and not via WiFi (but JP is connected to WiFi on the same router). Is this a problem? Or could the problem lay somewhere else?

Only if your router makes it a problem - and only you can answer that.
And how is your home network setup on topic? (This is a rhetorical question it is not meant to be answered).

You didn’t use this app, did you? Could be, that there is a bug in the app, could be that I wanted to use something the app doesn’t support, could be I overlooked something. Pretty sure my home network setup can be an important to solve this question.

How does an app like the AusweisApp search the local network to find a device? So I have no idea at this point, what I search for on my router.

Gotta say; I cant really understand the “experimental” tag at open repos. I have tried so many times with my old Xiaomi Note 13 to read my Ausweis with the AusweisApp(2 (,if you know you know)) and wasnt able to get the Ausweis/NFC to function EVEN when using NFC on a daily base to tap to pay.

With the Jolla and the “experimental” software it worked in seconds, even using it as an USB reader.

Probs to that.

1 Like

You need to use the pulley menu (pull down) in the “Kartenleser” view and then the app goes into discovery mode (opens ports on 0.0.0.0 and listens), and only then it should be possible to pair with a desktop app. (assuming they can reach each other, same network)

Thank you so much!

I’m hesitant calling it non-experimental as this whole project was more “AI assisted” than I usually am comfortable with. It was hours and hours of sessions with LLM to read the original codebase, try things out, read the code, rinse and repeat.

Even though I learned a ton and I did some “best effort” checks on whether there’s something shady that could harm your card (think of changing your PIN accidentally) I’m not able to tell if there’s something I missed.

Even If I would be more experienced with C++ I would not be able to read all of this as it’s the biggest project so far in my SFOS journey.

For other apps like Hauler and Vapaamin I’m much much more familiar with the code and consider it “mine”, here’s is pure vibe coding where I act as a driver, tester and coach for the LLM and I want it to be clear and transparent.

For anyone interested in the LLM sessions details, It’s kind of documented here:

4 Likes