GmsCore icon indicating copy to clipboard operation
GmsCore copied to clipboard

[com.fabernovel.ratp ] Bonjour RATP NFC tickets don't work with MicroG (even with root hidden)

Open LeVraiRoiDHyrule opened this issue 2 years ago • 27 comments

Affected app Name: Bonjour RATP / IDF Mobilités Package id: com.fabernovel.ratp / com.applidium.vianavigo

Describe the bug (Bonjour RATP and IDF Mobilités are apps for parisian public transports) The behavior of both applications is the same, it is very highly probable that they use the same method of verification. It is impossible to buy and use any NFC tickets. Even with hiding the root, they both give this message : "Une erreur est survenue, merci de vérifier votre connexion réseau et réessayer" = "An error occured, please check your network connection and retry." I tested this error on multiple phones with multiple custom ROMs and Android versions, see below. It is the only apps to my knowledge to do this. Other NFC apps, like payment apps for my bank work perfectly once the root is hidden using Lsposed + Shamiko + Magisk. But not these ones. I found no information on this. Maybe some other apps for other countries are using similar verifications, but I couln't find one. I would be very happy for any answer and any help. Have a great day.

To Reproduce Steps to reproduce the behavior:

  1. Install one of these apps
  2. Do the initial configuration / Give all permissions asked
  3. Go to "Titres" (= Tickets)
  4. See the error

Expected behavior Apps should allow me to purchase and use NFC tickets

Screenshots image

System Android Version: 13 & 12.1 Custom ROM: crDroid 8.8, crDroid 9.1, ArrowOS

microG microG Core version: 0.2.27.223616 microG Self-Check results: All ticked

Additional context Any help is welcome, if experts see this, don't hesitate to try by yourself and tell if you get similar results. I would love hearing from you and help other people that will have this problem (because it will happen to everyone who uses microG and parisian transports)

LeVraiRoiDHyrule avatar Feb 17 '23 23:02 LeVraiRoiDHyrule

Hi, please catch logs of microG and those apps 🙂

Wojtaz0w avatar Feb 19 '23 15:02 Wojtaz0w

Which tickets are you buying? On phone or on Navigo Pass? You could get English interfaces by changing the system default language (temporarily), the screenshots of which would be easier for others to understand.

Iey4iej3 avatar Feb 21 '23 12:02 Iey4iej3

Could you please also adjoin screenshot(s) for IDF Mobilités? This might be more informative. I have never used mobile tickets, but after some clicks, it indicates me to install Mes Tickets Navigo.

Iey4iej3 avatar Feb 22 '23 09:02 Iey4iej3

I have the same exact issue with LineageOS. While other apps work totally fine.

FeAk24 avatar Jul 05 '23 12:07 FeAk24

I recently had a similar issue with the "IDF Mobilités" app on a rooted phone. After trying many things, such as upgrading Magisk to version 26 and reinstalling the app (after cleaning the cache), the application was still stuck, just like you experienced.

I then noticed that in the zygisk exclusion list, I was missing com.worldline.wallet:

magisk_navigo

After adding it, the process was not stuck anymore and I could buy tickets via NFC.

Perhaps you should check the exclusion list for anything related to "navigo" or "idf" ?

olivergg avatar Sep 20 '23 11:09 olivergg

Hi, I'm the original poster and I'm coming back to try to find a solution.

I haven't been able to get NFC tickets to work. NFC Navigo pass works, however. But I can't figure out if it doesn't work because my phone is a Xiaomi and not a Samsung, or if it doesn't work because of the custom OS, Root or something else linked to it.

Informations seems to contradict. This page says that all Android except a short list of Pixel phones is not compatible : https://www.iledefrance-mobilites.fr/titres-et-tarifs/supports/smartphone But this seems to suggest that it is only compatible with Samsung phones : https://www.samsung.com/fr/apps/samsung-pay/transport/

So I'm not sure where the problem is. What could help would be to know if people on Xiaomi with a stock OS succeeds to enable NFC tickets.

Do anyone has new informations on this subject ?

