summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2010-10-14 16:47:34 -0700
committerDianne Hackborn <hackbod@google.com>2010-10-15 11:22:17 -0700
commitefb581018bbede2ecdc76bcd9722ded5b6903254 (patch)
tree53ba83804a0ac7a53331b12bec05479954de6a9a /services
parenta851d8d0cfec45e33ee884114548a4f2890d1f06 (diff)
downloadframeworks_base-efb581018bbede2ecdc76bcd9722ded5b6903254.zip
frameworks_base-efb581018bbede2ecdc76bcd9722ded5b6903254.tar.gz
frameworks_base-efb581018bbede2ecdc76bcd9722ded5b6903254.tar.bz2
Debug logs for issue #3101415: Apps seem to have their UID changed over time.
- Activity manager now prints the pid doing a startActivity request. - Package manager now remembers messages about problems it has parsing packages.xml. Change-Id: I11a75aa3953dbfa5dd41cfbdf69116c764ec228f
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/PackageManagerService.java14
-rw-r--r--services/java/com/android/server/am/ActivityStack.java40
2 files changed, 30 insertions, 24 deletions
diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java
index da95b97..174b3ef 100644
--- a/services/java/com/android/server/PackageManagerService.java
+++ b/services/java/com/android/server/PackageManagerService.java
@@ -8830,7 +8830,7 @@ class PackageManagerService extends IPackageManager.Stub {
try {
str = new FileInputStream(mBackupSettingsFilename);
mReadMessages.append("Reading from backup settings file\n");
- Log.i(TAG, "Reading from backup settings file!");
+ reportSettingsProblem(Log.INFO, "Need to read from backup settings file");
if (mSettingsFilename.exists()) {
// If both the backup and settings file exist, we
// ignore the settings since it might have been
@@ -8849,7 +8849,7 @@ class PackageManagerService extends IPackageManager.Stub {
if (str == null) {
if (!mSettingsFilename.exists()) {
mReadMessages.append("No settings file found\n");
- Slog.i(TAG, "No current settings file!");
+ reportSettingsProblem(Log.INFO, "No settings file; creating initial state");
return false;
}
str = new FileInputStream(mSettingsFilename);
@@ -8865,7 +8865,7 @@ class PackageManagerService extends IPackageManager.Stub {
if (type != XmlPullParser.START_TAG) {
mReadMessages.append("No start tag found in settings file\n");
- Slog.e(TAG, "No start tag found in package manager settings");
+ reportSettingsProblem(Log.WARN, "No start tag found in package manager settings");
return false;
}
@@ -8928,10 +8928,12 @@ class PackageManagerService extends IPackageManager.Stub {
} catch(XmlPullParserException e) {
mReadMessages.append("Error reading: " + e.toString());
+ reportSettingsProblem(Log.ERROR, "Error reading settings: " + e);
Slog.e(TAG, "Error reading package manager settings", e);
} catch(java.io.IOException e) {
mReadMessages.append("Error reading: " + e.toString());
+ reportSettingsProblem(Log.ERROR, "Error reading settings: " + e);
Slog.e(TAG, "Error reading package manager settings", e);
}
@@ -8945,7 +8947,7 @@ class PackageManagerService extends IPackageManager.Stub {
(SharedUserSetting) idObj, pp.codePath, pp.resourcePath,
pp.nativeLibraryPathString, pp.versionCode, pp.pkgFlags, true, true);
if (p == null) {
- Slog.w(TAG, "Unable to create application package for "
+ reportSettingsProblem(Log.WARN, "Unable to create application package for "
+ pp.name);
continue;
}
@@ -8955,13 +8957,13 @@ class PackageManagerService extends IPackageManager.Stub {
+ " has shared uid " + pp.sharedId
+ " that is not a shared uid\n";
mReadMessages.append(msg);
- Slog.e(TAG, msg);
+ reportSettingsProblem(Log.ERROR, msg);
} else {
String msg = "Bad package setting: package " + pp.name
+ " has shared uid " + pp.sharedId
+ " that is not defined\n";
mReadMessages.append(msg);
- Slog.e(TAG, msg);
+ reportSettingsProblem(Log.ERROR, msg);
}
}
mPendingPackages.clear();
diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java
index 86c7bdf..f52d322 100644
--- a/services/java/com/android/server/am/ActivityStack.java
+++ b/services/java/com/android/server/am/ActivityStack.java
@@ -1881,7 +1881,27 @@ public class ActivityStack {
String resultWho, int requestCode,
int callingPid, int callingUid, boolean onlyIfNeeded,
boolean componentSpecified) {
- Slog.i(TAG, "Starting: " + intent);
+
+ int err = START_SUCCESS;
+
+ ProcessRecord callerApp = null;
+ if (caller != null) {
+ callerApp = mService.getRecordForAppLocked(caller);
+ if (callerApp != null) {
+ callingPid = callerApp.pid;
+ callingUid = callerApp.info.uid;
+ } else {
+ Slog.w(TAG, "Unable to find app for caller " + caller
+ + " (pid=" + callingPid + ") when starting: "
+ + intent.toString());
+ err = START_PERMISSION_DENIED;
+ }
+ }
+
+ if (err == START_SUCCESS) {
+ Slog.i(TAG, "Starting: " + intent + " from pid "
+ + (callerApp != null ? callerApp.pid : callingPid));
+ }
ActivityRecord sourceRecord = null;
ActivityRecord resultRecord = null;
@@ -1916,9 +1936,7 @@ public class ActivityStack {
}
}
- int err = START_SUCCESS;
-
- if (intent.getComponent() == null) {
+ if (err == START_SUCCESS && intent.getComponent() == null) {
// We couldn't find a class that can handle the given Intent.
// That's the end of that!
err = START_INTENT_NOT_RESOLVED;
@@ -1930,20 +1948,6 @@ public class ActivityStack {
err = START_CLASS_NOT_FOUND;
}
- ProcessRecord callerApp = null;
- if (err == START_SUCCESS && caller != null) {
- callerApp = mService.getRecordForAppLocked(caller);
- if (callerApp != null) {
- callingPid = callerApp.pid;
- callingUid = callerApp.info.uid;
- } else {
- Slog.w(TAG, "Unable to find app for caller " + caller
- + " (pid=" + callingPid + ") when starting: "
- + intent.toString());
- err = START_PERMISSION_DENIED;
- }
- }
-
if (err != START_SUCCESS) {
if (resultRecord != null) {
sendActivityResultLocked(-1,