immuni-app / immuni-app-android

Official repository for the Android version of the immuni application
GNU Affero General Public License v3.0
860 stars 146 forks source link

[FEAT] Aggiunta dell'app su F-Droid #143

Closed airon90 closed 2 years ago

airon90 commented 4 years ago

Non tutti gli utenti di Android usano il Google Play Store. Inoltre, essendo l'app pubblicata sotto licenza libera (AGPL 3) può rientrare in F-Droid, che è uno store gratuito e libero di applicazioni FLOSS. Qui potete vedere il processo di aggiunta dell'app

gabrielelucci commented 4 years ago

Non credo succederà mai. Per pubblicare l'app sul repository ufficiale di F-Droid, bisogna prima eliminare la dipendenza dai servizi Google, ma gli sviluppatori hanno già escluso categoricamente questa possibilità. Da quanto ho capito, questo è perché l'app basa il suo funzionamento su la "Exposure Notifications API", la cui implementazione principale fa parte dei servizi Google.

Qualcuno mi corregga se ho detto qualcosa di sbagliato.

enricocid commented 4 years ago

Non credo succederà mai. Per pubblicare l'app sul repository ufficiale di F-Droid, bisogna prima eliminare la dipendenza dai servizi Google, ma gli sviluppatori hanno già escluso categoricamente questa possibilità. Da quanto ho capito, questo è perché l'app basa il suo funzionamento su la "Exposure Notifications API", la cui implementazione principale fa parte dei servizi Google.

Qualcuno mi corregga se ho detto qualcosa di sbagliato.

Da quello che ho capito non c'è bisogno di usare librerie proprietarie di Google per accedere a queste notifiche. Per lo meno io non vedo la presenza di queste dipendenze nel build.gradle (app).

Bisogna registrare un receiver e rispondere a un broadcast trasmesso da da un intent

Mi sembra sia tutto gestito nell'app senza uso di librerie proprietarie di Google.

L'unica cosa che verrebbe presentata come "negativa" in una eventuale scheda dell'app su fdroid sono i permessi per accedere al bluetooth e internet. Per il resto dovrebbe superare la review del team senza grandi problemi.

Edit: come non detto, ci sono le librerie gms

Comunque consiglio di avviare il processo al più presto perché richiede parecchio tempo.

unbranched commented 4 years ago

Proprio come dice gabrielelucci, dall'app deve essere rimosso l'FCM di Google per potere essere inclusa in F-Droid. Le autorizzazioni bluetooth e internet non vengono segnalati come negativi. Nemmeno un'eventuale anti-caratteristica sul server sarebbe presente dato che anch'esso è opensource. L'unico problema sarebbe la mancanza di notifiche push in caso di contatto positivo, dato che non viene usato FCM. Le soluzioni possono essere l'utilizzo di un'API push come SSE (non credo che gli sviluppatori lo faranno mai) o obbligare l'utente a tenere una notifica fissa nella barra di stato (improbabile anche questo).

luciomarinelli commented 4 years ago

Da convinto sostenitore del software libero sono stato molto contento che un'app delicata come questa sia stata rilasciata con licenza GPL. Nel tentativo di liberarmi dal controllo delle multinazionali come Google, ho uno smartphone con sistema operativo /e/. Scaricando Immuni da Aurora store ho notato che per funzionare richiede Google Play Services, che in /e/ viene emulato da MicroG. Sono tuttavia riuscito faticosamente a fare a meno di GPS fin'ora e non intendo attivare MicroG per Immuni. Peccato, avrei usato e consigliato volentieri l'app, anche in veste di medico.

echeoquehaii commented 4 years ago

Da convinto sostenitore del software libero sono stato molto contento che un'app delicata come questa sia stata rilasciata con licenza GPL. Nel tentativo di liberarmi dal controllo delle multinazionali come Google, ho uno smartphone con sistema operativo /e/. Scaricando Immuni da Aurora store ho notato che per funzionare richiede Google Play Services, che in /e/ viene emulato da MicroG. Sono tuttavia riuscito faticosamente a fare a meno di GPS fin'ora e non intendo attivare MicroG per Immuni. Peccato, avrei usato e consigliato volentieri l'app, anche in veste di medico.

