microg / GmsCore

Free implementation of Play Services
https://microg.org
Apache License 2.0
8.2k stars 1.69k forks source link

Threema Push Notifications Problem #1334

Open michael1900 opened 3 years ago

michael1900 commented 3 years ago

Screenshot_20201223_141323_ch threema app

Last versions for both threema and gms obviously. Can't have threema registred for push notifications. Tried all workarounds founded. How solve this?

Huawei phone

@mar-v-in

michael1900 commented 3 years ago

There is a topic here: https://threema-forum.de/index.php?thread/6248-push-notifications-problem-with-microg/#post56970

You could direct the microg developers to the relevant lines in Threema's source code.

Here's the code that detects if Google Play services are installed: https://github.com/threema-ch/threema-android/blob/e8cdc1ee2384595fa74c7fbde96bb1e1a5f7cf22/app/src/main/java/ch/threema/app/utils/ConfigUtils.java#L563

Here you can see the version of the GMS libraries: https://github.com/threema-ch/threema-android/blob/e8cdc1ee2384595fa74c7fbde96bb1e1a5f7cf22/app/build.gradle#L385

@mar-v-in

mar-v-in commented 3 years ago

Please fill out the bug template when reporting bugs.

michael1900 commented 3 years ago

Last version: v0.2.16.204713 Not all, maked screenshots. @mar-v-in Yes, Yes

No problems with other apps like whatsapp, telegram, etc., all downloaded from Aurora Store and registred correctly. Seems like Threema can't see gmscore.

Screenshot_20201227_203347_com google android gms

Screenshot_20201227_203354_com google android gms

Screenshot_20201227_203611_com google android gms

mar-v-in commented 3 years ago

Signature spoofing is a requirement for correct operating of microG. Without signature spoofing, issues with push notifications and any other google services are to be expected.

michael1900 commented 3 years ago

Signature spoofing is a requirement for correct operating of microG. Without signature spoofing, issues with push notifications and any other google services are to be expected.

But all other apps like whatsapp, signal, telegram and so on works well; so how can i solve this problem? I have a huawei without google services, no root or similar, i need to solve in this way. I can't understand why only threema can't have push notifications work seeing gmscore. For all searches i have done, before, threema worked well with microg. So please help me to fix this problem, many here using this app, and many have huawei w/o play services. So what i need to do? You can surely fix this, please.

You could direct the microg developers to the relevant lines in Threema's source code.

Here's the code that detects if Google Play services are installed: https://github.com/threema-ch/…ils/ConfigUtils.java#L563

Here you can see the version of the GMS libraries: https://github.com/threema-ch/…f22/app/build.gradle#L385

@mar-v-in

michael1900 commented 3 years ago

Signature spoofing is a requirement for correct operating of microG. Without signature spoofing, issues with push notifications and any other google services are to be expected.

but many, really many, huawei users now are all using microg on their phone w/o play services so you will never see that signature spoofing option flagged. No custom rom world is this, so.

I think that with threema dev help you can fix this problem. Why signal, and other works well with push notifications.

I am so sad, really, so SAD.

@mar-v-in

michael1900 commented 3 years ago

Signature spoofing is a requirement for correct operating of microG. Without signature spoofing, issues with push notifications and any other google services are to be expected.

we need a way to spoofing signature directly in microg and not rom side, i can't see a better solution.

@mar-v-in

chris42 commented 3 years ago

You will need signature spoofing.

Other apps might work, as they have fallbacks to work without google services. E.g. like Whatsapp. You will notice it in delayed messages and not being counted in microg. I have no Huawei, so can't help with getting signature spoofing. But probably some closed issues might have tips, or the XDA forums.

michael1900 commented 3 years ago

You will need signature spoofing.

Other apps might work, as they have fallbacks to work without google services. E.g. like Whatsapp. You will notice it in delayed messages and not being counted in microg. I have no Huawei, so can't help with getting signature spoofing. But probably some closed issues might have tips, or the XDA forums.

Not always true, i downloaded whatsapp, telegram, signal from Aurora Store(so play store versions) and ALL using gcm and are push services registread in cloud! Indeed i have those 3 apps listed in Cloud messaging!

So i can't think that problem is strictly linked to signature spoofing.

In these days already done many many searches both xda and closed issue, plus google, but no one solution working.

@mar-v-in

chris42 commented 3 years ago

You will need signature spoofing. Other apps might work, as they have fallbacks to work without google services. E.g. like Whatsapp. You will notice it in delayed messages and not being counted in microg. I have no Huawei, so can't help with getting signature spoofing. But probably some closed issues might have tips, or the XDA forums.

Not always true, i downloaded whatsapp, telegram, signal from Aurora Store(so play store versions) and ALL using gcm and are push services registread in cloud! Indeed i have those 3 apps listed in Cloud messaging!

So i can't think that problem is strictly linked to signature spoofing.

Could you send a screenshot of the registered apps, with the timestamps of last received message?

michael1900 commented 3 years ago

You will need signature spoofing. Other apps might work, as they have fallbacks to work without google services. E.g. like Whatsapp. You will notice it in delayed messages and not being counted in microg. I have no Huawei, so can't help with getting signature spoofing. But probably some closed issues might have tips, or the XDA forums.

Not always true, i downloaded whatsapp, telegram, signal from Aurora Store(so play store versions) and ALL using gcm and are push services registread in cloud! Indeed i have those 3 apps listed in Cloud messaging! So i can't think that problem is strictly linked to signature spoofing.

Could you send a screenshot of the registered apps, with the timestamps of last received message?

Screenshot_20201228_002817_com google android gms

Screenshot_20201228_002828_com google android gms

