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 68f9c812be
3 months ago
.circleci Adjust circleCI config to run screenshots on release candidates (DEV) #2193 3 months ago
.idea/codeStyles Re-add common codestyle (DEV) (#1534) 6 months ago
.pipeline admin/setup new internal release pipeline (#1371) 6 months ago
.reuse Switching from CLA to DCO and Migrating to the Reuse Tool (EXPOSUREAPP-3046) #2077 3 months ago
Corona-Warn-App adjust gradle versioning comment 3 months ago
LICENSES Switching from CLA to DCO and Migrating to the Reuse Tool (EXPOSUREAPP-3046) #2077 3 months ago
Server-Protocol-Buffer Create Instrumentation tests & screenshots for the Onboarding flow (EXPOSUREAPP-4478) #2015 4 months ago
docs more wording fixes 4 months ago
fastlane Create Instrumentation tests & screenshots for the Onboarding flow (EXPOSUREAPP-4478) #2015 4 months ago
fdroidrepo add fdroid build entry 3 months ago
gradle/wrapper Re-add gradle docs (DEV) #2020 4 months ago
icon add icon to repo 5 months ago
metadata add to 3 months ago
protobuf/build Format everything. (#308) 11 months ago
.editorconfig Ship a common codeStyle that matches KLint. (#1070) 8 months ago
.gitignore Merge upstream's release/1.11.x 3 months ago
.gitlab-ci.yml add CI 5 months ago add to 3 months ago
CODEOWNERS Change CODEOWNER for strings to UA team (#1828) 5 months ago init: cwa-app-android 2020-05-30 11 months ago Remove recommendation to create labels in new issues (COMMUNITY) #2122 3 months ago Add information about incompatible device message to FAQ 3 months ago
Gemfile Add fastlane Gemfile (DEV) #2028 4 months ago
Gemfile.lock Add fastlane Gemfile (DEV) #2028 4 months ago
LICENSE Switching from CLA to DCO and Migrating to the Reuse Tool (EXPOSUREAPP-3046) #2077 3 months ago Add information about incompatible device message to FAQ 3 months ago Fix url for SAP Trust Center (#1897) 4 months ago
build.gradle Pump versions - Android API 30 (EXPOSUREAPP-4562) #2063 3 months ago Bump to next Version (DEV) #2220 3 months ago
gradlew Switching from CLA to DCO and Migrating to the Reuse Tool (EXPOSUREAPP-3046) #2077 3 months ago
gradlew.bat Switching from CLA to DCO and Migrating to the Reuse Tool (EXPOSUREAPP-3046) #2077 3 months ago
prod_environments.json Update prod_environments.json (#1307) 7 months ago Create 4 months ago
settings.gradle init: cwa-app-android 2020-05-30 11 months ago Sonar setup (#191) 11 months ago
translation_v2.json Separate contact diary strings for trial run (EXPOSUREAPP-4242) (#1871) 4 months ago

Corona Contact Tracing Germany

Talk to us

Get The App

Our F-Droid repository contains beta versions and is updated with new releases immediately. After a few days, stable releases will also be available in the standard repo. You can also verify the builds yourself, see Reproducible Builds.

Get it on F-Droid


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.

While we've had many reports of users successfully running the app on various Android versions it's by far not as well tested as the official Corona-Warn-App. Use at your own risk! It should work on any Android 5+ device regardless of installed play-services or microg versions. Users have also reported Android 5 to be working overall, though is still quite beta.

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
  • Bulgarian contributed by Fen


The FAQ is also available in German.

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

Open the exposure logging settings by clicking on "Exposure logging active"/"Exposure logging stopped"/etc. section above your risk status on the main screen. From there, select "Open advanced settings". It'll magically take to to the correct (embedded or system) microG ENF settings page. If you're still unsure what to do, the video attached to this post may help you.

Alternatively, go to App Information (via the three-dot/kebab menu) and then tap on the ENF Version XYZ field. This will bring you to the same screen. This used to be the only option in earlier versions.

The microg exposure notification settings screen tells me that my device is only partially compatible. What does this mean?

If you see such a notice, your device is capable of collecting IDs from other devices, but not able to send any itself. In case you are infected and you decide to notify others, nobody will be able to receive your warning, unfortunately.

This is caused by a restriction in the combination of hardware and software that doesn't allow CCTG to make use of Bluetooth LE periphial mode. In some cases, a different operating system or newer OS version may bring a Bluetooth driver that has support for this advertising mode, which can fix the issue. In other cases, we don't know of anything you can do to resolve the issue.

Specifically, Fairphone 2 is affected by this.

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

Starting with version 1.9.1 this is expected, see the official 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.

How does the app manage to stay alive in the background? Didn't everyone say that's impossible?

The app was tested on a variety of Android ROMs and found to generally behave fine for background operations, with or without a system level microG version.

That said, there's some things you should check for everything to work correctly:

  • Some Android vendors are known to have very aggressive background killing services, you could check if this is the case for your ROM here: For some vendors there's also steps you can take as a user to make it work better.
  • Make sure the "Prioritized Background Activity" option in the app's settings menu is enabled.
  • Avoid to enable your phone's battery saving mode when possible. It's likely that this will make the scanning functionality less reliable.

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.

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.

When will updates be released? When is the app coming to F-Droid?

Shortly after an update to CWA is released, we will release a new version of CCTG. New versions are immediately available on our repo.

In the first stage of our "transparent staged rollout", the app is not marked as "suggested" yet, meaning that your F-Droid client won't recommend it as an update, though you can install it manually. We do this to be informed about crashes and other issues by users who knowingly choose to try out a version that might not be stable yet.

Once we feel that all issues are sorted out, we will mark the most recent version as "suggested", causing users of our repository to receive the update immediately (once their F-Droid client refreshes the repository).

After some time, the latest version also appears in the official F-Droid repository, though as usual for F-Droid, this can take a while. F-Droid will serve exactly the APK that we also have in our repo, because our app builds reproducibly.

You might want to follow our mastodon account, where we will announce new versions.

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.

CCTG says I need to update microG but this isn't working

Some ROMs come with a version of microG that is signed with a different key from the one the microG project distributes, in this case you need to wait for your ROM to update their built-in microG version before you can use the new CCTG version.

CCTG version 1.9.1.X needs microG at least version 0.215 to work. The previous version (1.7.1) needed at least version 0.2.14 but this wasn't enforced.

If you already updated you can try following this comment to see how to downgrade to 1.7.1 again. You can also uninstall CCTG and reinstall the older version. Your exposure data (but not pending or received test results) will be kept intact inside the microG installation. The app will start counting from day 0 again but this makes no functional difference.

Official Corona-Warn-App FAQ

See also here:

Reproducible Builds

See docs/ on how to reproduce the official builds.