- Explicitly specifying `extractNativeLibs` is done through the buildscript `useLegacyPackaging` property now
- `@Supress("INVISIBLE_REFERENCE")` is deprecated in K2
- Support waiting for package uninstallation results
- Make DowngradeCheckStep wait for uninstall rather than erroring
- Relaunch PackageInstaller user action intents infinitely until result received (Workaround of bug on some ROMs where dismissing the PI dialog by clicking outside wouldn't invoke the callback with STATUS_FAILURE_ABORTED)
- Make PMIntentReceiver & PMResultReceiver non-exported to keep intents from leaking to other apps
- Handle uncaught exceptions thrown in the aforementioned receivers by returning the result back to the app (or logging) to prevent crashes
- Separate installer into a generic interface (for Shizuku support later)
- Heavily improve installation UI flow
- Better handling of waiting for install completions
- Handle install prompt cancellations