chiteroman / PlayIntegrityFix

Fix Play Integrity (and SafetyNet) verdicts.
https://xdaforums.com/t/module-play-integrity-fix-safetynet-fix.4607985/
GNU General Public License v3.0
4.64k stars 243 forks source link

[SOLVED] Google Sans font module makes Google Play Services crash when using Play Integrity Fix and similar modules #245

Closed thatAkiraFox closed 7 months ago

thatAkiraFox commented 7 months ago

I used both this and osm0sis' version of this module and in both cases I face the same issue: Google Play Services crash.

When I try to add a card into Wallet or when I tap on the "Google" option in system settings either the app crashes (Wallet) or nothing happens (system settings), but the fingerprint I chose works fine as all but STRONG Play Integrity checks pass (and especially the infamous McDonald's app works).

Where should I start to fix this?

thatAkiraFox commented 7 months ago

UPDATE: the crash occurs just by installing the module.

Here's a video of the issue with the logs:

Dusk-Golem commented 7 months ago

I am facing a similar issue. I am using my custom fingerprint and everything works just fine with PlayIntegrityFix v15.2. When I tried v15.4 and osm0sis's fork v7, the Google Play Services Crash in case of v15.4 and for v7 of osm0sis's fork, device integrity fails while basic integrity is fine. Don't know what the issue is. Wasn't able to collect logs even after enabling verbose logging in osm0sis's fork. Tried the troubleshooting steps as well but no dice.

I am sticking to v15.2 for the time being with my custom fingerprint. My device is Galaxy A8 2018 running stock android 9.0 rom.. latest stable magisk 26.4.

thatAkiraFox commented 7 months ago

I am sticking to v15.2 for the time being

I tried all the way down to 14.9, even tried DEV-v2, but I always have this same issue.

osm0sis commented 7 months ago

@Dusk-Golem feel free to PM me on XDA and I'll help you figure out my fork; just sounds like a configuration issue to me.

@thatAkiraFox thanks for the log, interesting that this is such an old issue but obviously not very wide spread. Does your real device show up correctly in Find My Device, or is it the spoofed one? Also what do you mean by "when changing fingerprint"? There's nothing in your description related to that.

osm0sis commented 7 months ago

Filtered for *xception and see this 4 times at the end, so might be some issue related to a wearable you've got paired, or a GApps issue since you're on a custom ROM?

02-01 17:16:17.949  3503  9525 I Pay     : Not showing because of fetching paired watch exception [CONTEXT service_id=198 ]
02-01 17:16:17.949  3503  9525 I Pay     : java.util.concurrent.ExecutionException: aiwo: 17: API: Wearable.API is not available on this device. Connection failed with: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
02-01 17:16:20.359  3503  9556 I Pay     : Not showing because of fetching paired watch exception [CONTEXT service_id=198 ]
02-01 17:16:20.359  3503  9556 I Pay     : java.util.concurrent.ExecutionException: aiwo: 17: API: Wearable.API is not available on this device. Connection failed with: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
02-01 17:16:20.448  3503  9556 I Pay     : Not showing because of fetching paired watch exception [CONTEXT service_id=198 ]
02-01 17:16:20.448  3503  9556 I Pay     : java.util.concurrent.ExecutionException: aiwo: 17: API: Wearable.API is not available on this device. Connection failed with: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
02-01 17:16:20.579  3503  9519 I Pay     : Not showing because of fetching paired watch exception [CONTEXT service_id=198 ]
02-01 17:16:20.579  3503  9519 I Pay     : java.util.concurrent.ExecutionException: aiwo: 17: API: Wearable.API is not available on this device. Connection failed with: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
02-01 17:16:21.206  1250  2065 W NativeTombstoneManager: java.io.FileNotFoundException: open failed: ENOENT (No such file or directory)
02-01 17:16:21.268  1250  1660 W WindowManager: android.os.DeadObjectException
02-01 17:16:21.292  1250  1660 W WindowManager: Exception thrown during dispatchAppVisibility Window{5beeb4b u0 com.google.android.gms/com.google.android.gms.pay.main.PayActivity EXITING}
02-01 17:16:21.292  1250  1660 W WindowManager: android.os.DeadObjectException

I've got a Pixel Watch 2 paired on my rooted stock Pixel 8 Pro with PIFork v7 without issues, however... 🤔

thatAkiraFox commented 7 months ago

Does your real device show up correctly in Find My Device, or is it the spoofed one?

Just reinstalled the module with a PIF from the CAT S60, Play Integrity passes, the device shows as my original device (OnePlus 6) in Find My Device

Also what do you mean by "when changing fingerprint"? There's nothing in your description related to that.

At the very start I thought that the issue was caused by the fingerprint change, but later I found out that just installing the module was enough to trigger it.

so might be some issue related to a wearable you've got paired

The only wearable I use is a Xiaomi Smart Band 5 managed by Gadgetbridge (and only Gadgetbridge, no Xiaomeme crap installed) and for this test I killed Gadgetbridge and turned off Bluetooth.

Here are the logs for PIF v15.4 (opening Wallet, tapping twice on Add payment card with the consequent crash): gmscrash.txt

or a GApps issue since you're on a custom ROM?

I don't know, I'm on LineageOS 20 using MindTheGapps, as the LOS devs themselves recommend using this package in the official installation guide.

osm0sis commented 7 months ago

I had better luck with NikGApps when I was on Lineage. I'll check out your new log. 👍

osm0sis commented 7 months ago

If you could give me a log from my fork as well, that would help rule out any new issues where our forks have significantly diverged.

thatAkiraFox commented 7 months ago

Sure, here it is!

PIFork v7 (without fingerprint since it's not needed for the crash to occur), same steps as before: gmscrash.txt

osm0sis commented 7 months ago

Yep, same errors:

02-03 14:29:24.537  9548  9548 W ProviderHelper: Unknown dynamite feature providerinstaller.dynamite
02-03 14:29:24.538  9548  9548 I DynamiteModule: Considering local module com.google.android.gms.providerinstaller.dynamite:1 and remote module com.google.android.gms.providerinstaller.dynamite:0
02-03 14:29:24.538  9548  9548 I DynamiteModule: Selected local version of com.google.android.gms.providerinstaller.dynamite
02-03 14:29:24.539  3594  6039 W gle.android.gms: Long monitor contention with owner lowpool[41] (9429) at eird eirc.a()(:com.google.android.gms@240213038@24.02.13 (190400-599553831):333) waiters=7 in eird eirc.a() for 264ms
02-03 14:29:24.542  9548  9548 V NativeCrypto: Registering com/google/android/gms/org/conscrypt/NativeCrypto's 305 native methods...
02-03 14:29:24.544  1318  3900 W ActivityManager: Unable to start service Intent { act=com.google.android.gms.mdocstore.service.MDOC_STORE pkg=com.google.android.gms } U=0: not found
02-03 14:29:24.544  1318  3900 W ActivityManager: Unbind failed: could not find connection for android.os.BinderProxy@ad27bf
02-03 14:29:24.545  3594  3681 W GmsClient: unable to connect to service: com.google.android.gms.mdocstore.service.MDOC_STORE on com.google.android.gms
02-03 14:29:24.553  9548  9548 I ProviderInstaller: Installed default security provider GmsCore_OpenSSL
02-03 14:29:24.554  3594  9429 I Pay     : (REDACTED) Found %s smart tap valuables
02-03 14:29:24.557  3594  9429 W Pay     : Not using digital car key filter as user doesn't have digital car keys module [CONTEXT service_id=198 ]
02-03 14:29:24.561  3594  9429 W Pay     : Not using digital car key filter as user doesn't have digital car keys module [CONTEXT service_id=198 ]
02-03 14:29:24.563  1318  3900 W ActivityManager: Unable to start service Intent { act=com.google.android.gms.mdocstore.service.MDOC_STORE pkg=com.google.android.gms } U=0: not found
02-03 14:29:24.563  1318  3900 W ActivityManager: Unbind failed: could not find connection for android.os.BinderProxy@8904e8c
02-03 14:29:24.563  3594  3681 W GmsClient: unable to connect to service: com.google.android.gms.mdocstore.service.MDOC_STORE on com.google.android.gms
02-03 14:29:24.567  3594  6024 I Pay     : (REDACTED) Number of callouts to be displayed: %d, on page: %d
02-03 14:29:24.568  9548  9572 D CompatibilityChangeReporter: Compat change id reported: 183155436; UID 10099; state: ENABLED
02-03 14:29:24.570  9548  9578 I GMS_MM_Logger: (REDACTED) Start time: %s
02-03 14:29:24.571  9548  9578 I GMS_MM_Logger: Started.
02-03 14:29:24.571  9548  9548 W dpue    : Primes not initialized, returning default (no-op) Primes instance which will ignore all calls. Please call Primes.initialize(...) before using any Primes API.
02-03 14:29:24.571  9548  9548 W dpue    : edtv: FULL
02-03 14:29:24.571  9548  9548 W dpue    :  at a.W(:com.google.android.gms@240213038@24.02.13 (190400-599553831):9)
02-03 14:29:24.571  9548  9548 W dpue    :  at dptl.a(:com.google.android.gms@240213038@24.02.13 (190400-599553831):32)
02-03 14:29:24.571  9548  9548 W dpue    :  at com.google.android.gms.common.app.GmsApplication.onCreate(:com.google.android.gms@240213038@24.02.13 (190400-599553831):416)
02-03 14:29:24.571  9548  9548 W dpue    :  at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1277)
02-03 14:29:24.571  9548  9548 W dpue    :  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6811)
02-03 14:29:24.571  9548  9548 W dpue    :  at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
02-03 14:29:24.571  9548  9548 W dpue    :  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2133)
02-03 14:29:24.571  9548  9548 W dpue    :  at android.os.Handler.dispatchMessage(Handler.java:106)
02-03 14:29:24.571  9548  9548 W dpue    :  at android.os.Looper.loopOnce(Looper.java:201)
02-03 14:29:24.571  9548  9548 W dpue    :  at android.os.Looper.loop(Looper.java:288)
02-03 14:29:24.571  9548  9548 W dpue    :  at android.app.ActivityThread.main(ActivityThread.java:7924)
02-03 14:29:24.571  9548  9548 W dpue    :  at java.lang.reflect.Method.invoke(Native Method)
02-03 14:29:24.571  9548  9548 W dpue    :  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
02-03 14:29:24.571  9548  9548 W dpue    :  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
02-03 14:29:24.575  1318  3900 W ActivityManager: Unable to start service Intent { act=com.google.android.gms.mdocstore.service.MDOC_STORE pkg=com.google.android.gms } U=0: not found
02-03 14:29:24.575  1318  3900 W ActivityManager: Unbind failed: could not find connection for android.os.BinderProxy@9f24fb7
02-03 14:29:24.575  9548  9548 W ziparchive: Unable to open '/system/app/_android.Curve.Curve_Strength__24dp.apk': No such file or directory
02-03 14:29:24.575  3594  3681 W GmsClient: unable to connect to service: com.google.android.gms.mdocstore.service.MDOC_STORE on com.google.android.gms
02-03 14:29:24.575  9548  9548 E .android.gms.ui: Failed to open APK '/system/app/_android.Curve.Curve_Strength__24dp.apk': I/O error
02-03 14:29:24.576  9548  9548 W ResourcesManager: failed to add overlay path '/system/app/_android.Curve.Curve_Strength__24dp.apk'
02-03 14:29:24.576  9548  9548 W ResourcesManager: java.io.IOException: Failed to load asset path /data/resource-cache/system@app@_android.Curve.Curve_Strength__24dp.apk@idmap
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.content.res.ApkAssets.nativeLoad(Native Method)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.content.res.ApkAssets.<init>(ApkAssets.java:296)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.content.res.ApkAssets.loadOverlayFromPath(ApkAssets.java:216)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.app.ResourcesManager.loadApkAssets(ResourcesManager.java:470)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.app.ResourcesManager.createAssetManager(ResourcesManager.java:548)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.app.ResourcesManager.createResourcesImpl(ResourcesManager.java:630)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.app.ResourcesManager.findOrCreateResourcesImplForKeyLocked(ResourcesManager.java:682)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.app.ResourcesManager.createResourcesForActivity(ResourcesManager.java:1049)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.app.ResourcesManager.createBaseTokenResources(ResourcesManager.java:878)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.app.ContextImpl.createActivityContext(ContextImpl.java:3142)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.app.ActivityThread.createBaseContextForActivity(ActivityThread.java:3728)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3534)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3782)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:138)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.os.Handler.dispatchMessage(Handler.java:106)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.os.Looper.loopOnce(Looper.java:201)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.os.Looper.loop(Looper.java:288)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at android.app.ActivityThread.main(ActivityThread.java:7924)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at java.lang.reflect.Method.invoke(Native Method)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
02-03 14:29:24.576  9548  9548 W ResourcesManager:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
02-03 14:29:24.578  9548  9578 I ProcStatsManager: Proc stats logger installed and started.
02-03 14:29:24.580  3148  9434 W WearableService: onGetService: Wear is not available on this device.

