-p or --preview has been removed since the Platform Preview program has been replaced by Android Canary
-t # or --top # chooses the top level version depth to crawl down the Android version list for when there are multiple active Betas in multiple Android versions, e.g. with 16 as latest the default value of 1 would get its listed QPRs and -t 2 would force it to get the second listed (15)
Clarify the section about Google Wallet requirements. In particular, that spoofVendingSdk is only to test that <A13 PI passes DEVICE and that the option does not need to be enabled in order to use Wallet after this.
-m or --match will attempt to match the print to your current device if run on a Pixel, and will otherwise fall back to random
- make matching the Action button default since there was some evidence that matching your actual Pixel device may be important for accessing the Pixel exclusive features for your device
- many are experimenting and using it already across forks anyway
- proper documentation to come for next stable release with known issues and potential use cases
- 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)
- uninstall.sh is generated at first install so it must be kept to ensure it has the original states/values for the persist props
- run then remove uninstall.sh if it exists when switching to Scripts-Only Mode
The remaining Gradle deprecation warnings are from Android Gradle Plugin (AGP), so figuring out why AGP 8.9.x+ breaks spoofSignature, and fixing that so that AGP can be updated is the only way to resolve things for Gradle 9.0:
Declaring an 'is-' property with a Boolean type has been deprecated. Starting with Gradle 9.0, this property will be ignored by Gradle.
[...]
Add a method named 'getCrunchPngs' with the same behavior and mark the old one with @Deprecated, or change the type of 'com.android.build.gradle.internal.dsl.BuildType$AgpDecorated.isCrunchPngs' (and the setter) to 'boolean'. [...]
Add a method named 'getUseProguard' with the same behavior and mark the old one with @Deprecated, or change the type of 'com.android.build.gradle.internal.dsl.BuildType.isUseProguard' (and the setter) to 'boolean'. [...]
Add a method named 'getWearAppUnbundled' with the same behavior and mark the old one with @Deprecated, or change the type of 'com.android.build.api.variant.impl.ApplicationVariantImpl.isWearAppUnbundled' (and the setter) to 'boolean'. [...]