Thanks in advance for any answer.

LeVraiRoiDHyrule avatar Oct 12 '23 17:10 LeVraiRoiDHyrule

I then noticed that in the zygisk exclusion list, I was missing com.worldline.wallet:

I think that MagiskHide or Shamiko is necessary. It also seems sensible to add all proprietary apps (which do not need root) into this exclusion list.

Iey4iej3 avatar Oct 12 '23 19:10 Iey4iej3

I recently had a similar issue with the "IDF Mobilités" app on a rooted phone. After trying many things, such as upgrading Magisk to version 26 and reinstalling the app (after cleaning the cache), the application was still stuck, just like you experienced.

I then noticed that in the zygisk exclusion list, I was missing com.worldline.wallet:

magisk_navigo

After adding it, the process was not stuck anymore and I could buy tickets via NFC.

Perhaps you should check the exclusion list for anything related to "navigo" or "idf" ?

I have difficulty validating tickets. Do you succeed?

Iey4iej3 avatar Apr 22 '24 16:04 Iey4iej3

Hello, I have got the same issue with the IDF mobility application. The RATP reports a network failure. I use a rooted Samsung phone with Magisk. The Zygisk exclusion list, play integrity fix and Shamiko's module have not solved for me. Logcat show that the application is trying to run "su" and "busybox" programs. The "su" is correctly blocked by Zygisk. In my case, I have installed a busybox in /system/xbin/busybox. A call to this program in non privileged environment results of a "bad system call" exception in the application. Its differs of a "file not found" what is expected.

I have renamed the /system/xbin/busybox in something else, and since I am able to reload my navigo pass.

I suggest you to check if you have any program like busybox and temporary rename them.

grizzlyfute avatar Jun 11 '24 20:06 grizzlyfute

Hello, I have got the same issue with the IDF mobility application. The RATP reports a network failure. I use a rooted Samsung phone with Magisk. The Zygisk exclusion list, play integrity fix and Shamiko's module have not solved for me. Logcat show that the application is trying to run "su" and "busybox" programs. The "su" is correctly blocked by Zygisk. In my case, I have installed a busybox in /system/xbin/busybox. A call to this program in non privileged environment results of a "bad system call" exception in the application. Its differs of a "file not found" what is expected.

I have renamed the /system/xbin/busybox in something else, and since I am able to reload my navigo pass.

I suggest you to check if you have any program like busybox and temporary rename them.

Hi,

You were able to reload your navigo pass, and I can do this too. But were you able to use dematerialized tickets on your phone with microG ?

Has anyone ever succeeded to use dematerialized NFC tickets on either IDF Moblity, Bonjour RATP or SNCF Connect ? They all seem to use the same protocol and they all say my phone is not compatible. Which is wrong, I can pay with NFC without issue.

LeVraiRoiDHyrule avatar Jul 02 '24 10:07 LeVraiRoiDHyrule

Has anyone ever succeeded to use dematerialized NFC tickets on either IDF Moblity, Bonjour RATP or SNCF Connect ? They all seem to use the same protocol and they all say my phone is not compatible. Which is wrong, I can pay with NFC without issue.

The APP runs on my phone without reporting incompatibility (with Zygisk Assistant to hide root, and all these APPs along with "My Navigo Tickets" in the DenyList). However, I was unable to validate the tickets on my phone. It is possible that LineageOS is not supported.

Iey4iej3 avatar Jul 02 '24 12:07 Iey4iej3

Has anyone ever succeeded to use dematerialized NFC tickets on either IDF Moblity, Bonjour RATP or SNCF Connect ? They all seem to use the same protocol and they all say my phone is not compatible. Which is wrong, I can pay with NFC without issue.

The APP runs on my phone without reporting incompatibility (with Zygisk Assistant to hide root, and all these APPs along with "My Navigo Tickets" in the DenyList). However, I was unable to validate the tickets on my phone. It is possible that LineageOS is not supported.