Utilizzo anch'io /e/ e purtroppo le posso confermare che neanche con microg impostato correttamente l'app può funzionare. Viene richiesta una versione aggiornata di Play Services non corrispondente con quella di microg.

A questo punto bisogna capire il motivo di questa richiesta, se è realmente necessario, o se il funzionamento dell'"Exposure Notifications API" è possibile anche senza l'ultimo aggiornamento del Google Play Services Framework. Sto cercando di informarmi ma ho avuto risposte alquanto varie.

Certo, sarebbe alquanto scandaloso se un'app di interesse nazionale (e mondiale) per il controllo di una pandemia dovesse sottostare a delle condizioni imposte da una (in realtà due) compagnia produttrice di software. Vorrei ricordare che ci sono numerosissime persone che hanno semplicemente telefoni non aggiornati, vecchi solo di alcuni anni, non reperti archeologici, sui quali l'app potrebbe funzionare senza problemi. Escludere certe persone dalla possibilità di utilizzare uno strumento che permette loro e le persone a loro vicine di non ammalarsi non è accettabile.

Ovviamente se questo fosse il motivo non dipenderebbe unicamente dagli sviluppatori di Immuni, è però una questione molto preoccupante.

Vorrei avere una risposta ufficiale dagli sviluppatori dell'app sulla possibiltà di avere una versione non dipendente dal Google Play Services Framework e, in caso non fosse possibile, una spiegazione.

airon90 commented 4 years ago

Non sono uno sviluppatore, sono solo appassionato di software libero. Ho fatto la richiesta di aggiunta su F-Droid e già sono comparse delle richieste. Qualcuno che sa di cosa si sta parlando potrebbe gentilmente trasformare questo commento in apposite issue o eventualmente rispondere su Gitlab a Izzy? :)

enricocid commented 4 years ago

Non sono uno sviluppatore, sono solo appassionato di software libero. Ho fatto la richiesta di aggiunta su F-Droid e già sono comparse delle richieste. Qualcuno che sa di cosa si sta parlando potrebbe gentilmente trasformare questo commento in apposite issue o eventualmente rispondere su Gitlab a Izzy? :)

I primi due vanno risolti a livello di repository. Fastlane va strutturata come spiegato qui e anche il primo problema credo sia risolvibile facilmente.

Io avrei lasciato fare agli sviluppatori direttamente.

IzzySoft (insieme a Poussinou) aiutò anche me con f-droid e la cosa richiede particolare attenzione quindi meglio che siano i dev a fare questa cosa. 😉

Dbof commented 4 years ago

Non credo succederà mai. Per pubblicare l'app sul repository ufficiale di F-Droid, bisogna prima eliminare la dipendenza dai servizi Google, ma gli sviluppatori hanno già escluso categoricamente questa possibilità. Da quanto ho capito, questo è perché l'app basa il suo funzionamento su la "Exposure Notifications API", la cui implementazione principale fa parte dei servizi Google. Qualcuno mi corregga se ho detto qualcosa di sbagliato.

Da quello che ho capito non c'è bisogno di usare librerie proprietarie di Google per accedere a queste notifiche. Per lo meno io non vedo la presenza di queste dipendenze nel build.gradle (app).

Bisogna registrare un receiver e rispondere a un broadcast trasmesso da da un intent

Mi sembra sia tutto gestito nell'app senza uso di librerie proprietarie di Google

Esatto, ma la funzionalità del "mandare notifiche" lo fa Google Play Services, e affinché gli "indipendenti" come Lineage etc. non mettono una loro versione di questo servizio, non funziona l'applicazione.

Vorrei avere una risposta ufficiale dagli sviluppatori dell'app sulla possibilità di avere una versione non dipendente dal Google Play Services Framework e, in caso non fosse possibile, una spiegazione.

