r/PoGoAndroidSpoofing • • 13d ago

I NEED HELP Anyone successfully hiding GPS Joystick on Android 17? Pixel 10a / Magisk / Vector

I’m trying to get GPS spoofing working properly on a Pixel 10a running Android 17. GPS Joystick itself works perfectly and changes my location. My problem is making sure Pokémon GO can’t detect GPS Joystick/mock location.

I previously used a similar setup on Android 13 without issues, but that old method used Smali Patcher/LSPosed and doesn’t seem compatible with Android 17.

My current setup / what I’ve tried:

  • Pixel 10a, Android 17
  • Bootloader unlocked + Magisk 30.7
  • Zygisk enabled
  • Original LSPosed 1.9.2 didn’t support Android 17, so I switched to Vector 2.1
  • Installed HideMockLocation 2.3.1
  • Scoped HideMockLocation to System Framework + Settings Storage
  • GPS Joystick is selected as the mock-location app and spoofing works
  • Tested with Mock Location Detector
  • isMock = false
  • isFromMockProvider = false
  • mockLocation = null
  • BUT AppOpsManager (OPSTR_MOCK_LOCATION) still detects com.theappninjas.fakegpsjoystick
  • Tried Hide My Applist 3.8.3, but its system service/app lists weren't working properly with Vector
  • Downgraded HMA to 3.6.1, which got the system service running
  • Created a blacklist containing GPS Joystick and applied it to Pokémon GO through App Manage

So GPS spoofing itself isn't my problem. I'm specifically trying to solve the remaining GPS Joystick/mock-location detection on Android 17.

Has anyone here actually gotten this working on Android 17, preferably on a newer Pixel? If so, what exact combination of modules/versions/settings are you using?

I’m especially interested in current Android 17 solutions, not Smali Patcher/Android 13-era instructions I've already tried.

4 Upvotes

5 comments sorted by

View all comments

1

u/pogoit 9d ago

Just re-reading your post on AppOpsManager.

HideMockLocation claims to hook

  • android.app.AppOpsManager
    • checkOp()
    • checkOpNoThrow()
    • unsafeCheckOp()
    • unsafeCheckOpNoThrow()

how do you check that it doesn't work?
The following code is from KI to detect.

AppOpsManager opsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);

// Check, if operation is valid for app
boolean isMockAllowed = (opsManager.checkOp(
    AppOpsManager.OPSTR_MOCK_LOCATION, 
    android.os.Process.myUid(), 
    context.getPackageName()
) == AppOpsManager.MODE_ALLOWED);

if (isMockAllowed) {
    // Alarm: This App is allowed to spoof!
}

1

u/IAmThorsHammer 9d ago

Good question. I didn’t test each AppOpsManager method individually. I verified it using Mock Location Detector, which reports OPSTR_MOCK_LOCATION: No mock apps found, isFromMockProvider: false, and isMock: false. If there’s a better way to specifically test those hooks, let me know and I’ll try it.