diff options
author | Dianne Hackborn <hackbod@google.com> | 2010-10-14 16:47:34 -0700 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2010-10-15 11:22:17 -0700 |
commit | efb581018bbede2ecdc76bcd9722ded5b6903254 (patch) | |
tree | 53ba83804a0ac7a53331b12bec05479954de6a9a /services | |
parent | a851d8d0cfec45e33ee884114548a4f2890d1f06 (diff) | |
download | frameworks_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.java | 14 | ||||
-rw-r--r-- | services/java/com/android/server/am/ActivityStack.java | 40 |
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, |