From f6bbda8984f8ced65738e662e11058da0dcdc61e Mon Sep 17 00:00:00 2001 From: Song Chun Fan Date: Wed, 8 May 2024 19:12:45 +0000 Subject: [PATCH] [Install-unknown-apps] Hide apps of system or root UID This also reverts ag/27176160, which handled apps like Settings but missed pre23 apps. A better solution would be hide apps that are of system or root UID. BUG: 338066634 Test: manual Change-Id: Ia1c3f50dd7c5edb718c695737db589ef55173682 --- .../settings/spa/app/specialaccess/InstallUnknownApps.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/spa/app/specialaccess/InstallUnknownApps.kt b/src/com/android/settings/spa/app/specialaccess/InstallUnknownApps.kt index 1446bbca5b4..18ce585f1ee 100644 --- a/src/com/android/settings/spa/app/specialaccess/InstallUnknownApps.kt +++ b/src/com/android/settings/spa/app/specialaccess/InstallUnknownApps.kt @@ -23,6 +23,7 @@ import android.app.AppOpsManager.MODE_DEFAULT import android.app.AppOpsManager.OP_REQUEST_INSTALL_PACKAGES import android.content.Context import android.content.pm.ApplicationInfo +import android.os.Process import android.os.UserManager import androidx.compose.runtime.Composable import com.android.settings.R @@ -94,7 +95,10 @@ class InstallUnknownAppsListModel(private val context: Context) : private fun isChangeable( record: InstallUnknownAppsRecord, potentialPackageNames: Set, - ) = record.app.packageName in potentialPackageNames + ) = + record.app.uid != Process.SYSTEM_UID && record.app.uid != Process.ROOT_UID && + (record.appOpsController.getMode() != MODE_DEFAULT || + record.app.packageName in potentialPackageNames) private fun getPotentialPackageNames(userId: Int): Set = AppGlobals.getPackageManager()