CovidCertificate Apps for Android

Overview

COVID Certificate Apps - Android

License: MPL 2.0 Android Build Wallet Android Build Verifier

This project is released by the the Federal Office of Information Technology, Systems and Telecommunication FOITT on behalf of the Federal Office of Public Health FOPH. The app design, UX and implementation was done by Ubique.

COVID Certificate App

COVID Certificate is the official app for storing and presenting COVID certificates issued in Switzerland. The certificates are kept and checked locally on the user's phone.

Get it on Google Play

COVID Certificate Check App

COVID Certificate Check is the official app for checking COVID certificates in Switzerland. The validation is executed locally on the phone and no information of the scanned certificates is saved.

Get it on Google Play

Contribution Guide

This project is truly open-source and we welcome any feedback on the code regarding both the implementation and security aspects.

Bugs or potential problems should be reported using Github issues. We welcome all pull requests that improve the quality of the source code. Please note that the app will be available with approved translations in English, German, French, Italian.

Repositories

Installation and Building

Make sure to properly check out the submodule: git submodule update --init.

The project can be opened with Android Studio 4.1.2 or later. Alternatively, you can build the respective apps using Gradle:

$ ./gradlew verifier:assembleProdRelease
$ ./gradlew wallet:assembleProdRelease

Note that in order for that to work, you must have set up your own keystore.

The APK is generated under app/build/outputs/apk/prod/release/app-prod-release.apk where app is one of: verifier, wallet.

Reproducible builds

To verify that the app distributed on the Play Store was built by the source code published here, please see the instructions in REPRODUCIBLE_BUILDS.md.

License

This project is licensed under the terms of the MPL 2 license. See the LICENSE file for details.

