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.
Fynn Godau 67b3ab8e42 Remove icon 29 minutes ago
.circleci Don't execute firebase screenshots everytime (DEV) #2455 2 months ago
.idea/codeStyles Re-add common codestyle (DEV) (#1534) 5 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 Merge pull request 'Change icon of encounters tab' (#106) from pr0gr8mm3r/cwa-android:encounters-icon into main 2 days ago
LICENSES Switching from CLA to DCO and Migrating to the Reuse Tool (EXPOSUREAPP-3046) #2077 3 months ago
Server-Protocol-Buffer Protocol Buffer update for release 1.15.x at Wed Feb 24 09:15:41 UTC 2021 (#2451) 1 month ago
docs rebuilding: mention --no-cache to get the latest version built 4 weeks ago
fastlane Enhance screenshots-FTL(EXPOSUREAPP-5250) #2426 2 months ago
fdroidrepo Add F-Droid build metadata for new version 2 weeks ago
gradle/wrapper Re-add gradle docs (DEV) #2020 3 months ago
metadata Update descriptions 2 weeks ago
protobuf/build Format everything. (#308) 10 months ago
.editorconfig Ship a common codeStyle that matches KLint. (#1070) 8 months ago
.gitignore add encounters button for external microg installation 1 month ago
.gitlab-ci.yml add CI 4 months ago Fill in changelog from upstream 2 weeks ago
CODEOWNERS Change CODEOWNER for strings to UA team (#1828) 4 months ago init: cwa-app-android 2020-05-30 11 months ago Add question about different risk status to FAQ #111 2 days ago
Gemfile Add fastlane Gemfile (DEV) #2028 3 months ago
Gemfile.lock Adjust Screenshots tests to reflect latest UI changes(EXPOSUREAPP-4878) (#2247) 2 months ago
LICENSE Switching from CLA to DCO and Migrating to the Reuse Tool (EXPOSUREAPP-3046) #2077 3 months ago Add question about different risk status to FAQ #111 2 days ago
build.gradle Upgrade klint plugin (Dev) (#2360) 2 months ago Version bump ( (#2645) 3 weeks 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 Replace URL placeholder for logupload (DEV) (#2577) 1 month ago Create 3 months ago
settings.gradle init: cwa-app-android 2020-05-30 11 months ago Sonar setup (#191) 10 months ago
translation_v2.json New release info screen strings (EXPOSUREAPP-4591) #2106 3 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.

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.

There's a card on my home screen telling 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, some operating systems on Fairphone 2 are affected by this, but it has also been reported that LineageOS contains a compatible driver.

My Encounters tab shows no IDs even though Exposure Logging is enabled. What can I do?

This usually means that the scanner service is getting stopped in the background.

  • Activate "Prioritized Background Activity" in the app's settings menu. This is most important.
  • Disable any other battery-saving services that your Android vendor is providing to you for CCTG. There is some information and instructions available on this website:
  • Avoid to enable your phone's battery saving mode when possible. It's likely that this will make the scanning functionality less reliable.

The scanner service should restart whenever you manually disable Exposure Logging and enable it again.

If you notice that scanning stops again eventually and you would like to contact us regarding this, it's best if you include details about your operating system and device vendor, as well as an indication that you followed the instructions above.

Can I use CCTG outside of Germany? What if I don't live there?

Yes! You can be warned about contacts in each of the countries that are included in this list:

You can not receive test results from these countries. In case you are infected, however, you may call the TAN hotline to receive a code that allows you to warn others.

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.

Additionally, we have the following "exclusive" features, though we are always willing to contribute our improvements back to CWA:

The project also has to keep changes related to branding (app title, icon, privacy policy, terms of service, imprint…) in sync with new upstream versions.

Due to an upstream decision, CWA's data donation (privacy preserving analytics, PPA) and survey features are not available in CCTG, as they require Google SafteyNet attestation. (cwa-wishlist/#356)

CWA shows some exposures but CCTG doesn't, or the other way round.

Both apps are periodically scanning for encounters in the background, but not exactly at the same time. Therefore, both apps can collect slightly different data and reach different conclusions about your risk status.

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?

This may be correct for iOS; for Android, the platform is supposed to allow you to grant exceptions from battery optimization procedures.

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.

On Android 11, it is necessary to explicitly set location access to Always enabled through the settings menu in order to enable Exposure logging. This video demonstrates how to do that.

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. Therefore, please be patient. 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.

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.

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

Since version, there is a bottom tab for the encounters graph from microg. If you however want to access the other microg Exposure Notification settings screens, you can still follow these steps:

Open the exposure logging settings by clicking on the "Exposure logging active" (or "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 (integrated or external) microG EN 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.

Official Corona-Warn-App FAQ

See also here:

Reproducible Builds

See docs/ on how to reproduce the official builds.