Add package state to block uninstall.
Add package state to allow profile or device
owners to block uninstall of packages.
Add API to DevicePolicyManager to set/get the
state.
Bug: 14127299
Change-Id: I03528819850b42df7bafa7747bb9e4558d20c4e6
diff --git a/services/core/java/com/android/server/pm/PackageSettingBase.java b/services/core/java/com/android/server/pm/PackageSettingBase.java
index 2091c16..f263e07 100644
--- a/services/core/java/com/android/server/pm/PackageSettingBase.java
+++ b/services/core/java/com/android/server/pm/PackageSettingBase.java
@@ -275,10 +275,18 @@
modifyUserState(userId).blocked = blocked;
}
+ boolean getBlockUninstall(int userId) {
+ return readUserState(userId).blockUninstall;
+ }
+
+ void setBlockUninstall(boolean blockUninstall, int userId) {
+ modifyUserState(userId).blockUninstall = blockUninstall;
+ }
+
void setUserState(int userId, int enabled, boolean installed, boolean stopped,
boolean notLaunched, boolean blocked,
String lastDisableAppCaller, HashSet<String> enabledComponents,
- HashSet<String> disabledComponents) {
+ HashSet<String> disabledComponents, boolean blockUninstall) {
PackageUserState state = modifyUserState(userId);
state.enabled = enabled;
state.installed = installed;
@@ -288,6 +296,7 @@
state.lastDisableAppCaller = lastDisableAppCaller;
state.enabledComponents = enabledComponents;
state.disabledComponents = disabledComponents;
+ state.blockUninstall = blockUninstall;
}
HashSet<String> getEnabledComponents(int userId) {