Comments
  • Self verification button used for verification

    Self verification button used for verification

    This is a question that I'm not sure where else to put and didn't find much information about.

    Recently more and more people are not using the scanner app but the self-verification button to control my certificate. This doesn't seem right to me though. I mean someone could use the code here, remove the verification and then has a 'valid' certificate.

    Can you confirm whether this is how this button is intended to be used?

    Maybe this option needs to be rethinked.

    opened by panmona 61
  • F-Droid inclusion

    F-Droid inclusion

    Hi, is it OK if we add this app to F-Droid? It seems to be fully FOSS so it would be good to be on there.

    Would you accept a PR to add Fastlane metadata? Cf https://gitlab.com/snippets/1895688

    Thanks for your work and for releasing it as free software :)

    opened by Wv5twkFEKh54vo4tta9yu7dHa3 52
  • F-Droid build failed

    F-Droid build failed

    https://github.com/admin-ch/CovidCertificate-SDK-Android/pull/47 replaced module with jar. How to build the jar from source? When will it be available in Maven Central? Thanks!

    opened by linsui 24
  • F-Droid build failed

    F-Droid build failed

    FAILURE: Build failed with an exception.
    
    * What went wrong:
    A problem occurred configuring root project 'CovidCertificate'.
    > Could not resolve all artifacts for configuration ':classpath'.
       > Could not resolve ch.ubique.gradle:ubdiag-android:7.0.2.
         Required by:
             project :
          > No matching variant of ch.ubique.gradle:ubdiag-android:7.0.2 was found. The consumer was configured to find a runtime of a library compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '7.0.2' but:
              - Variant 'apiElements' capability ch.ubique.gradle:ubdiag-android:7.0.2 declares a library, packaged as a jar, and its dependencies declared externally:
                  - Incompatible because this component declares an API of a component compatible with Java 11 and the consumer needed a runtime of a component compatible with Java 8
                  - Other compatible attribute:
                      - Doesn't say anything about org.gradle.plugin.api-version (required '7.0.2')
              - Variant 'runtimeElements' capability ch.ubique.gradle:ubdiag-android:7.0.2 declares a runtime of a library, packaged as a jar, and its dependencies declared externally:
                  - Incompatible because this component declares a component compatible with Java 11 and the consumer needed a component compatible with Java 8
                  - Other compatible attribute:
                      - Doesn't say anything about org.gradle.plugin.api-version (required '7.0.2')
    

    Could you please take a look? Thanks!

    opened by linsui 13
  • Cannot find the app

    Cannot find the app

    A lot of comments on the Playstore say that the apps cannot be founded. And it's true. If you search "covid certificate" you can find only "swiss covid" app. Neither the wallet and the checker can be founded.

    opened by steveacab 8
  • Support certificates from other countries

    Support certificates from other countries

    When importing my German QR code it shows all the data, but also a "Certified with invalid signature" warning.

    From what I understood there is a PKI with a Europe-wide root CA, so I guess it should be easily possible for the app to trust all certificates with signatures that can be tracked to that root CA.

    opened by ThiefMaster 7
  • Name not showing in Singapore-created EUDCC

    Name not showing in Singapore-created EUDCC

    Hi!

    I am based in Singapore and recently our government and EU have treated either certificates as equal. I am trying to store the Singapore-produced QR code to the app but got a null null as my name. All the other data seems to be the same compared to this test data. The Covid Check seems to be showing my details just fine but not the Covid Wallet/Cert

    Environment

    App Version 3.1.0 Android 10 EMUI 10.1.0 build 10.1.0.298

    Just want to raise the issue in case it hasn't been noticed before, but realized the implementation is not that long ago.

    Really great work by the way, love that the app is open sourced on Github!

    enhancement 
    opened by ministiy 6
  • Building APKs

    Building APKs

    Is there any possibility to build the APKs? I do always get strange error messages:

    `Could not determine the dependencies of task ':wallet:compileAbnDebugJavaWithJavac'.

    Could not resolve all task dependencies for configuration ':wallet:abnDebugCompileClasspath'. Could not resolve project :sdk. Required by: project :wallet > project :common > No matching configuration of project :sdk was found. The consumer was configured to find an API of a component, as well as attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'debug', attribute 'version' with value 'abn', attribute 'org.jetbrains.kotlin.platform.type' with value 'androidJvm' but: - None of the consumable configurations have attributes.`

    Keystore and everything is set up properly!

    opened by dominikponniah 6
  • Forged Certificate gets validated

    Forged Certificate gets validated

    Due to a bug in the QR decoder, forged QR Certificates get validated.

    This bug is similar (if not equal) to ministero-salute/it-dgc-verificaC19-android#185 and it can be reproduced as follows.

    Valid Certificate

    QR Valid

    IMG_20211104_201430_883.jpg

    This QR code has the same data as the one below. Sadly it gets validated in the Swiss Covid Checker app.

    Invalid Certificate

    Invalid QR

    Note that, when decoded with zbar, both QR codes have the same data contained.

    Hypothesis

    This feels like a QR Decoding issue. We're discussing it at denysvitali/covid-cert-analysis#9 and at ministero-salute/it-dgc-verificaC19-android#185

    opened by denysvitali 5
  • Doesn't have a valid signature?

    Doesn't have a valid signature?

    Hi,

    At my build, I get "The COVID certificate does not have a valid signature" message on the result screen.

    Same QR Code, but there is no that kind of alert/error message on the official android app.

    question 
    opened by BarisGURENC 5
  • Modify vaccination offset

    Modify vaccination offset

    Any way of changing the valid vaccination offset?? I tried to change it in sdk-android but i cant compile it and use it without the marven dependencies.

    question 
    opened by slamcoderpt 5
  • Unable to generate transfer code

    Unable to generate transfer code

    I have a Pixel 4 phone running an up-to-date Android 12 with the latest version of the Covid Cert app installed. When I attempt to generate a transfer code I get an error message: "Unable to generate transfer code. Please contact support." with a phone number. The person at the phone number could not help.

    Other functions of the app seem to work fine.

    Also, the app can generate transfer codes on a Pixel 3a running an up-to-date Android 12.

    opened by JozefJanovsky 4
  • Combination of cert and test cert

    Combination of cert and test cert

    The 2G+ symbole should get also blue colored if a test and another certificate is combined.

    I made the unfortunate experience that some certificate checking personal does not know that 2G+ can be acquiered if a test and a vaccine is combined. They where just looking if the 2G+ symbole was light up blue or not.

    opened by OdinSynergy 0
  • Make 3G, 2G, 2G+-Status more clearly visible

    Make 3G, 2G, 2G+-Status more clearly visible

    I use my smartphone quite often with a color filter / grayscale mode for not having to much screen time.

    In this situation the vaccination / test status (3G, 2G, 2G+) is due to the choosen colors not clearly visible. I guess this is similar for the iPhone Certificate App.

    Might it be possible to add something not depending on colors, i.e. e striketrough or something similar?

    Here is a sample image of the problem: grafik

    opened by jgrueter 1
  • Add a certificate light for 2G

    Add a certificate light for 2G

    Certificate light is currently not supported for 2G. In a 2G situation the certificate full needs to be shown. This violates the original purpose of having a certificate light.

    The certificate full reveals too much information. The details of the certificate full is not needed to check 2G.

    Implementation hint: It might be necessary to implement a second version of a certificate light to not impair the original certificate light.

    enhancement 
    opened by rhunger 0
