[pm/metrics] fix test on user 10
InstallRequest.mUid is actually appId. Renaming to reflect that. Compute the actual UID in the metrics class. RemovedInfo.mUid is also appId, except in one place where it's used outside the installation flow. That will be fixed in a separate CL. BUG: 262710779 Test: atest com.android.cts.packagemanager.stats.host.PackageInstallationSessionReportedStatsTests Change-Id: I6284f381b5760d14b4913ace5183a5b6f32db9b4
This commit is contained in:
@@ -2252,7 +2252,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
|
||||
@@ -2737,7 +2737,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);
|
||||
}
|
||||
@@ -2760,7 +2760,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,
|
||||
@@ -2905,9 +2905,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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -535,7 +535,7 @@ class InstallingSession {
|
||||
mInstallPackageHelper.installPackagesTraced(installRequests);
|
||||
|
||||
for (InstallRequest request : installRequests) {
|
||||
request.onInstallCompleted(mUser.getIdentifier());
|
||||
request.onInstallCompleted();
|
||||
doPostInstall(request);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user