summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/pm/PackageSettingBase.java
diff options
context:
space:
mode:
Diffstat (limited to 'services/java/com/android/server/pm/PackageSettingBase.java')
-rw-r--r--services/java/com/android/server/pm/PackageSettingBase.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/services/java/com/android/server/pm/PackageSettingBase.java b/services/java/com/android/server/pm/PackageSettingBase.java
index d8f7345..6a363a8 100644
--- a/services/java/com/android/server/pm/PackageSettingBase.java
+++ b/services/java/com/android/server/pm/PackageSettingBase.java
@@ -20,6 +20,7 @@ import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
+import android.content.pm.ApplicationInfo;
import android.content.pm.PackageUserState;
import android.content.pm.UserInfo;
import android.util.SparseArray;
@@ -64,7 +65,8 @@ class PackageSettingBase extends GrantedPermissions {
boolean permissionsFixed;
boolean haveGids;
- private static final PackageUserState DEFAULT_USER_STATE = new PackageUserState();
+ private static final PackageUserState DEFAULT_USER_STATE = new PackageUserState(false);
+ private static final PackageUserState DEFAULT_SYSTEM_USER_STATE = new PackageUserState(true);
// Whether this package is currently stopped, thus can not be
// started until explicitly launched by the user.
@@ -174,7 +176,7 @@ class PackageSettingBase extends GrantedPermissions {
private PackageUserState modifyUserState(int userId) {
PackageUserState state = userState.get(userId);
if (state == null) {
- state = new PackageUserState();
+ state = new PackageUserState((pkgFlags&ApplicationInfo.FLAG_SYSTEM) != 0);
userState.put(userId, state);
}
return state;
@@ -182,7 +184,11 @@ class PackageSettingBase extends GrantedPermissions {
public PackageUserState readUserState(int userId) {
PackageUserState state = userState.get(userId);
- return state != null ? state : DEFAULT_USER_STATE;
+ if (state != null) {
+ return state;
+ }
+ return ((pkgFlags&ApplicationInfo.FLAG_SYSTEM) != 0)
+ ? DEFAULT_SYSTEM_USER_STATE : DEFAULT_USER_STATE;
}
void setEnabled(int state, int userId) {