Releases(v4.10.0-4100000-wallet)
Owner
Swiss Admin
Federal Office of Information Technology, Systems and Telecommunication FOITT
Swiss Admin
Using Android device to uninstall iPhone apps

Using Android device to uninstall iPhone apps

chi 23 Nov 6, 2022
A Frida based tool that traces usage of the JNI API in Android apps.

jnitrace A Frida based tool to trace use of the JNI API in Android apps. Native libraries contained within Android Apps often make use of the JNI API

null 1.1k Jan 7, 2023
repository for training UI of Android apps

AndroidUITrain repository for training UI of Android apps 定義されたcolor resourceの意味 使われている部分 color resource 名 ブランド追加ボタンの黒 zozo_black (微妙に真っ黒ではなかった) 画面上部の

みっちゃん 9 Dec 26, 2022
Inspection tools for native android apps

InspectElement This project was just an exercise based on Android Developer Assistant, I have used AccessibilityService for inspecting, You can change

AmirHosseinAghajari 4 Sep 9, 2022
🚀A powerful android clean architecture that helps you build your apps faster.

IMStudio ?? Table of Contents Project Structure Convention RxJava Common Scripts Technical Stack Dependencies Library Architecture Case Study Authors

Hau NGUYEN (Leo) 0 Nov 20, 2022
A powerful cross-platform UI toolkit for building native-quality iOS, Android, and Progressive Web Apps with HTML, CSS, and JavaScript.

Ionic Ionic is an open source app development toolkit for building modern, fast, top-quality cross-platform native and Progressive Web Apps from a sin

Ionic 48.4k Jan 3, 2023
The Sleep tracker app for lesson 6 of the Udacity: Developing Android Apps with Kotlin Course

App Architecture-Presistence This is the Sleep tracker app for lesson 6 of the U

null 0 Dec 28, 2021
An inline hook library for Android apps.

android-inline-hook README 中文版 shadowhook is an inline hook library for Android apps. shadowhook is a module of "the android-inline-hook project". Fea

Bytedance Inc. 818 Dec 30, 2022
AboutMe - From Udacity course Developing Android Apps with Kotlin

AboutMe App From Udacity course "Developing Android Apps with Kotlin".

Anas Tariq 1 Feb 11, 2022
SimplePaint - Simple Paint Android Apps with Kotlin

Simple Paint Android Apps with Kotlin About This Project Simple paint consists o

Feronika Nur Maghfiro 12 Dec 19, 2022
A GitHub user Android apps using Dagger 2, MVVM, Modularization, Clean Architecture, and Airbnb Epoxy

A GitHub user Android apps using Dagger 2, MVVM, Modularization, Clean Architecture, and Airbnb Epoxy.

Alva Yonara Puramandya 3 Dec 28, 2022
Simple Paint Android Apps with Kotlin

Simple paint consists of five actions, such as pencil, drawing a line, rectangle, ellipse, and color pallet with five colors, which is inspired with google color.

Feronika Nur Maghfiro 12 Dec 19, 2022
One UI libraries for Android apps.

⚠️ W.I.P. For Wear OS, please look at seslw. This repo contains a collection of the libraries used by Samsung in their One UI apps. Samsung's One UI a

OneUI Project 66 Dec 17, 2022
A package to include a standard Unlock premium view in iOS and Android apps

A package to include a standard Unlock premium view in iOS and Android apps

Groupe MINASTE 2 May 21, 2022
⚡️ A Compose-driven architecture for Android apps.

Circuit ?? Under construction ?? This project is very much a work in progress and far from finished! License Copyright 2022 Slack Technologies, LLC L

Slack 426 Jan 2, 2023
Shot is an Android project you can use to write screenshot for your apps in a simple and friendly way

Shot is an Android project you can use to write screenshot for your apps in a simple and friendly way. What is this? Shot is a Gradle plugin and

Pedro Gómez 1k Dec 30, 2022
Xposed module to set the Signature Scheme for Android 30 >= to 1. This allows system apps to be modified

SetSignatureSchemeV1 Xposed module to set the Signature Scheme for Android 30+ to 1. This allows system apps to be modified. This module makes the met

null 4 Sep 20, 2022
An Android base project building on MVVM Architecture Pattern. This can help you build new apps faster

MVVM Explanation If you can't imagine what is MVVM, please read my medium article here first. It can fully explain the revolution of Software architec

Danh Dev 29 Sep 21, 2022
Let Me Downgrade - Add support for downgrading apps on Android 12 and 13.

Let Me Downgrade Android's app installation system does not allow users to downgrade to an older version of an app when they already have a newer vers

David Berdik 29 Nov 17, 2022