diff options
4 files changed, 30 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/pm/InstallRequest.java b/services/core/java/com/android/server/pm/InstallRequest.java index 01a8bd0a4225..4e5a6f9fa2b5 100644 --- a/services/core/java/com/android/server/pm/InstallRequest.java +++ b/services/core/java/com/android/server/pm/InstallRequest.java @@ -16,6 +16,7 @@ package com.android.server.pm; +import static android.content.pm.PackageInstaller.SessionParams.USER_ACTION_UNSPECIFIED; import static android.content.pm.PackageManager.INSTALL_REASON_UNKNOWN; import static android.content.pm.PackageManager.INSTALL_SCENARIO_DEFAULT; import static android.content.pm.PackageManager.INSTALL_SUCCEEDED; @@ -114,6 +115,8 @@ final class InstallRequest { @Nullable private final PackageMetrics mPackageMetrics; + private final int mSessionId; + private final int mRequireUserAction; // New install InstallRequest(InstallingSession params) { @@ -128,6 +131,8 @@ final class InstallRequest { params.mDataLoaderType, params.mPackageSource); mPackageMetrics = new PackageMetrics(this); mIsInstallInherit = params.mIsInherit; + mSessionId = params.mSessionId; + mRequireUserAction = params.mRequireUserAction; } // Install existing package as user @@ -141,6 +146,8 @@ final class InstallRequest { mPostInstallRunnable = runnable; mPackageMetrics = new PackageMetrics(this); mIsInstallForUsers = true; + mSessionId = -1; + mRequireUserAction = USER_ACTION_UNSPECIFIED; } // addForInit @@ -158,6 +165,8 @@ final class InstallRequest { mScanFlags = scanFlags; mScanResult = scanResult; mPackageMetrics = null; // No logging from this code path + mSessionId = -1; + mRequireUserAction = USER_ACTION_UNSPECIFIED; } @Nullable @@ -565,6 +574,14 @@ final class InstallRequest { } } + public int getSessionId() { + return mSessionId; + } + + public int getRequireUserAction() { + return mRequireUserAction; + } + public void setScanFlags(int scanFlags) { mScanFlags = scanFlags; } diff --git a/services/core/java/com/android/server/pm/InstallingSession.java b/services/core/java/com/android/server/pm/InstallingSession.java index e4a0a3ab8dfa..d8494dbaa827 100644 --- a/services/core/java/com/android/server/pm/InstallingSession.java +++ b/services/core/java/com/android/server/pm/InstallingSession.java @@ -18,6 +18,7 @@ package com.android.server.pm; import static android.app.AppOpsManager.MODE_DEFAULT; import static android.content.pm.PackageInstaller.SessionParams.MODE_INHERIT_EXISTING; +import static android.content.pm.PackageInstaller.SessionParams.USER_ACTION_UNSPECIFIED; import static android.content.pm.PackageManager.INSTALL_FAILED_INTERNAL_ERROR; import static android.content.pm.PackageManager.INSTALL_STAGED; import static android.content.pm.PackageManager.INSTALL_SUCCEEDED; @@ -95,7 +96,10 @@ class InstallingSession { final InstallPackageHelper mInstallPackageHelper; final RemovePackageHelper mRemovePackageHelper; final boolean mIsInherit; + final int mSessionId; + final int mRequireUserAction; + // For move install InstallingSession(OriginInfo originInfo, MoveInfo moveInfo, IPackageInstallObserver2 observer, int installFlags, InstallSource installSource, String volumeUuid, UserHandle user, String packageAbiOverride, int packageSource, @@ -124,9 +128,11 @@ class InstallingSession { mPackageSource = packageSource; mPackageLite = packageLite; mIsInherit = false; + mSessionId = -1; + mRequireUserAction = USER_ACTION_UNSPECIFIED; } - InstallingSession(File stagedDir, IPackageInstallObserver2 observer, + InstallingSession(int sessionId, File stagedDir, IPackageInstallObserver2 observer, PackageInstaller.SessionParams sessionParams, InstallSource installSource, UserHandle user, SigningDetails signingDetails, int installerUid, PackageLite packageLite, PackageManagerService pm) { @@ -155,6 +161,8 @@ class InstallingSession { mPackageSource = sessionParams.packageSource; mPackageLite = packageLite; mIsInherit = sessionParams.mode == MODE_INHERIT_EXISTING; + mSessionId = sessionId; + mRequireUserAction = sessionParams.requireUserAction; } @Override diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java index 3cc19071a213..a2b462a8d76c 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerSession.java +++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java @@ -2566,8 +2566,8 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { } synchronized (mLock) { - return new InstallingSession(stageDir, localObserver, params, mInstallSource, user, - mSigningDetails, mInstallerUid, mPackageLite, mPm); + return new InstallingSession(sessionId, stageDir, localObserver, params, mInstallSource, + user, mSigningDetails, mInstallerUid, mPackageLite, mPm); } } diff --git a/services/core/java/com/android/server/pm/PackageMetrics.java b/services/core/java/com/android/server/pm/PackageMetrics.java index cb87ff5467a8..0574f737a54b 100644 --- a/services/core/java/com/android/server/pm/PackageMetrics.java +++ b/services/core/java/com/android/server/pm/PackageMetrics.java @@ -92,7 +92,7 @@ final class PackageMetrics { final long apksSize = getApksSize(ps.getPath()); FrameworkStatsLog.write(FrameworkStatsLog.PACKAGE_INSTALLATION_SESSION_REPORTED, - 0 /* session_id */, + mInstallRequest.getSessionId() /* session_id */, success ? null : packageName /* not report package_name on success */, mInstallRequest.getUid() /* uid */, newUsers /* user_ids */, @@ -110,7 +110,7 @@ final class PackageMetrics { installerUid /* installer_package_uid */, -1 /* original_installer_package_uid */, mInstallRequest.getDataLoaderType() /* data_loader_type */, - 0 /* user_action_required_type */, + mInstallRequest.getRequireUserAction() /* user_action_required_type */, mInstallRequest.isInstantInstall() /* is_instant */, mInstallRequest.isInstallReplace() /* is_replace */, mInstallRequest.isInstallSystem() /* is_system */, |