Screenshot_20201228_003509_com google android gms

chris42 commented 3 years ago

From my experience this should not be possible. Without signature spoofing an app asking "Is the google service framework somewhere" cannot be answered by microg. Signature spoofing allows microg to answer looking like the google service framework. I am happy to be proven different, but this looks like a hot mess...

How did you install microg and did you try to install any gapps?

michael1900 commented 3 years ago

From my experience this should not be possible. Without signature spoofing an app asking "Is the google service framework somewhere" cannot be answered by microg. Signature spoofing allows microg to answer looking like the google service framework. I am happy to be proven different, but this looks like a hot mess...

How did you install microg and did you try to install any gapps?

Hi, what "should not be possible"? Never installed gapps, why i should?

Btw many with huawei phones without google use microg just right for Push Notifications for all apps not supporting HMS. And it works very well not only for messenger app but for many other apps.

michael1900 commented 3 years ago

@mar-v-in after all this, what i must to do?

chris42 commented 3 years ago

Hi, what "should not be possible"? Never installed gapps, why i should? Microg working without signature spoofing.

Some people try a lot and mixed installations with gapps and microg will do unpredictable things.

Btw many with huawei phones without google use microg just right for Push Notifications for all apps not supporting HMS. And it works very well not only for messenger app but for many other apps.

I guess these people install it correctly and have proper signature spoofing. As Marvin said above, it is required for proper function of microg.

mar-v-in commented 3 years ago

Google provides three push notification services: C2DM, GCM and FCM, in order of appearance. C2DM can be used without signature spoofing. GCM and FCM in general require signature spoofing, but there are ways to use them without.

In any case, the requirement for signature spoofing to use microG is from the apps, not microG itself. Signature spoofing must be provided by the OS. I can't provide support for microG on systems without signature spoofing (except if microG is used as a client library). Please direct this issue to whoever claims microG to be functional on Huawei without signature spoofing.

michael1900 commented 3 years ago

:(

michael1900 commented 3 years ago

So sad there is not a solution.. :(

token0 commented 3 years ago

So sad there is not a solution.. :(

Have you tried to modify your framework to enable signature spoofing? I can't say for others, but I did it this way: I used tingle to modify framework of my phone OS (to enable signature spoofing). Then I made a module for Magisk with modified framework files, so my system partition left intact. Also I made a module for Magisk with microG for myself, which I update occasionally. Just remember: keep it simple ;)

Another pretty easy way to make a Magisk module with modified framework (with signature spoofing) for your phone is to use a tool made by fOmey

rugk commented 3 years ago

C2DM, GCM and FCM, in order of appearance. C2DM can be used without signature spoofing. GCM and FCM in general require signature spoofing, but there are ways to use them without.

So WhatsApp and Telegram support C2DM apparently? As for the original issue's topic: Would you then suggest that Threema also adds a fallback/support for C2DM?

Filbuntu commented 2 years ago

I am new user of Threema and I also have a ROM with MicroG. I don't get any push notifications. Has somebody found a solution since last post a year ago?

Just now I switched to polling and hope this is a workaround albeit not an ideal one: You can choose whether or not you would like to use Google services for Threema’s push notifications: The option “Settings > About Threema > Troubleshooting > Activate Polling” allows you to use Threema without FCM. However, we don't recommend this.

rugk commented 2 years ago

I am new user of Threema and I also have a ROM with MicroG. I don't get any push notifications. Has somebody found a solution since last post a year ago?

Has not everything been said here? Try the troubleshooting tool in Threema for Threema Web or so. Look in microG whether Threema is registered and push notifications are received (you should see how long ago the last message was) etc. There is nothing more you can do.

Filbuntu commented 2 years ago

Thank you, @rugk, for your fast response and helpful hints. These and further tips on the Threema homepage enabled my phone to display notifications from the Threema app. As I don't (yet) get many messages/calls, I am not yet sure how reliable it is, though. And I am not sure if I want to trust Google's Firebase Cloud Messaging, though, or if it is safer to use the Threema polling service.

rugk commented 2 years ago

And I am not sure if I want to trust Google's Firebase Cloud Messaging, though, or if it is safer to use the Threema polling service.

As for Threema, only the date and time of sth. happening/a message being received are exposed to Google, nothing else is transmitted, i.e. the minimum possible data is transmitted there. :upside_down_face:

Filbuntu commented 2 years ago

As for Threema, only the date and time of sth. happening/a message being received are exposed to Google, nothing else is transmitted, i.e. the minimum possible data is transmitted there. 🙃

Thank you, @rugk, for the response! I trust Threema but not Go ogle 🙃. And as it is a service from them, I am not so sure 🙈.

sebastianmuell commented 2 years ago

I had a similar problem after using the patched playstore. I think the trick is to install Threema through the Playstore and have the version of GMS (gmsVersion in build.gradle) equal to the latest Google Services version, at least for me it's now working.

temporarium commented 2 years ago

I had this issue with Threema and Signal after moving to an Adroid 12 ROM. Nothing worked, except...

I installed the microG Installer Revived module for Magisk. After that Threema automatically re-registered, since it has that option when you disable polling. Signal I had to uninstall and reinstall (and restore from backup).

I think the issue may come down to microG Services and Framewok Proxy have to be systems apps.

Ammako commented 1 year ago

FYI: https://threema.ch/en/blog/posts/threema-push

For those who prefer to stick to using gms for notifications, do be aware that Threema will not properly recognize play services unless play store (or equivalent, must be com.android.vending) is present. It's not enough to just have gmscore/gsf. In OP's case they had it already, but for others reading this, don't skip it.