Skip to content

Nightzuku r50

Choose a tag to compare

@kerneldroid kerneldroid released this 26 Jun 04:01

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 InstalledPackagesCompat in common module with multi-strategy approach: tries getInstalledPackagesAsUser (public hidden API) first, then falls back to IPackageManager.getInstalledPackages via hidden compat Services, with getList() extraction for both return types
  • Switched server and manager code to use InstalledPackagesCompat instead of broken PackageManagerApis path
  • Removed dead getInstalledPackages/extractList from Android17Compat
  • Removed debug runCompatTest() with side-effects from ShizukuService
  • 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