Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit efb58101 authored by Dianne Hackborn's avatar Dianne Hackborn
Browse files

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
parent a851d8d0
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -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();
+22 −18
Original line number Diff line number Diff line
@@ -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,