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

This commit is contained in:
Song Chun Fan
2023-01-12 20:09:30 +00:00
committed by Android (Google) Code Review
4 changed files with 30 additions and 20 deletions

View File

@@ -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

View File

@@ -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();
}
}
}

View File

@@ -535,7 +535,7 @@ class InstallingSession {
mInstallPackageHelper.installPackagesTraced(installRequests);
for (InstallRequest request : installRequests) {
request.onInstallCompleted(mUser.getIdentifier());
request.onInstallCompleted();
doPostInstall(request);
}
}

View File

@@ -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);