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
103 stars 54 forks source link

Fix : Force Deps per OK decoder in desugaring #303

Closed rawmain closed 1 year ago

rawmain commented 1 year ago

cc @astagi / @it-eucert-team / @nicola-95



Problema Riscontrato

Utilizzando whitelabel-app release 1.3.3 + DGC-SDK 1.1.1 + DGCA core (main) 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 .

\ 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 .


Fix proposto

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" per il mantenimento di desugaring con minSdk <26.

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.

nicola-95 commented 1 year ago

Ciao, @rawmain.

Grazie mille per il tuo prezioso contributo. Abbiamo effettuato anche noi dei test con un device fisico avente Android 7 come versione dell'OS e con le tue modifiche, il problema che hai segnalato non ricorre più. Ti chiedo soltanto di aggiungere @astagi e me come reviewer della PR, in modo da procedere con il normale flusso di approvazione e merge del branch su develop.

Grazie ancora!

rawmain commented 1 year ago

Ciao @nicola-95

Grazie mille per il tuo prezioso contributo.

Prego ;)

Ti chiedo soltanto di aggiungere @astagi e me come reviewer della PR, in modo da procedere con il normale flusso di approvazione e merge del branch su develop.

Non posso purtroppo farlo, altrimenti avrei aggiunto sia te che @astagi in fase di creazione PR = il mio account non rientra tra quelli collaborator autorizzati in questa repo per personalizzare/modificare le review request.

astagi commented 1 year ago

Grazie infinite @rawmain !