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

Commit 9ed5d65d authored by William Loh's avatar William Loh Committed by Android (Google) Code Review
Browse files

Merge "Set correct install times for system user" into main

parents 38f9e8e2 ca0bcfee
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -2231,8 +2231,9 @@ final class InstallPackageHelper {
                //  by apexd to be more accurate.
                installRequest.setScannedPackageSettingFirstInstallTimeFromReplaced(
                        deletedPkgSetting, allUsers);
                installRequest.setScannedPackageSettingLastUpdateTime(
                        System.currentTimeMillis());
                long currentTime = System.currentTimeMillis();
                installRequest.setScannedPackageSettingLastUpdateTime(currentTime);
                installRequest.setScannedPackageSettingFirstInstallTime(currentTime);

                installRequest.getRemovedInfo().mBroadcastAllowList =
                        mPm.mAppsFilter.getVisibilityAllowList(mPm.snapshotComputer(),
+9 −0
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ import com.android.server.art.model.DexoptResult;
import com.android.server.pm.pkg.AndroidPackage;
import com.android.server.pm.pkg.PackageState;
import com.android.server.pm.pkg.PackageStateInternal;
import com.android.server.pm.pkg.PackageUserStateInternal;

import java.io.File;
import java.util.ArrayList;
@@ -867,6 +868,14 @@ final class InstallRequest {
        mScanResult.mPkgSetting.setLastUpdateTime(lastUpdateTim);
    }

    public void setScannedPackageSettingFirstInstallTime(long firstInstallTime) {
        assertScanResultExists();
        PackageUserStateInternal userState = mScanResult.mPkgSetting.getUserStates().get(mUserId);
        if (userState != null && userState.getFirstInstallTimeMillis() == 0) {
            mScanResult.mPkgSetting.setFirstInstallTime(firstInstallTime, mUserId);
        }
    }

    public void setRemovedAppId(int appId) {
        if (mRemovedInfo != null) {
            mRemovedInfo.mUid = appId;
+4 −5
Original line number Diff line number Diff line
@@ -443,17 +443,16 @@ final class ScanPackageUtils {

        // Take care of first install / last update times.
        final long scanFileTime = getLastModifiedTime(parsedPackage);
        final long existingFirstInstallTime = userId == UserHandle.USER_ALL
                ? PackageStateUtils.getEarliestFirstInstallTime(pkgSetting.getUserStates())
                : pkgSetting.readUserState(userId).getFirstInstallTimeMillis();
        final long earliestFirstInstallTime =
                PackageStateUtils.getEarliestFirstInstallTime((pkgSetting.getUserStates()));
        if (currentTime != 0) {
            if (existingFirstInstallTime == 0) {
            if (earliestFirstInstallTime == 0) {
                pkgSetting.setFirstInstallTime(currentTime, userId)
                        .setLastUpdateTime(currentTime);
            } else if ((scanFlags & SCAN_UPDATE_TIME) != 0) {
                pkgSetting.setLastUpdateTime(currentTime);
            }
        } else if (existingFirstInstallTime == 0) {
        } else if (earliestFirstInstallTime == 0) {
            // We need *something*.  Take time stamp of the file.
            pkgSetting.setFirstInstallTime(scanFileTime, userId)
                    .setLastUpdateTime(scanFileTime);