and:

02-03 14:29:24.582  3594  9429 I Pay     : Not showing because of fetching paired watch exception [CONTEXT service_id=198 ]
02-03 14:29:24.582  3594  9429 I Pay     : java.util.concurrent.ExecutionException: aiwo: 17: API: Wearable.API is not available on this device. Connection failed with: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
02-03 14:29:24.582  3594  9429 I Pay     :  at cznu.p(:com.google.android.gms@240213038@24.02.13 (190400-599553831):32)
02-03 14:29:24.582  3594  9429 I Pay     :  at cznu.o(:com.google.android.gms@240213038@24.02.13 (190400-599553831):44)
02-03 14:29:24.582  3594  9429 I Pay     :  at bzwr.a(:com.google.android.gms@240213038@24.02.13 (190400-599553831):20)
02-03 14:29:24.582  3594  9429 I Pay     :  at bzuq.d(:com.google.android.gms@240213038@24.02.13 (190400-599553831):52)
02-03 14:29:24.582  3594  9429 I Pay     :  at bzuq.c(:com.google.android.gms@240213038@24.02.13 (190400-599553831):177)
02-03 14:29:24.582  3594  9429 I Pay     :  at bzuq.a(:com.google.android.gms@240213038@24.02.13 (190400-599553831):44)
02-03 14:29:24.582  3594  9429 I Pay     :  at bzuy.call(:com.google.android.gms@240213038@24.02.13 (190400-599553831):13)
02-03 14:29:24.582  3594  9429 I Pay     :  at java.util.concurrent.FutureTask.run(FutureTask.java:264)
02-03 14:29:24.582  3594  9429 I Pay     :  at akki.c(:com.google.android.gms@240213038@24.02.13 (190400-599553831):50)
02-03 14:29:24.582  3594  9429 I Pay     :  at akki.run(:com.google.android.gms@240213038@24.02.13 (190400-599553831):76)
02-03 14:29:24.582  3594  9429 I Pay     :  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
02-03 14:29:24.582  3594  9429 I Pay     :  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
02-03 14:29:24.582  3594  9429 I Pay     :  at akpt.run(:com.google.android.gms@240213038@24.02.13 (190400-599553831):8)
02-03 14:29:24.582  3594  9429 I Pay     :  at java.lang.Thread.run(Thread.java:1012)
02-03 14:29:24.582  3594  9429 I Pay     : Caused by: aiwo: 17: API: Wearable.API is not available on this device. Connection failed with: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
02-03 14:29:24.582  3594  9429 I Pay     :  at ajsv.a(:com.google.android.gms@240213038@24.02.13 (190400-599553831):15)
02-03 14:29:24.582  3594  9429 I Pay     :  at ajvv.a(:com.google.android.gms@240213038@24.02.13 (190400-599553831):31)
02-03 14:29:24.582  3594  9429 I Pay     :  at aiym.run(:com.google.android.gms@240213038@24.02.13 (190400-599553831):7)
02-03 14:29:24.582  3594  9429 I Pay     :  at akjq.c(:com.google.android.gms@240213038@24.02.13 (190400-599553831):12)
02-03 14:29:24.582  3594  9429 I Pay     :  at aiyl.a(:com.google.android.gms@240213038@24.02.13 (190400-599553831):10)
02-03 14:29:24.582  3594  9429 I Pay     :  at com.google.android.gms.common.api.internal.BasePendingResult.y(:com.google.android.gms@240213038@24.02.13 (190400-599553831):74)
02-03 14:29:24.582  3594  9429 I Pay     :  at com.google.android.gms.common.api.internal.BasePendingResult.p(:com.google.android.gms@240213038@24.02.13 (190400-599553831):35)
02-03 14:29:24.582  3594  9429 I Pay     :  at aiyd.a(:com.google.android.gms@240213038@24.02.13 (190400-599553831):16)
02-03 14:29:24.582  3594  9429 I Pay     :  at aixs.c(:com.google.android.gms@240213038@24.02.13 (190400-599553831):3)
02-03 14:29:24.582  3594  9429 I Pay     :  at ajal.q(:com.google.android.gms@240213038@24.02.13 (190400-599553831):48)
02-03 14:29:24.582  3594  9429 I Pay     :  at ajal.d(:com.google.android.gms@240213038@24.02.13 (190400-599553831):10)
02-03 14:29:24.582  3594  9429 I Pay     :  at ajal.g(:com.google.android.gms@240213038@24.02.13 (190400-599553831):205)
02-03 14:29:24.582  3594  9429 I Pay     :  at ajal.onConnectionFailed(:com.google.android.gms@240213038@24.02.13 (190400-599553831):2)
02-03 14:29:24.582  3594  9429 I Pay     :  at ajuc.hL(:com.google.android.gms@240213038@24.02.13 (190400-599553831):3)
02-03 14:29:24.582  3594  9429 I Pay     :  at ajth.b(:com.google.android.gms@240213038@24.02.13 (190400-599553831):7)
02-03 14:29:24.582  3594  9429 I Pay     :  at ajsy.a(:com.google.android.gms@240213038@24.02.13 (190400-599553831):85)
02-03 14:29:24.582  3594  9429 I Pay     :  at ajtb.handleMessage(:com.google.android.gms@240213038@24.02.13 (190400-599553831):287)
02-03 14:29:24.582  3594  9429 I Pay     :  at android.os.Handler.dispatchMessage(Handler.java:106)
02-03 14:29:24.582  3594  9429 I Pay     :  at bijf.lO(:com.google.android.gms@240213038@24.02.13 (190400-599553831):1)
02-03 14:29:24.582  3594  9429 I Pay     :  at bijf.dispatchMessage(:com.google.android.gms@240213038@24.02.13 (190400-599553831):143)
02-03 14:29:24.582  3594  9429 I Pay     :  at android.os.Looper.loopOnce(Looper.java:201)
02-03 14:29:24.582  3594  9429 I Pay     :  at android.os.Looper.loop(Looper.java:288)
02-03 14:29:24.582  3594  9429 I Pay     :  at android.os.HandlerThread.run(HandlerThread.java:67)
02-03 14:29:24.585  3594  9429 W Pay     : Not using digital car key filter as user doesn't have digital car keys module [CONTEXT service_id=198 ]
02-03 14:29:24.591  3594  9429 I Pay     : (REDACTED) Found %s smart tap valuables
02-03 14:29:24.593  3594  6039 I Pay     : (REDACTED) %s bulletin within cooldown window or dismissed