Come già detto qui da @gabrielelucci ed altri, tutto dipende da Google per l'approccio decentrale. E quello senza il supporto del sistema operativo è difficile farlo. Certo, non ti fidi di Google, ma l'alternativa sarebbe di fidarsi del governo e di aziende private (come in Francia*). Finché usi Android, usi Google.

*Se ho capito bene, la Francia non usa le API ufficiali e ha un approccio diverso (centralizzato), che però non è compatibile allo standard D3-PT. In pratica tutti i dati finiscono su un server centrale.

Stypox commented 4 years ago

L'app di contact-tracing tedesca utilizza, come quella italiana, Google Play Services, ed anche lì c'è una issue aperta per togliere questa dipendenza: corona-warn-app/cwa-app-android#75 Gli sviluppatori tedeschi hanno consigliato di creare una fork della loro repository e implementare da zero le Exposure Notification APIs, la cui documentazione è aperta ma che non ha ancora implementazioni free-libere. È nato quindi CoraLibre, che sfortunatamente immagino sia però funzionante solo in Germania (correggetemi se sbaglio). Sarebbe possibile fare qualcosa di simile con Immuni, utilizzando ad esempio il CoraLibre-android-sdk? NB: CoraLibre non è ancora pronta

echeoquehaii commented 4 years ago

L'app di contact-tracing tedesca utilizza, come quella italiana, Google Play Services, ed anche lì c'è una issue aperta per togliere questa dipendenza: corona-warn-app/cwa-app-android#75 Gli sviluppatori tedeschi hanno consigliato di creare una fork della loro repository e implementare da zero le Exposure Notification APIs, la cui documentazione è aperta ma che non ha ancora implementazioni free-libere. È nato quindi CoraLibre, che sfortunatamente immagino sia però funzionante solo in Germania (correggetemi se sbaglio). Sarebbe possibile fare qualcosa di simile con Immuni, utilizzando ad esempio il CoraLibre-android-sdk? NB: CoraLibre non è ancora pronta

In teoria, tutte le app che sfruttano l'Exposure Notification API per comunicare dovrebbero poter comunicare tra loro. Questo è, sempre in teoria, il motivo per cui la maggior parte dei governi hanno deciso di "piegarsi a 90°" e usare quelle API. Quindi se l'SDK di Coralibre può comunicare con le API Google, dovrebbe comunicare anche con Immuni. Poi certo, le modalità con cui il SSN inserisce nell'app un eventuale contagio, sono diverse. Quindi al 99% chi usa Coralibre e dovesse risultare infetto non potrebbe segnalarlo. Può però sapere se è stato a contatto con altri che sono risultati infetti.

La cosa più assurda è che uno/due sviluppatori stanno lavorando a Coralibre nel loro tempo libero, quando un qualsiasi governo potrebbe con spese minime pagare uno o due altri sviluppatori per lavorarci a tempo pieno e renderlo funzionale il prima possibile. Invece si nascondono tutti dietro il "le API Google/Apple sono le uniche cross platform/device e quindi abbiamo scelto di usare quelle, non ci sono altre soluzioni Open Source". E questo è evidentemente falso, visto che qualcuno sta, apparentemente, riuscendo a creare un'implementazione Open Source del protocollo.

Sarebbe gradito, per non dire anche di importanza geopolitica, che tra tutti i governi dell'UE riescano a mettere insieme due spiccioli per pagare un paio di sviluppatori e sviluppare un SDK open source che possa comunicare con l'Exposure Notification API. Questa è, a mio parere, la cosa più scandalosa di tutta la questione. I governi vogliono mostrare trasparenza e rispetto della privacy no?

Dbof commented 4 years ago

Purtroppo non è così semplice come gli sviluppatori di CoraLibre pensino. Anche se si copia il protocollo di Play Services, per la maggior parte degli utenti si dovrebbe comunque installare un aggiornamento di sistema, ciò significa che i sviluppatori dei OS alternativi dovranno integrare l'applicazione. Questo perché Play Services (e anche CoraLibre) dovranno avere accesso di sistema, cosa riservata alle app firmate con le stesse chiavi crittografiche del sistema operativo.

