diff options
| author | 2024-09-25 18:55:51 +0000 | |
|---|---|---|
| committer | 2024-09-25 18:55:51 +0000 | |
| commit | eb8122ee389920cb6edb56128248a5faea892ade (patch) | |
| tree | 6315ccde830e30f5541b0f26d5c0632f5ede7b82 | |
| parent | 7a88927f751754598b9a771ea0849e3a3715b0f8 (diff) | |
| parent | 17badbcb3d1e7c6aef493a32c61b9bb90ac35633 (diff) | |
Merge "Check whether the correct callingUid has the necessary permissions" into main
3 files changed, 9 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/pm/ComputerEngine.java b/services/core/java/com/android/server/pm/ComputerEngine.java index 4665a72b0b06..89ced12e873d 100644 --- a/services/core/java/com/android/server/pm/ComputerEngine.java +++ b/services/core/java/com/android/server/pm/ComputerEngine.java @@ -2208,10 +2208,10 @@ public class ComputerEngine implements Computer { return true; } boolean permissionGranted = requireFullPermission ? hasPermission( - Manifest.permission.INTERACT_ACROSS_USERS_FULL) + Manifest.permission.INTERACT_ACROSS_USERS_FULL, callingUid) : (hasPermission( - android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) - || hasPermission(Manifest.permission.INTERACT_ACROSS_USERS)); + android.Manifest.permission.INTERACT_ACROSS_USERS_FULL, callingUid) + || hasPermission(Manifest.permission.INTERACT_ACROSS_USERS, callingUid)); if (!permissionGranted) { if (Process.isIsolatedUid(callingUid) && isKnownIsolatedComputeApp(callingUid)) { return checkIsolatedOwnerHasPermission(callingUid, requireFullPermission); diff --git a/services/core/java/com/android/server/pm/LauncherAppsService.java b/services/core/java/com/android/server/pm/LauncherAppsService.java index 5653da07779b..8657de24d725 100644 --- a/services/core/java/com/android/server/pm/LauncherAppsService.java +++ b/services/core/java/com/android/server/pm/LauncherAppsService.java @@ -716,7 +716,7 @@ public class LauncherAppsService extends SystemService { visiblePackages.add(info.getActivityInfo().packageName); } final List<ApplicationInfo> installedPackages = - mPackageManagerInternal.getInstalledApplications( + mPackageManagerInternal.getInstalledApplicationsCrossUser( /* flags= */ 0, user.getIdentifier(), callingUid); for (ApplicationInfo applicationInfo : installedPackages) { if (!visiblePackages.contains(applicationInfo.packageName)) { diff --git a/services/tests/PackageManagerComponentOverrideTests/src/com/android/server/pm/test/override/PackageManagerComponentLabelIconOverrideTest.kt b/services/tests/PackageManagerComponentOverrideTests/src/com/android/server/pm/test/override/PackageManagerComponentLabelIconOverrideTest.kt index 5c4716dc751e..7d5532f6e401 100644 --- a/services/tests/PackageManagerComponentOverrideTests/src/com/android/server/pm/test/override/PackageManagerComponentLabelIconOverrideTest.kt +++ b/services/tests/PackageManagerComponentOverrideTests/src/com/android/server/pm/test/override/PackageManagerComponentLabelIconOverrideTest.kt @@ -57,6 +57,7 @@ import org.junit.BeforeClass import org.junit.Test import org.junit.runner.RunWith import org.junit.runners.Parameterized +import org.mockito.ArgumentMatchers.eq import org.mockito.Mockito.any import org.mockito.Mockito.anyInt import org.mockito.Mockito.doReturn @@ -383,6 +384,10 @@ class PackageManagerComponentLabelIconOverrideTest { android.Manifest.permission.INTERACT_ACROSS_USERS_FULL)) { PackageManager.PERMISSION_GRANTED } + whenever(this.checkPermission( + eq(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL), anyInt(), anyInt())) { + PackageManager.PERMISSION_GRANTED + } } val mockSharedLibrariesImpl: SharedLibrariesImpl = mock { whenever(this.snapshot()) { this@mock } |