Add getInstalledPackages to Xposed module API

Expose IPackageManager.getInstalledPackages via binder transaction,
allowing per-app proxy to list packages without ROOT when Xposed is active.
This commit is contained in:
世界
2026-01-17 03:09:39 +08:00
parent 2cebff3d7e
commit 0fe4a3b6a1
5 changed files with 109 additions and 3 deletions

View File

@@ -54,7 +54,11 @@ object PackageQueryManager {
suspend fun getInstalledPackages(flags: Int, retryFlags: Int): List<PackageInfo> {
return when (val s = strategy) {
is PackageQueryStrategy.ForcedRoot -> RootClient.getInstalledPackages(flags)
is PackageQueryStrategy.ForcedRoot -> {
val userId = android.os.Process.myUserHandle().hashCode()
HookStatusClient.getInstalledPackages(Application.application, flags.toLong(), userId)
?: RootClient.getInstalledPackages(flags)
}
is PackageQueryStrategy.UserSelected -> RootClient.getInstalledPackages(flags)
is PackageQueryStrategy.Direct -> getPackagesViaPackageManager(flags, retryFlags)
}