Nightzuku r50
Android 17 (API 37) Compatibility Fix
Fixed: getInstalledPackages returning empty app list
On Android 17, IPackageManager.getInstalledPackages returns PackageInfoList instead of ParceledListSlice. The hidden-compat library fails with ClassCastException when encountering the new type, causing the manager to show 0 authorized applications.
Changes:
- Created
InstalledPackagesCompatin common module with multi-strategy approach: triesgetInstalledPackagesAsUser(public hidden API) first, then falls back toIPackageManager.getInstalledPackagesvia hidden compat Services, withgetList()extraction for both return types - Switched server and manager code to use
InstalledPackagesCompatinstead of brokenPackageManagerApispath - Removed dead
getInstalledPackages/extractListfromAndroid17Compat - Removed debug
runCompatTest()with side-effects fromShizukuService - Added logging to silent catch blocks for debuggability
- Fixed shizutest fragile overload selection to filter by parameter types
Tested on: Android 17 emulator (API 37) — Package Manager Query test passes and Nightzuku manager shows authorized apps.
Previous r50 changes (Android 16 rish Fix)
- Fixed rish timeout on Android 16 (API 36+) by using startActivity fallback
- Added reflection-based broadcastIntentWithFeature for Android 11-15
- Removed API_V23 permission requirement from ShizukuReceiver