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

Commit db9f9fbe authored by Song Chun Fan's avatar Song Chun Fan Committed by Android (Google) Code Review
Browse files

Merge "[pm/metrics] fix test on user 10"

parents 0da4f48c 680f3503
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -2291,7 +2291,7 @@ final class InstallPackageHelper {
                }
            }
            installRequest.setName(pkgName);
            installRequest.setUid(pkg.getUid());
            installRequest.setAppId(pkg.getUid());
            installRequest.setPkg(pkg);
            installRequest.setReturnCode(PackageManager.INSTALL_SUCCEEDED);
            //to update install status
@@ -2776,7 +2776,7 @@ final class InstallPackageHelper {
            }

            Bundle extras = new Bundle();
            extras.putInt(Intent.EXTRA_UID, request.getUid());
            extras.putInt(Intent.EXTRA_UID, request.getAppId());
            if (update) {
                extras.putBoolean(Intent.EXTRA_REPLACING, true);
            }
@@ -2799,7 +2799,7 @@ final class InstallPackageHelper {

                // Send PACKAGE_ADDED broadcast for users that see the package for the first time
                // sendPackageAddedForNewUsers also deals with system apps
                int appId = UserHandle.getAppId(request.getUid());
                int appId = UserHandle.getAppId(request.getAppId());
                boolean isSystem = request.isInstallSystem();
                mPm.sendPackageAddedForNewUsers(mPm.snapshotComputer(), packageName,
                        isSystem || virtualPreload, virtualPreload /*startReceiver*/, appId,
@@ -2944,9 +2944,9 @@ final class InstallPackageHelper {
            }

            if (allNewUsers && !update) {
                mPm.notifyPackageAdded(packageName, request.getUid());
                mPm.notifyPackageAdded(packageName, request.getAppId());
            } else {
                mPm.notifyPackageChanged(packageName, request.getUid());
                mPm.notifyPackageChanged(packageName, request.getAppId());
            }

            // Log current value of "unknown sources" setting
+8 −8
Original line number Diff line number Diff line
@@ -81,7 +81,7 @@ final class InstallRequest {
    /** Package Installed Info */
    @Nullable
    private String mName;
    private int mUid = INVALID_UID;
    private int mAppId = INVALID_UID;
    // The set of users that originally had this package installed.
    @Nullable
    private int[] mOrigUsers;
@@ -158,7 +158,7 @@ final class InstallRequest {
            mUserId = user.getIdentifier();
        } else {
            // APEX
            mUserId = INVALID_UID;
            mUserId = UserHandle.USER_SYSTEM;
        }
        mInstallArgs = null;
        mParsedPackage = parsedPackage;
@@ -367,8 +367,8 @@ final class InstallRequest {
        return mOrigUsers;
    }

    public int getUid() {
        return mUid;
    public int getAppId() {
        return mAppId;
    }

    @Nullable
@@ -648,8 +648,8 @@ final class InstallRequest {
        mPkg = pkg;
    }

    public void setUid(int uid) {
        mUid = uid;
    public void setAppId(int appId) {
        mAppId = appId;
    }

    public void setNewUsers(int[] newUsers) {
@@ -773,10 +773,10 @@ final class InstallRequest {
        }
    }

    public void onInstallCompleted(int userId) {
    public void onInstallCompleted() {
        if (getReturnCode() == INSTALL_SUCCEEDED) {
            if (mPackageMetrics != null) {
                mPackageMetrics.onInstallSucceed(userId);
                mPackageMetrics.onInstallSucceed();
            }
        }
    }
+1 −1
Original line number Diff line number Diff line
@@ -535,7 +535,7 @@ class InstallingSession {
            mInstallPackageHelper.installPackagesTraced(installRequests);

            for (InstallRequest request : installRequests) {
                request.onInstallCompleted(mUser.getIdentifier());
                request.onInstallCompleted();
                doPostInstall(request);
            }
        }
+16 −6
Original line number Diff line number Diff line
@@ -19,9 +19,11 @@ package com.android.server.pm;
import static android.os.Process.INVALID_UID;

import android.annotation.IntDef;
import android.app.ActivityManager;
import android.app.admin.SecurityLog;
import android.content.pm.PackageManager;
import android.content.pm.parsing.ApkLiteParseUtils;
import android.os.UserHandle;
import android.util.Pair;
import android.util.SparseArray;

@@ -68,8 +70,8 @@ final class PackageMetrics {
        mInstallRequest = installRequest;
    }

    public void onInstallSucceed(int userId) {
        reportInstallationToSecurityLog(userId);
    public void onInstallSucceed() {
        reportInstallationToSecurityLog(mInstallRequest.getUserId());
        reportInstallationStats(true /* success */);
    }

@@ -110,10 +112,11 @@ final class PackageMetrics {
            }
        }


        FrameworkStatsLog.write(FrameworkStatsLog.PACKAGE_INSTALLATION_SESSION_REPORTED,
                mInstallRequest.getSessionId() /* session_id */,
                packageName /* package_name */,
                mInstallRequest.getUid() /* uid */,
                getUid(mInstallRequest.getAppId(), mInstallRequest.getUserId()) /* uid */,
                newUsers /* user_ids */,
                userManagerInternal.getUserTypesForStatsd(newUsers) /* user_types */,
                originalUsers /* original_user_ids */,
@@ -140,6 +143,13 @@ final class PackageMetrics {
        );
    }

    private static int getUid(int appId, int userId) {
        if (userId == UserHandle.USER_ALL) {
            userId = ActivityManager.getCurrentUser();
        }
        return UserHandle.getUid(userId, appId);
    }

    private long getApksSize(File apkDir) {
        // TODO(b/249294752): also count apk sizes for failed installs
        final AtomicLong apksSize = new AtomicLong();
@@ -218,9 +228,9 @@ final class PackageMetrics {
        final int[] originalUsers = info.mOrigUsers;
        final int[] originalUserTypes = userManagerInternal.getUserTypesForStatsd(originalUsers);
        FrameworkStatsLog.write(FrameworkStatsLog.PACKAGE_UNINSTALLATION_REPORTED,
                info.mUid, removedUsers, removedUserTypes, originalUsers, originalUserTypes,
                deleteFlags, PackageManager.DELETE_SUCCEEDED, info.mIsRemovedPackageSystemUpdate,
                !info.mRemovedForAllUsers);
                getUid(info.mUid, userId), removedUsers, removedUserTypes, originalUsers,
                originalUserTypes, deleteFlags, PackageManager.DELETE_SUCCEEDED,
                info.mIsRemovedPackageSystemUpdate, !info.mRemovedForAllUsers);
        final String packageName = info.mRemovedPackage;
        final long versionCode = info.mRemovedPackageVersionCode;
        reportUninstallationToSecurityLog(packageName, versionCode, userId);