Skip to content

Commit

Permalink
fix: MATCH_UNINSTALLED_PACKAGES
Browse files Browse the repository at this point in the history
  • Loading branch information
iamr0s committed Aug 19, 2024
1 parent e0f4318 commit 4e02b37
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@ fun PackageManager.getPackageNameForUid(uid: Int): String? =

fun PackageManager.getPackageInfoForUid(
uid: Int,
flags: Int = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) PackageManager.GET_SIGNING_CERTIFICATES
else PackageManager.GET_SIGNATURES
): PackageInfo? {
return getPackageInfo(getPackageNameForUid(uid) ?: return null, flags)
}
flags: Int = (if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) PackageManager.MATCH_UNINSTALLED_PACKAGES
else 0) or (if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) PackageManager.GET_SIGNING_CERTIFICATES
else PackageManager.GET_SIGNATURES)
): PackageInfo? = kotlin.runCatching {
getPackageInfo(getPackageNameForUid(uid) ?: return null, flags)
}.getOrNull()

@OptIn(ExperimentalStdlibApi::class)
val PackageInfo.signature: String?
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/com/rosan/dhizuku/server/RunningService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ class RunningService : Service(), KoinComponent {
companion object {
fun start(context: Context) {
val intent = Intent(context, RunningService::class.java)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
/*if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
context.startForegroundService(intent)
else context.startService(intent)
else */context.startService(intent)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,9 @@ class ActivateViewModel : ViewModel(), KoinComponent {
collectDataJob = viewModelScope.launch(Dispatchers.IO) {
// http://aospxref.com/android-14.0.0_r2/xref/packages/apps/Settings/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java#271

var flags = PackageManager.GET_META_DATA
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
flags = flags or PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
val flags =
(if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) PackageManager.MATCH_UNINSTALLED_PACKAGES
else 0) or PackageManager.GET_META_DATA

val data = packageManager.queryBroadcastReceivers(
Intent(DeviceAdminReceiver.ACTION_DEVICE_ADMIN_ENABLED),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.rosan.dhizuku.ui.page.settings.app_management

import android.content.Context
import android.content.pm.PackageManager
import android.os.Build
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
Expand Down Expand Up @@ -44,8 +45,11 @@ class AppManagementViewModel : ViewModel(), KoinComponent {
collectRepoJob?.cancel()
collectRepoJob = viewModelScope.launch(Dispatchers.IO) {
repo.flowAll().collect {
val flags =
(if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) PackageManager.MATCH_UNINSTALLED_PACKAGES
else 0) or PackageManager.GET_META_DATA or PackageManager.GET_PERMISSIONS
val data = packageManager
.getInstalledPackages(PackageManager.GET_META_DATA or PackageManager.GET_PERMISSIONS)
.getInstalledPackages(flags)
.mapNotNull { packageInfo ->
if (packageInfo.packageName == context.packageName) return@mapNotNull null
val applicationInfo =
Expand Down

0 comments on commit 4e02b37

Please sign in to comment.