Contrac

Rating: 
5
Your rating: None Average: 5 (4 votes)

This is a very-much-alpha version of a contact tracing app compatible with the Google/Apple Exposure Notification protocol.

The app is being developed to be compatible with Germany's Corona Warn App servers. It's now possible to upload and download diagnosis keys. It's set to interact only with a test server right now, which is a deployment of the official cwa-server that doesn't perform any real contact tracing.

Feel free to upload/download as much as you want. The server will be shut down at some point in the future.

The app is still in development, and I don't recommend its use. It will likely affect your battery life and shouldn't currently be used as an alternative to the official app. However if you're brave and interested to test it, please let me know how you get on.

Because the app requires Bluetooth 4.1 or later, it unfortunaetly isn't compatible with Jolla 1 or Jolla C devices. I've also had reports it has problems on the Xperia X, but it should work on the later X devices.

Installing the app will install a background service that will continue to scan/broadcast even if you close the app. The service is stopped and uninstalled when you remove the app.

The source is available on github. PRs are welcome!

Application versions: 
AttachmentSizeDate
File harbour-contrac-0.0.1-1.armv7hl.rpm229.23 KB30/07/2020 - 22:54
File harbour-contrac-0.1.1-1.armv7hl.rpm236.98 KB09/08/2020 - 14:54
Changelog: 

Tue July 7 2020 David Llewellyn-Jones <david@flypig.co.uk> 0.0.1
- Initial alpha release.
- Supports beacon scan and send.

Sun Aug 9 2020 David Llewellyn-Jones <david@flypig.co.uk> 0.1.1
- Supports diagnosis key downloads from the test server.
- Supports diagnosis key upload to the test server.
- Adds a setting page for configurating the sever to use.

Comments

melvin's picture

Is it possible to use the official cwa servers with the new update? If yes, what are their IP addresses?

flypig's picture

Not yet I'm afraid. There are a couple more pieces of implementation needed, plus I don't yet have the official servers' addresses. It's slower than I'd like too, but there are many pieces that need to fit together and I'll continue releasing versions as it progresses. In the meantime, if you notice any issues with the test servers, that would be really useful to know about.

tmojo's picture

Have your app running now for several days and the counters for sent and receiced keys increased over the time, even when app UI was closed. So this seems to be working alright.
Today I had to restart my phone, due to AlienDalvik issues. After the restart the xounter says 1 beacon sent, 0 received. Does that mean the app looses all its beacon on reboot?

flypig's picture

Yeah, the counters are reset when you restart the device, but the captured keys are still stored. If you look in ~/.config/contracd/contacts you should find a bunch of files (two per day) storing the beacons you've received. It's roughly 20 bytes per beacon in the .dat files, so you can get an idea how many have been captured overall from the filesize.

I'm glad to hear it's running alright for you. Which device are you using?

meegouser's picture

"Because the app requires Bluetooth 4.1 or later, it unfortunately isn't compatible with Jolla 1 or Jolla C devices"

That's a bummer, since the Jolla Phone is still my only Sailfish device (apart from the Jolla Tablet, which is a bit too bulky to carry in my pocket). It is always said that "Bluetooth Low Energy", introduced with BT 4.0, is the base requirement for the (official) Corona-Tracking app, which the Jolla Phone does have implemented. So which necessity does BT 4.1 provide, that 4.0 doesn't?

flypig's picture

It is a bummer, and it's a good question too. The Jolla 1 has bluez 4 with a different interface for BLE to bluez 5 on later devices, so getting that to work (if possible at all) would be quite a challenge. The particular danger is that it would be time-consuming work for potentially no good outcome.

The Jolla C has bluez 5, so it's more tractable, but the short answer here is that I tried it out and it didn't work. It's possible It could be made to work with changes to the implementation.

The longer answer is that when I tested, bluez reported that it supported only a single broadcast beacon at a time. This meant that when I rotated the key for the second beacon, the broadcast request returned an error (even though I'd de-registered the first). But that's not the whole story, because I wasn't able to pick up any beacon from the first request, even though there was no error indicated for that one.

I'd love to support all devices and I created an issue for this on github; if someone who knows more about bluetooth is interested to look deeper I'd be very pleased: https://github.com/llewelld/harbour-contrac/issues/27

pvcn's picture

Yes, i also wrote you a Mail. After one Day, the App shows "Sent: 170, Receiced: 39" now

flypig's picture

Great, thanks for letting me know! The fact it's picking up beacons from others is a good sign. Next I'll need to activate the code that allows you to download keys from the central server to test whether those keys belonged to anyone who subsequently tested positive.

nobodyinperson's picture

Obviously, audio playback via bluetooth gets very stutterish when having "Scan and send active" selected.

flypig's picture

That's useful to know. It may be that this can be improved by regulating the frequency of broadcasts and scanning, but that's something I've not had a chance to explore. Could you please post an issue to github?

nobodyinperson's picture

Maybe you should add a hint to systemctl --user enable --now contracd. Otherwise, the GUI won't do anything, at least not in my case.

flypig's picture

Hmmm. This shouldn't be necessary, it should automatically start. I'll look into it. But that's good advice if it doesn't.

lispy's picture

Eagerly waiting for this app. Corona Warnapp would be key for this german family.

flypig's picture

Thanks, it's good to know there's interest and I hope this will turn out to be useful to you. Right now it's not an alternative to the official app, because not everything is implemented, but the hope is that it will be eventually.

pvcn's picture

Sorry to bother you with another question: Does this app run in the Backround or do i have to keep it open? Do i have to start it after every reboot? Thanks and regards Peter

flypig's picture

The app will run in the background (I'll add a note to the description about that), so you can close the app and it'll continue sending and receiving. However, if you reboot, you'll need to turn it on again, because I haven't yet implemented persistent settings.

pvcn's picture

Thank you very much, i'm from Germany and would like to test. I use an Xperia X Compact with a patched Version of SFOS for Xperia X, i hope it will work. Do i have to keep GPS activated for this App to Work?

flypig's picture

Thanks, your help would be really appreciated (did you also email me by the way?). It will be good to know if it works on an X Compact. There's no need to activate GPS, but it does require Bluetooth to remain active.

melvin's picture

Thank you so much for your work! I'd love to help and test - I'm from Germany with much human contact!

flypig's picture

Great! That sounds perfect :) Please do try it out, but bear in mind the warnings that it's still work-in-progress, so you should probably continue using the official app for the timebeing if you need the functionality. Please let me know how you get on.

objectifnul's picture

Please see the description of the app, first sentence.

flypig's picture

Ah, yes, I misunderstood. Thanks again, I fixed it now :)

objectifnul's picture

Perhaps "contact" would make more sense than "contract".

flypig's picture

Thanks for the suggestion. Contrac (it's supposed to be short for contact tracing) is just a working title, so I'm very open to ideas on this.

unmaintained's picture

Great to see it finally arrive on OpenRepos

flypig's picture

Thanks, but still with lots of warnings. It's taken a lot longer than I expected!

unmaintained's picture

"Sent: 2" means it seems to be working I guess? :)

flypig's picture

Ooh. That's a good sign, yes :) And good to know too, thank you. It'll send a new one every 10 minutes.

unmaintained's picture

Is this app supposed to be working just in Germany alone?

I see "Received: 3" nevertheless.

That's so exciting :)

flypig's picture

Ooh, I think you're the first person to ever receive a "real"  beacons with it :)

Whereabouts are you based?