diff --git a/manager/app/src/main/java/com/rifsxd/ksunext/ui/viewmodel/SuperUserViewModel.kt b/manager/app/src/main/java/com/rifsxd/ksunext/ui/viewmodel/SuperUserViewModel.kt index 70a3b2a4..c607131e 100644 --- a/manager/app/src/main/java/com/rifsxd/ksunext/ui/viewmodel/SuperUserViewModel.kt +++ b/manager/app/src/main/java/com/rifsxd/ksunext/ui/viewmodel/SuperUserViewModel.kt @@ -5,6 +5,7 @@ import android.content.pm.PackageInfo import android.os.Parcelable import android.os.SystemClock import android.util.Log +import android.widget.Toast import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -18,8 +19,7 @@ import kotlinx.parcelize.Parcelize import com.rifsxd.ksunext.Natives import com.rifsxd.ksunext.ksuApp import com.rifsxd.ksunext.ui.util.HanziToPinyin -import com.rifsxd.ksunext.ui.webui.packageManager -import com.rifsxd.ksunext.ui.webui.userManager +import com.rifsxd.ksunext.ui.webui.getInstalledPackagesAll import kotlinx.coroutines.delay import kotlinx.coroutines.withTimeoutOrNull import java.text.Collator @@ -109,9 +109,10 @@ class SuperUserViewModel : ViewModel() { val pm = ksuApp.packageManager val start = SystemClock.elapsedRealtime() - val userManager = Platform.userManager - val packageManager = Platform.packageManager - val packages = packageManager.getInstalledPackages(0, userManager.myUserId) + val packages = Platform.getInstalledPackagesAll { + Log.e(TAG, "getInstalledPackagesAll:", it) + Toast.makeText(ksuApp, "Something went wrong, check logs", Toast.LENGTH_SHORT).show() + } apps = packages.map { val appInfo = it.applicationInfo diff --git a/manager/app/src/main/java/com/rifsxd/ksunext/ui/webui/KsuLibSuProvider.kt b/manager/app/src/main/java/com/rifsxd/ksunext/ui/webui/KsuLibSuProvider.kt index abd43be9..2fb027f1 100644 --- a/manager/app/src/main/java/com/rifsxd/ksunext/ui/webui/KsuLibSuProvider.kt +++ b/manager/app/src/main/java/com/rifsxd/ksunext/ui/webui/KsuLibSuProvider.kt @@ -1,6 +1,7 @@ package com.rifsxd.ksunext.ui.webui import android.content.ServiceConnection +import android.content.pm.PackageInfo import android.util.Log import com.dergoogler.mmrl.platform.Platform import com.dergoogler.mmrl.platform.hiddenApi.HiddenPackageManager @@ -56,5 +57,17 @@ suspend fun initPlatform() = withContext(Dispatchers.IO) { } } -val Platform.Companion.packageManager get(): HiddenPackageManager = HiddenPackageManager(this.mService) -val Platform.Companion.userManager get(): HiddenUserManager = HiddenUserManager(this.mService) \ No newline at end of file +fun Platform.Companion.getInstalledPackagesAll(catch: (Exception) -> Unit = {}): List = + try { + val packages = mutableListOf() + val userInfos = userManager.getUsers() + + for (userInfo in userInfos) { + packages.addAll(packageManager.getInstalledPackages(0, userInfo.id)) + } + + packages + } catch (e: Exception) { + catch(e) + packageManager.getInstalledPackages(0, userManager.myUserId) + } \ No newline at end of file