Non fa senso spendere soldi da parte dei governi, perché la percentuale di gente con telefonini senza Google (o Apple) è minuscola. Non sono spese minuscole però, la App tedesca per esempio costa 20 milioni € nella sua "semplicità".

echeoquehaii commented 4 years ago

Purtroppo non è così semplice come gli sviluppatori di CoraLibre pensino. Anche se si copia il protocollo di Play Services, per la maggior parte degli utenti si dovrebbe comunque installare un aggiornamento di sistema, ciò significa che i sviluppatori dei OS alternativi dovranno integrare l'applicazione. Questo perché Play Services (e anche CoraLibre) dovranno avere accesso di sistema, cosa riservata alle app firmate con le stesse chiavi crittografiche del sistema operativo.

Che io sappia questo non è un problema

Non fa senso spendere soldi da parte dei governi, perché la percentuale di gente con telefonini senza Google (o Apple) è minuscola. Non sono spese minuscole però, la App tedesca per esempio costa 20 milioni € nella sua "semplicità".

Innanzitutto le persone con un telefono senza Google Play Services hanno pari dignità delle altre a "proteggere" sé stesse e i propri cari con una app simile. Ma qui nessuno sembra voler cogliere il quid della questione. Questo è solo un caso, ma è dimostrativo del grave problema della dipendenza dei paesi Europei dai servizi delle grandi aziende private dell'IT statunitensi. Non esiste alcuna alternativa Europea e, nel momento di richiedere a tali aziende un software di tracciamento trasparente e open source, queste hanno la forza di imporre condizioni ai nostri governi. Google integra il suo API nei Play Services, che sono closed source e il cui codice non è quindi auditabile (scusate l'inglesismo) e nessun paese dell'UE è capace di imporre a Google delle modalità più trasparenti. Tanto meno Apple. Questo è il punto. E il fatto che ci si debba affidare a un povero sviluppatore che lavora a gratis nel suo tempo libero, senza che nessuno dei nostri governi abbia pensato almeno a provare una soluzione del genere, in nome della trasparenza, rispetto della privacy, ma sopratutto indipendenza, è, come già detto, scandaloso. Possibile che nessuno riesca a rendersi conto della gravità della situazione dal punto di vista strategico e geopolitico?

Dbof commented 4 years ago

