diff options
| -rw-r--r-- | services/java/com/android/server/pm/Settings.java | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/services/java/com/android/server/pm/Settings.java b/services/java/com/android/server/pm/Settings.java index 5ed79885ceaa..f2700034bbce 100644 --- a/services/java/com/android/server/pm/Settings.java +++ b/services/java/com/android/server/pm/Settings.java @@ -1093,8 +1093,7 @@ final class Settings { serializer.attribute(null, "uidError", "true"); } if (pkg.enabled != COMPONENT_ENABLED_STATE_DEFAULT) { - serializer.attribute(null, "enabled", - pkg.enabled == COMPONENT_ENABLED_STATE_ENABLED ? "true" : "false"); + serializer.attribute(null, "enabled", Integer.toString(pkg.enabled)); } if (pkg.installStatus == PackageSettingBase.PKG_INSTALL_INCOMPLETE) { serializer.attribute(null, "installStatus", "false"); @@ -1644,17 +1643,21 @@ final class Settings { packageSetting.nativeLibraryPathString = nativeLibraryPathStr; final String enabledStr = parser.getAttributeValue(null, "enabled"); if (enabledStr != null) { - if (enabledStr.equalsIgnoreCase("true")) { - packageSetting.enabled = COMPONENT_ENABLED_STATE_ENABLED; - } else if (enabledStr.equalsIgnoreCase("false")) { - packageSetting.enabled = COMPONENT_ENABLED_STATE_DISABLED; - } else if (enabledStr.equalsIgnoreCase("default")) { - packageSetting.enabled = COMPONENT_ENABLED_STATE_DEFAULT; - } else { - PackageManagerService.reportSettingsProblem(Log.WARN, - "Error in package manager settings: package " + name - + " has bad enabled value: " + idStr + " at " - + parser.getPositionDescription()); + try { + packageSetting.enabled = Integer.parseInt(enabledStr); + } catch (NumberFormatException e) { + if (enabledStr.equalsIgnoreCase("true")) { + packageSetting.enabled = COMPONENT_ENABLED_STATE_ENABLED; + } else if (enabledStr.equalsIgnoreCase("false")) { + packageSetting.enabled = COMPONENT_ENABLED_STATE_DISABLED; + } else if (enabledStr.equalsIgnoreCase("default")) { + packageSetting.enabled = COMPONENT_ENABLED_STATE_DEFAULT; + } else { + PackageManagerService.reportSettingsProblem(Log.WARN, + "Error in package manager settings: package " + name + + " has bad enabled value: " + idStr + " at " + + parser.getPositionDescription()); + } } } else { packageSetting.enabled = COMPONENT_ENABLED_STATE_DEFAULT; |