Replies: 6 comments
-
Hi, impressive that you were able to enable Exposure Notifications, we have reports from other users that it's not possible when you sideload Google Play services. "Finish activation" is actually not related to EN API at all - it's calling Firebase Function (our server) and activates the device. Your setup probably is somehow blocking Firebase services - Firebase Functions & Firebase Authentication in this case. |
Beta Was this translation helpful? Give feedback.
-
OK, understood. Thanks for fast reply and explanation! So it looks like MicroG does not implement all the firebase interfaces eRouška uses. Or not so recent versions of it. Or maybe it even blocks some of the calls like you said. What can I do now? If I understand this problem correctly, the app is relying on proprietary firebase services. It is registering user on (or through) third party firebase servers and calls other functions through it. And there is no way around that in this app. I believe this defeats the purpose of the whole idea behind open-source app using EM API while preserving user's privacy. Please correct me if I'm wrong but it is perfectly possible to create this app without firebase. One would need to:
Firebase is in the end used just for push notifications and that can be optional. Am I missing something? Maybe I'm simplifying it too much and seeing it jako Hurvínek válku :) |
Beta Was this translation helpful? Give feedback.
-
Push notifications are optional. But our backend is not. We chose Google Cloud Platform as hosting, because the reference implementation was ready-made for GCP and it was easiest to integrate. Migrating somewhere else would be a major effort. The service from Firebase we are using for activation are these: |
Beta Was this translation helpful? Give feedback.
-
Again, thanks for fast replying! Here are my thoughts on privacy/security - I may be wrong. I think it is OK to use GCP and ready-made reference impl. as long as there is no way for third party (Google in this case) to connect particular user (e.g. with phone number / google account) with his exposure keys. And also the app (largely advised by government for wide usage) should not force people to use platforms not respecting their privacy. FirebaseFunctions are open source, FirebaseAuth sadly not. Therefore even when calling signInWithCustomToken we cannot be sure that closed-source implementation is not connecting user Google account with your custom generated registration token. What is this token used for, anyway? Just for getting covidStats and for pushNotifications? Maybe I'm missing something. FirebaseAuth is btw. probably the only thing (not sure though) which does not work on open-source Andorid systems including mine. If the only benefits are covidStats and notifications, its use could be optional in my opinion - what do you think? Here is full error log after taping 'finish activation':
I think the last log line is the real problem here. And one more note. I hope that hygiene workers don't use Google products to generate and send special SMS to users. If I understand the flow right, some 8-digit code from SMS is being sent to Thanks for being patient with me :) |
Beta Was this translation helpful? Give feedback.
-
The last line (instance id) is related to push notifications, not auth. They are indeed optional. Auth is needed for calling other Firebase Functions. It guarantees, that the function was called with the same account that called RegisterEhrid function during app activation. Currently we use it for two functions:
We are also thinking about new functions and Auth is important piece of security of those functions. |
Beta Was this translation helpful? Give feedback.
-
@kotelnik i had the same (un)success when i tried back then. FYI, the German CoronaWarn app does run with uG on LOS. |
Beta Was this translation helpful? Give feedback.
-
Hi, first of all, thanks for all your work in eRouška development!
I've installed LineageOS+MicroG on my phone (Sony Xperia XA2). It is basically open-source Android (yes, with some driver blobs) + open-source Google Play Services including FOSS implementation of Exposure Notifications API.
Steps to reproduce the bad behaviour:
Now screen shows animating loader, forever.
If both bluetooth and Exposure Notifications were already activated, taping "enable" does nothing and one cannot even get to see "finish activation" button.
So something is still missing for eRouška but the app doesn't show what it is.
I've checked, that Exposure Notifications API is serving IDs and I can even see (in phone settings) it captured some of my wife's ones. So this part should work as expected.
I'll gladly provide more info on demand so we can resolve this issue. Because such open-source app that is designed to value citizens' privacy shouldn't work just with proprietary protocol implementations.
Again, thank you! :)
Beta Was this translation helpful? Give feedback.
All reactions