German Corona App without proprietary Google libraries
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Marcus 6999b99711
4 months ago
.circleci Removed skipping for sonar scan for external PRs (#1601) 5 months ago
.idea/codeStyles Re-add common codestyle (DEV) (#1534) 6 months ago
.pipeline admin/setup new internal release pipeline (#1371) 6 months ago
Corona-Warn-App 4 months ago
Server-Protocol-Buffer Protocol Buffer update for release 1.9.x (EXPOSUREAPP-3674) (#1627) 5 months ago
docs add documentation on how to rebuild the apk 5 months ago
fdroidrepo II 4 months ago
gradle/wrapper Gradle Bump to 6.1.1 (#128) 11 months ago
icon add icon to repo 5 months ago
metadata II 4 months ago
protobuf/build Format everything. (#308) 11 months ago
.editorconfig Ship a common codeStyle that matches KLint. (#1070) 8 months ago
.gitignore add documentation on how to rebuild the apk 5 months ago
.gitlab-ci.yml add CI 5 months ago
CODEOWNERS Change CODEOWNER for strings to UA team (#1828) 5 months ago init: cwa-app-android 2020-05-30 11 months ago Update 6 months ago
LICENSE init: cwa-app-android 2020-05-30 11 months ago
NOTICE Admin: Update notice file (#1079) 8 months ago Readme: better repo linking. 4 months ago Fix url for SAP Trust Center (#1897) 4 months ago
build.gradle Update Kotlin/Coroutines (EXPOSUREAPP-3847) (#1728) 5 months ago Merge branch 'main' into release/1.9.x 4 months ago
gradlew Gradle Bump to 6.1.1 (#128) 11 months ago
gradlew.bat Gradle Bump to 6.1.1 (#128) 11 months ago
prod_environments.json Update prod_environments.json (#1307) 7 months ago
settings.gradle init: cwa-app-android 2020-05-30 11 months ago Sonar setup (#191) 11 months ago
translation_v2.json Translation (#552) 10 months ago

Corona Contact Tracing Germany

Talk to us

Get The App

  • Get it on F-Droid

  • Our F-Droid repository contains beta version and is updated earlier with releases. This repo will contain the same builds as the main repo, but they'll be available here a couple of days earlier. You can also verify the builds yourself, see #Reproducing out Builds.

  • Donate: Donate


This is a fork of CWA without proprietary dependencies. While the German Corona Warn App itself is Free Software, it depends on Google's proprietary Exposure Notification Framework. This fork instead uses the drop-in compatible microg implementation.

This is currently very experimental and mostly untested. Use at your own risk! It should work on any Android 6+ device regardless of installed play-services or microg versions.

If there's microg already installed on the system it will use the exposure notification framework from there. Otherwise it will use the bundled implementation. It will never connect to the play services exposure notification framework.


There's currently no translation system in place as most translation are taken directly from CWA. There's some small bits left to translate/fix for Romanian, Bulgarian and Turkish. Please contact us!

  • Polish Translations of our text additions contributed by GenomZ.


How do I access the microG exposure notitifaction settings in the standalone app?

Go to App Information (via the three-dot/kebab menu) and then tap on the ENF Version XYZ field. It'll magically take to to the correct (embedded or system) microG ENF settings page.

microG/CWA Companion shows some exposures but the app says there were none.

Starting with version 1.9.1 this is expected, see the offical blog post:

In simplified terms: Under Exposure Notification Version 2.0, the operating system also logs encounters with a risk lower than "low risk" (green). However, since these encounters are not relevant from the current epidemiological perspective, the Corona-Warn-App filters them out.

Do I need microG/signature spoofing for this?

No, this app bundles a standalone version of the microG implementation that will get used when there's no microG system installation found.

How long will it take to show a risk level?

For app version 1.7.1 this has taken 1-3 days for us. Starting with version 1.9.1 it'll show a risk level immediately.

Why does the app need location permission?

The app doesn't access GPS or Network location but Android considers bluetooth scanning a form of location access (because you could derive location information from the info you could get there), see here for details: CCTG doesn't do any location tracking though.

On Android 11 Google allowed the play services ENF implementation to do bluetooth scanning in the background without special location permission. CCTG isn't whitelisted of course and thus needs to still ask for full location permission in Android 11.

What is the difference to CWA?

The official Corona-Warn-App build contains a proprietary component to interact with the Exposure Notifications API, even if microg is installed instead of Google Play Services.

Corona Contact Tracing Germany replaces this proprietary component with a different library provided by the microg project, meaning that it is built as fully free software (in contrast to Corona-Warn-App).

Our app also ships with the relevant components to also function as a standalone app if microg is not installed.

Besides that, the project's main task is to keep changes related to branding (app title, icon, privacy policy, terms of service, imprint…) in sync with new upstream versions.

How to migrate from CWA

If you have been running CWA with google's exposure notification framework before, you'll have to use both apps in parallel for two weeks. After two weeks all past exposure data will have been deleted and all new data is also recorded by the CCTG app. If you have a positive test result, you'll have to report this through CWA until the two weeks are over. You can uninstall CWA after those two weeks. As far as we know there's no downsides to running both apps in parallel.

If you have been using CWA on a phone with microG migration is super simple instead: Just uninstall CWA and install CCTG, no exposure data will be lost in the process. The app will say that it has only been active for 0 days again, but this is purely cosmetic and does not have an effect on the exposure notification and reporting functionality.a

URSACHE: 3/CAUSE: 3 Something went wrong.

This is caused by the microG system installation being too old. You should have at least version 0.2.14 installed.

Reproducing our builds

See docs/ on how to reproduce the official builds.