- most Java classes were being kept fully unoptimized anyway, which should be generally avoided
- AGP 8.9.0-alpha07 is the last where spoofSignature works with R8 enabled, alpha08 and all later AGP results in:
msg: java.lang.StackOverflowError: stack size 8188KB
stacktrace: java.lang.StackOverflowError: stack size 8188KB
at es.chiteroman.playintegrityfix.CustomPackageInfoCreator.createFromParcel(Unknown Source:2)
[TRUNCATED 3288424 CHARS]
at es.chiteroman.playintegrityfix.CustomPackageInfoCreator.createFromParcel(Unknown Source:2)
at android.os.Parcel.readTypedObject(Parcel.java:4025)
at android.content.pm.IPackageManager$Stub$Proxy.getPackageInfo(IPackageManager.java:4470)
at android.content.pm.PackageManager.getPackageInfoAsUserUncached(PackageManager.java:10969)
at android.content.pm.PackageManager.-$$Nest$smgetPackageInfoAsUserUncached(Unknown Source:0)
at android.content.pm.PackageManager$2.recompute(PackageManager.java:10982)
at android.content.pm.PackageManager$2.recompute(PackageManager.java:10979)
at android.app.PropertyInvalidatedCache.query(PropertyInvalidatedCache.java:999)
at android.content.pm.PackageManager.getPackageInfoAsUserCached(PackageManager.java:10996)
at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:1215)
at android.app.LoadedApk.makeApplicationInner(LoadedApk.java:1448)
at android.app.LoadedApk.makeApplicationInner(LoadedApk.java:1405)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7029)
at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2262)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8282)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:554)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:885)
- No longer loads custom classes if not needed for respective packages
- Renames isGmsUnstable to isDroidGuardOrVending
- Removes spoofVendingSdk from migrate/autopif scripts (don't document yet)
- Adds missing setAccessible() call for early return in EntryPointVending.init()
- Adds missing set of spoofSignature -> 0 for vending
Squashed: Add spoofVendingSdk for forcing new PI legacy verdicts
Squashed: Move vending SDK spoof to EntryPointVending, replace killgms.sh with killpi.sh
- Android 14 QPR2 (currently in Beta and due for Stable in March) breaks ShadowHook libc hooking needed for property spoofing
- there are currently no signs of life over at ShadowHook to resolve this despite my reporting it to them over a month ago
Co-authored-by: Nicholas Bissell <thefreeman193@hotmail.com>
Co-authored-by: chiteroman <98092901+chiteroman@users.noreply.github.com>
- remove backwards compatibility cruft for all deprecated fields except FIRST_API_LEVEL (for now)
- iterate through all entries with . or * (see next) to allow modifying any matching DroidGuard-checked system property
- allow leading * wildcard to match multiple system properties in one json entry
- add logging levels using VERBOSE_LOGS as the last json entry, with values of 0, 1, 2, 3 or 100
- spoof sys.usb.state to mtp for DroidGuard by default to hide USB Debugging
Co-authored-by: arda99 <arda99@noreply.xdaforums.com>
w: app/build.gradle.kts:50:31: 'getter for buildDir: File!' is deprecated. Deprecated in Java
w: app/build.gradle.kts:51:29: 'getter for buildDir: File!' is deprecated. Deprecated in Java