Loading services/core/java/com/android/server/pm/DeletePackageHelper.java +6 −0 Original line number Diff line number Diff line Loading @@ -357,6 +357,12 @@ final class DeletePackageHelper { final DeletePackageAction action; synchronized (mPm.mLock) { final PackageSetting ps = mPm.mSettings.getPackageLPr(packageName); if (ps == null) { if (DEBUG_REMOVE) { Slog.d(TAG, "Attempted to remove non-existent package " + packageName); } return false; } final PackageSetting disabledPs = mPm.mSettings.getDisabledSystemPkgLPr(ps); if (PackageManagerServiceUtils.isSystemApp(ps) && mPm.checkPermission(CONTROL_KEYGUARD, packageName, UserHandle.USER_SYSTEM) Loading services/tests/mockingservicestests/src/com/android/server/pm/DeletePackageHelperTest.kt +11 −0 Original line number Diff line number Diff line Loading @@ -22,12 +22,14 @@ import android.content.pm.PackageManager.PERMISSION_DENIED import android.content.pm.PackageManager.PERMISSION_GRANTED import android.content.pm.UserInfo import android.os.Build import android.os.UserHandle import android.os.UserHandle.USER_SYSTEM import android.util.Log import com.android.server.testutils.any import com.android.server.testutils.spy import com.android.server.testutils.whenever import com.google.common.truth.Truth.assertThat import org.junit.Assert.assertFalse import org.junit.Before import org.junit.Rule import org.junit.Test Loading Loading @@ -177,4 +179,13 @@ class DeletePackageHelperTest { assertThat(result).isEqualTo(PackageManager.DELETE_FAILED_INTERNAL_ERROR) } @Test fun deletePackageLIFWithNonExistantPackage_isFalse() { val dph = DeletePackageHelper(mPms, mock(RemovePackageHelper::class.java), mock(BroadcastHelper::class.java)) val result = dph.deletePackageLIF("a.nonexistent.package", UserHandle.of(USER_SYSTEM), true, intArrayOf(0), 0, PackageRemovedInfo(), true) assertFalse(result) } } Loading
services/core/java/com/android/server/pm/DeletePackageHelper.java +6 −0 Original line number Diff line number Diff line Loading @@ -357,6 +357,12 @@ final class DeletePackageHelper { final DeletePackageAction action; synchronized (mPm.mLock) { final PackageSetting ps = mPm.mSettings.getPackageLPr(packageName); if (ps == null) { if (DEBUG_REMOVE) { Slog.d(TAG, "Attempted to remove non-existent package " + packageName); } return false; } final PackageSetting disabledPs = mPm.mSettings.getDisabledSystemPkgLPr(ps); if (PackageManagerServiceUtils.isSystemApp(ps) && mPm.checkPermission(CONTROL_KEYGUARD, packageName, UserHandle.USER_SYSTEM) Loading
services/tests/mockingservicestests/src/com/android/server/pm/DeletePackageHelperTest.kt +11 −0 Original line number Diff line number Diff line Loading @@ -22,12 +22,14 @@ import android.content.pm.PackageManager.PERMISSION_DENIED import android.content.pm.PackageManager.PERMISSION_GRANTED import android.content.pm.UserInfo import android.os.Build import android.os.UserHandle import android.os.UserHandle.USER_SYSTEM import android.util.Log import com.android.server.testutils.any import com.android.server.testutils.spy import com.android.server.testutils.whenever import com.google.common.truth.Truth.assertThat import org.junit.Assert.assertFalse import org.junit.Before import org.junit.Rule import org.junit.Test Loading Loading @@ -177,4 +179,13 @@ class DeletePackageHelperTest { assertThat(result).isEqualTo(PackageManager.DELETE_FAILED_INTERNAL_ERROR) } @Test fun deletePackageLIFWithNonExistantPackage_isFalse() { val dph = DeletePackageHelper(mPms, mock(RemovePackageHelper::class.java), mock(BroadcastHelper::class.java)) val result = dph.deletePackageLIF("a.nonexistent.package", UserHandle.of(USER_SYSTEM), true, intArrayOf(0), 0, PackageRemovedInfo(), true) assertFalse(result) } }