Ok. So if I understand correctly, you mean that the app doesn't report any incompatibility so that means that you are able to buy tickets ? At what moment it does not validate ? When you put the phone on the NFC target ?

I have a travel to paris scheduled, and as I just succeeded at the moment to get passed the initial compatibility check, I assumed it would be OK. So you think I shouldn't rely on it ?

LeVraiRoiDHyrule avatar Jul 02 '24 13:07 LeVraiRoiDHyrule

Ok. So if I understand correctly, you mean that the app doesn't report any incompatibility so that means that you are able to buy tickets ? At what moment it does not validate ? When you put the phone on the NFC target ?

Yes, I succeeded to buy tickets, but it does not validate when the phone approaches the controler. I read the logcat, and there were errors about NFC. I don't know why it does not work.

I have a travel to paris scheduled, and as I just succeeded at the moment to get passed the initial compatibility check, I assumed it would be OK. So you think I shouldn't rely on it ?

If it does not work, you could simply buy a Navigo Easy (that was what I did then), and you can ask for reimbursement for tickets if it does not work.

Iey4iej3 avatar Jul 02 '24 13:07 Iey4iej3

Buying tickets on my phone with IDF Mobilités works for me with Lineage4microg + Magisk + Shamiko, I could validate tickets with no issues. It just stopped working for a bit, but I was suspecting PlayIntegrity Fix, disabling it made it work again. I'm on a OnePlus 7T.

jpoiret avatar Jul 15 '24 11:07 jpoiret

It just stopped working for a bit, but I was suspecting PlayIntegrity Fix, disabling it made it work again.

What stopped working? The validation or buying tickets on the phone? Maybe I could try to disable some modules to text during my next visit to Paris, say.

Iey4iej3 avatar Jul 16 '24 16:07 Iey4iej3

The whole feature stopped working, indicating that my phone wasn't compatible. I had to go through the activation procedure once I fixed it, which resulted in what I can only assume is a new Navigo card.

jpoiret avatar Aug 10 '24 10:08 jpoiret

I just tried out with Shamiko 1.2 and it does work after few application restarts. However, I lost all my tickets.

IT-ess avatar Jan 09 '25 15:01 IT-ess

I just tried out with Shamiko 1.2 and it does work after few application restarts. However, I lost all my tickets.

Does that work with Zygisk Assistant https://github.com/snake-4/Zygisk-Assistant, an open source root hiding module?

Iey4iej3 avatar Jan 10 '25 19:01 Iey4iej3

Here's my Magisk Module configuration. I'm running LineageOS 22.1 on a Fairphone 5.

Image

IT-ess avatar Jan 11 '25 09:01 IT-ess

Zygisk Assistant and Shamiko are both used to hide root. You only need one. For me, I would not use Shamiko because it is closed source, and I would not trust closed source Apps which require root, let alone Magisk modules.

Iey4iej3 avatar Jan 11 '25 12:01 Iey4iej3

Look like a new version of [My Navigo Tickets] 1.0.47.61 is generating problems :S previous version i was able to open any one with the same issue? msg: java.lang.RuntimeException: stacktrace: java.lang.RuntimeException: Unable to start service com.hidglobal.sdkalemu.HCESupportService@2e8e337 with Intent { cmp=com.worldline.wallet/com.hidglobal.sdkalemu.HCESupportService }: java.lang.RuntimeException: at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4686) at android.app.ActivityThread.-$$Nest$mhandleServiceArgs(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2181) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7942) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:854) Caused by: java.lang.RuntimeException: at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:343) at com.hidglobal.sdkalemu.HCESupportService.onStartCommand(Unknown Source:2479) at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4668)

any one using previous version to share the apk?

Thanks

asterlx avatar Feb 24 '25 16:02 asterlx

Well done @asterlx ! It was indeed a problem with the version of the ‘My Navigo Tickets’ app. The previous version (v1.0.46.60) works, you can install it via the APKPure app to install xapk extension : https://apkpure.com/fr/my-navigo-tickets/com.worldline.wallet/download/1.0.46.60

Osque avatar Feb 25 '25 10:02 Osque