Google integra il suo API nei Play Services, che sono closed source e il cui codice non è quindi auditabile (scusate l'inglesismo) e nessun paese dell'UE è capace di imporre a Google delle modalità più trasparenti. Tanto meno Apple. Questo è il punto. E il fatto che ci si debba affidare a un povero sviluppatore che lavora a gratis nel suo tempo libero, senza che nessuno dei nostri governi abbia pensato almeno a provare una soluzione del genere, in nome della trasparenza, rispetto della privacy, ma sopratutto indipendenza, è, come già detto, scandaloso. Possibile che nessuno riesca a rendersi conto della gravità della situazione dal punto di vista strategico e geopolitico?

Concordo con te, ma questo è un problema politico e non tecnico. Non so per l'Italia, ma la Germania non investe e non ha investito abbastanza nelle digitalizzazione, negli startup digitali e nella infrastruttura. Quindi non solo l'accesso a Internet veloce è limitato alle città grandi, ma non ci sono gli aiuti necessari per far fiorire dei concorrenti alle ditte americane.

La situazione è cosi e per adesso dobbiamo accettarla cosi.

Innanzitutto le persone con un telefono senza Google Play Services hanno pari dignità delle altre a "proteggere" sé stesse e i propri cari con una app simile.

Si potrebbe dire lo stesso per la gente senza smartphone. Però Immuni e le altre app non sono per "proteggere". Sono per avvertire la gente e infine per aiutare il servizio sanitario nei paesi, soprattuto per il Contact Tracing, cioè tracciare tutti i contatti di un infettato. Questo succede comunque, anche senza app, perciò anche la gente che non usa la app usufruisce di questo servizio.

Comunque, sono d'accordo che ci vorrebbero più alternative ai servizi americani. Con OS alternativi (Lineage, Replicant) un utente esperto può liberarsi un pò da Google & Co., ma finchè non ci sono alternative serie e facili da usare, noi come esperti tecnici non possiamo cambiare molto.

echeoquehaii commented 4 years ago

Concordo con te, ma questo è un problema politico e non tecnico. Non so per l'Italia, ma la Germania non investe e non ha investito abbastanza nelle digitalizzazione, negli startup digitali e nella infrastruttura. Quindi non solo l'accesso a Internet veloce è limitato alle città grandi, ma non ci sono gli aiuti necessari per far fiorire dei concorrenti alle ditte americane.

La situazione è cosi e per adesso dobbiamo accettarla cosi.

Sisi certo, è una questione politica. Però da qualche parte bisogna portare a galla questo tema. Il fatto che in UE praticamente ogni stato stia sviluppando un'app diversa, che però può comunicare con le altre è però una questione sulla quale si può intervenire. Avremo 27 app diverse compatibili tra di loro quando potremmo dividere la spesa per 27, e utilizzare il resto dei soldi per altro, come ad esempio sviluppare un protocollo Open Source che possa comunicare con l'Exposure Notification API. E invece si lascia tutto in mano a poveri sviluppatori indipendenti che devono ritagliare spazio nel loro tempo libero.

Si potrebbe dire lo stesso per la gente senza smartphone. Però Immuni e le altre app non sono per "proteggere". Sono per avvertire la gente e infine per aiutare il servizio sanitario nei paesi, soprattuto per il Contact Tracing, cioè tracciare tutti i contatti di un infettato. Questo succede comunque, anche senza app, perciò anche la gente che non usa la app usufruisce di questo servizio.

Comunque, sono d'accordo che ci vorrebbero più alternative ai servizi americani. Con OS alternativi (Lineage, Replicant) un utente esperto può liberarsi un pò da Google & Co., ma finchè non ci sono alternative serie e facili da usare, noi come esperti tecnici non possiamo cambiare molto.

Anch'io sono d'accordo con te. L'unica cosa è che le persone senza smartphone difficilmente possono essere obbligate a comprarne uno, mentre lo sviluppo di un software compatibile con l'Exposure Notification API è non solo fattibile, ma sarebbe auspicabile per i vari motivi di cui abbiamo parlato. Per questo motivo mi batto perché venga fatto. O per lo meno che si provi a trovare le risorse per dare una mano a quei poveri sviluppatori che ci stanno lavorando su.

Certo, GitHub è luogo di discussioni tecniche, ma ora come ora è l'unico posto che ti permette di interagire con i diretti sviluppatori dell'app, visto che il ministero non fornisce risposte sul tema, o comunque non gli vengono poste queste domande da chi ne ha la possibilità. Quello che mi ha lasciato molto deluso è stato il comportamento degli sviluppatori di Immuni i quali, invece di approcciare la discussione e spiegare le motivazioni di certe scelte, si sono sempre limitati a un "le cose stanno così e non si possono cambiare". Mentre nei GIT di altre app nazionali le risposte sono state molto più aperte alla discussione e disponibili. Basterebbe un comportamento più aperto e trasparente, condividere scelte e opinioni, e noi utenti saremmo sicuramente più tranquilli. Ciò non toglie che nessun governo europeo ha mai aperto a una possibilità del genere ad oggi, non solo il nostro.

aciceri commented 4 years ago

Nell'ultima release di Microg si legge:

  • Adds support for Exposure Notifications API
    • This allows using COVID-19 tracing app

Questo potrebbe cambiare le carte in tavola? Comunque ho provato ad aggiornare microg ma Immuni (installato da Aurora Store) comunque mi dice che "Google Play Services isn't ready yet".

resoli commented 4 years ago

Screenshot_20200914-213336_microG_Services_Core Screenshot_20200914-213424_microG_Services_Core

Occorre attivare la funzione "Exposure Notifications" in microg apprendo l'app client (Immuni, in questo caso). Bluetooth e Geolocalizzazione vanno abilitati manualmente. Non serve abilitare alcun account google, e Immuni può essere scaricata da un playstore proxy come Aurora Store.

Stypox commented 4 years ago

Una volta che il progetto CoraLibre sarà finalizzato, proverò a buildare Immuni togliendo la dipendenza da Google Mobile Services e utilizzando quella libreria FOSS al suo posto, per renderla sperabilmente pubblicabile su F-Droid

resoli commented 4 years ago

Una volta che il progetto CoraLibre sarà finalizzato, proverò a buildare Immuni togliendo la dipendenza da Google Mobile Services e utilizzando quella libreria FOSS al suo posto, per renderla sperabilmente pubblicabile su F-Droid

https://github.com/microg/android_packages_apps_GmsCore/issues/1057#issuecomment-687127954

aciceri commented 4 years ago

Occorre attivare la funzione "Exposure Notifications" in microg apprendo l'app client (Immuni, in questo caso). Bluetooth e Geolocalizzazione vanno abilitati manualmente. Non serve abilitare alcun account google, e Immuni può essere scaricata da un playstore proxy come Aurora Store.

@resoli alla fine sono riuscito pure io, ho pero' dovuto installare anche l'applicazione FakeStore da F-Droid (cioe' Phonesky credo, mi sa che non e' nel repo di default, ma in quello di Microg) e dare i permessi di spoofing a quest'ultima dalle impostazioni di Android. Altrimenti prima dal SelfCheck dell'app Microg non mi dava tutte le spunte.

Aggiungo che sono su rom AOSIP (basata LOS 17.1, quindi Android 10) nel caso servisse a qualcuno l'informazione.

resoli commented 4 years ago

@aciceri si, io utilizzo il fork microg di lineageos, che ha già la pappa pronta ;-) sono anch'io su LOS 17.1 .