So either GApps issue, or you might want to first try wiping app data+cache for Wallet, and if that doesn't work all of Google Play Services.

osm0sis commented 7 months ago

One last thought, you using a custom font module?

thatAkiraFox commented 7 months ago

Oh my God, that was it!

I'm indeed using this font module and removing it solved the issue! Thanks!!

Could you explain why, tho?

osm0sis commented 7 months ago

Didn't realize it was still a problem but it rang a bell. I guess it's long-standing with all SafetyNet/Play Integrity modules. You should rename the title to be more accurate for any having this issue in the future to find.

https://github.com/kdrag0n/safetynet-fix/issues/192#issuecomment-1159394089

Something to do with it hooking Google Play Services perhaps and messing with the resources before PIF does?

Maybe @HuskyDG knows if there's been any improvement in the situation since then.

thatAkiraFox commented 7 months ago

Weird issue indeed, but thanks again for the help!

Harry8472 commented 7 months ago

sorry still does not work with McDonald's and payback app.

thatAkiraFox commented 7 months ago

@Harry8472 the McDonald's app was the first thing I tried after fixing the crash and it works, make sure you pass both BASIC and DEVICE integrity

Harry8472 commented 7 months ago

No sorry just got basic integrity

osm0sis commented 7 months ago

Clearly an unrelated issue.

Harry8472 commented 7 months ago

I doubt it. Everything worked until this started with my Donald s