ministero-salute / it-dgc-verificaC19-android

VerificaC19 is the official Italian customization of the EU Digital COVID Certificate Verifier App for the Android Operating System
https://www.dgc.gov.it
Apache License 2.0
101 stars 54 forks source link

Release 1.3.3 : Risposta erronea (NOT_EU_DCC) in desugaring / Android Nougat #304

Closed rawmain closed 1 year ago

rawmain commented 1 year ago

Describe the bug

Utilizzando :

in condizioni desugaring API <26 (quindi con API24 - Nougat 7.0 e API25 - Nougat 7.1), si riscontrano KO cborservice in runtime.

In tali situazioni il decoder/core restituisce null, per cui di conseguenza il validator di DGC-SDK restituisce CertificateStatus.NOT_EU_DCC , indipendentemente dallo status reale del certificato.

Technical details

Tale KO decoder/cborservice risulta dovuto ad un'incompatibilità tra alcune dependency definite per il modulo DGCA core decoder (ved. commit 4039792 - Nov 17, 2022 - in relativa main branch) e le impostazioni di conversione delle desugaring libs versione 1.1.5 - in uso per whitelabel-app + DGC-SDK.

Possible Fix

Dato che l'allineamento di whitelabel-app + DGC-SDK richiederebbe comunque modifiche sia delle versioni AGP/Gradle (desugaring libs 2.0.0 richiedono AGP 7.4.0) che di dipendenze e funzioni, propongo un fix in ottica "keep it simple".

Applica infatti un semplice override/revert di determinate dipendenze del modulo DGCA - incompatibili con condizioni desugaring libs 1.1.5 - allineando le versioni con quelle definite prima di tale commit & esenti da problemi per desugaring con whitelabel-app 1.3.3 + DGC-SDK 1.1.1 :

Dependency in DGCA core EU-DGC version forced version
com.fasterxml.jackson.dataformat:jackson-dataformat-cbor 2.14.0 2.12.3
org.jetbrains.kotlin:kotlin-stdlib 1.6.21 1.4.32
org.jetbrains.kotlin:kotlin-reflect 1.6.21 1.4.32
com.android.tools:desugar_jdk_libs 2.0.0 1.1.5

\ OK con API 24/25 e non ho riscontrato variazioni nei runtime-test effettuati finora con API 26->33. Effettuerò comunque per scrupolo ulteriori test con dispositivi fisici su API 32 e 33.

rawmain commented 1 year ago

Chiudo issue a seguito di esito positivo verifica fix + merge relativa PR.