resoli commented 4 years ago

Per quanto riguarda il tema di questa feature request: https://github.com/microg/android_packages_apps_GmsCore/issues/1057#issuecomment-687207013

jnton commented 3 years ago

@Stypox di app su F-Droid ve ne sono svariate: LibreCHovid (fork di SwissCovid), Corona Contact Tracing Germany (fork di Corona Warn App - CWA) e TousAntiCovid (a quanto ho capito non è una fork dell'app di contact tracing francese ma è proprio quella ufficiale). La mancanza italiana è proprio grave, sopratutto adesso che l'applicazione serve anche per ottenere il Green Pass.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

resoli commented 2 years ago

Vedo che questo issue è marcato "wontfix". Una motivazione qualsiasi sarebbe gradita.

airon90 commented 2 years ago

A marcarlo wontfix è il bot che rileva automaticamente se c'è attività in un bug report o meno

resoli commented 2 years ago

La mancanza italiana è proprio grave, sopratutto adesso che l'applicazione serve anche per ottenere il Green Pass.

Concordo, nello stato attuale almeno l'app mantiene una qualche utilità. La presenza su F-Droid aiuterbbe.

resoli commented 2 years ago

A marcarlo wontfix è il bot che rileva automaticamente se c'è attività in un bug report o meno

Ok, grazie.

airon90 commented 2 years ago

@Stypox Riesci per caso a fare una versione completamente FOSS come suggerivi qui? Su Gitlab vogliono risposte

Stypox commented 2 years ago

Lo sviluppo di Coralibre non è più proseguito perchè microG è ora in grado di rimpiazzare i play services. Io non sono più interessato a rendere Immuni free and open source, perchè ormai il contact tracing non viene praticamente più praticato e io stesso non la uso più (il green pass lo si scarica anche ad esempio da https://dgc.gov.it).