Loading core/proto/android/service/package.proto +3 −2 Original line number Diff line number Diff line Loading @@ -112,6 +112,8 @@ message PackageProto { optional string last_disabled_app_caller = 8; repeated string suspending_package = 9; optional int32 distraction_flags = 10; // UTC timestamp of first install for the user optional int32 first_install_time_ms = 11; } message InstallSourceProto { Loading Loading @@ -147,8 +149,7 @@ message PackageProto { optional int32 version_code = 3; // Package's reported version string (what's displayed to the user). optional string version_string = 4; // UTC timestamp of install optional int64 install_time_ms = 5; reserved 5; // Millisecond UTC timestamp of latest update adjusted to Google's server clock. optional int64 update_time_ms = 6; // From "dumpsys package" - name of package which installed this one. Loading services/core/java/com/android/server/pm/ComputerEngine.java +7 −8 Original line number Diff line number Diff line Loading @@ -1560,7 +1560,7 @@ public class ComputerEngine implements Computer { : mPermissionManager.getGrantedPermissions(ps.getPackageName(), userId); PackageInfo packageInfo = PackageInfoUtils.generate(p, gids, flags, ps.getFirstInstallTime(), ps.getLastUpdateTime(), permissions, state, userId, state.getFirstInstallTime(), ps.getLastUpdateTime(), permissions, state, userId, ps); if (packageInfo == null) { Loading @@ -1577,7 +1577,7 @@ public class ComputerEngine implements Computer { pi.packageName = ps.getPackageName(); pi.setLongVersionCode(ps.getVersionCode()); pi.sharedUserId = (ps.getSharedUser() != null) ? ps.getSharedUser().name : null; pi.firstInstallTime = ps.getFirstInstallTime(); pi.firstInstallTime = state.getFirstInstallTime(); pi.lastUpdateTime = ps.getLastUpdateTime(); ApplicationInfo ai = new ApplicationInfo(); Loading Loading @@ -5436,12 +5436,11 @@ public class ComputerEngine implements Computer { } PackageDexUsage.PackageUseInfo packageUseInfo = mDexManager.getPackageUseInfoOrDefault(packageState.getPackageName()); if (PackageManagerServiceUtils .isUnusedSinceTimeInMillis(packageState.getFirstInstallTime(), if (PackageManagerServiceUtils.isUnusedSinceTimeInMillis( PackageStateUtils.getEarliestFirstInstallTime(packageState.getUserStates()), currentTimeInMillis, downgradeTimeThresholdMillis, packageUseInfo, packageState.getTransientState().getLatestPackageUseTimeInMills(), packageState.getTransientState() .getLatestForegroundPackageUseTimeInMills())) { packageState.getTransientState().getLatestForegroundPackageUseTimeInMills())) { unusedPackages.add(packageState.getPackageName()); } } Loading services/core/java/com/android/server/pm/DeletePackageHelper.java +2 −1 Original line number Diff line number Diff line Loading @@ -556,7 +556,8 @@ final class DeletePackageHelper { PackageManager.INSTALL_REASON_UNKNOWN, PackageManager.UNINSTALL_REASON_UNKNOWN, null /*harmfulAppWarning*/, null /*splashScreenTheme*/); null /*splashScreenTheme*/, 0 /*firstInstallTime*/); } mPm.mSettings.writeKernelMappingLPr(ps); } Loading services/core/java/com/android/server/pm/InstallPackageHelper.java +2 −1 Original line number Diff line number Diff line Loading @@ -561,6 +561,7 @@ final class InstallPackageHelper { pkgSetting.setHidden(false, userId); pkgSetting.setInstallReason(installReason, userId); pkgSetting.setUninstallReason(PackageManager.UNINSTALL_REASON_UNKNOWN, userId); pkgSetting.setFirstInstallTime(System.currentTimeMillis(), userId); mPm.mSettings.writePackageRestrictionsLPr(userId); mPm.mSettings.writeKernelMappingLPr(pkgSetting); installed = true; Loading Loading @@ -1902,7 +1903,7 @@ final class InstallPackageHelper { PackageStateInternal deletedPkgSetting = mPm.getPackageStateInternal( oldPackage.getPackageName()); reconciledPkg.mPkgSetting .setFirstInstallTime(deletedPkgSetting.getFirstInstallTime()) .setFirstInstallTimeFromReplaced(deletedPkgSetting, request.mAllUsers) .setLastUpdateTime(System.currentTimeMillis()); res.mRemovedInfo.mBroadcastAllowList = mPm.mAppsFilter.getVisibilityAllowList( Loading services/core/java/com/android/server/pm/InstantAppRegistry.java +5 −1 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ import com.android.server.pm.parsing.pkg.AndroidPackage; import com.android.server.pm.parsing.pkg.AndroidPackageUtils; import com.android.server.pm.permission.PermissionManagerServiceInternal; import com.android.server.pm.pkg.PackageStateInternal; import com.android.server.pm.pkg.PackageStateUtils; import com.android.server.pm.pkg.PackageUserStateInternal; import com.android.server.utils.Snappable; import com.android.server.utils.SnapshotCache; Loading Loading @@ -854,7 +855,10 @@ class InstantAppRegistry implements Watchable, Snappable { } else if (lhsPs.getTransientState().getLatestPackageUseTimeInMills() < rhsPs.getTransientState().getLatestPackageUseTimeInMills()) { return -1; } else if (lhsPs.getFirstInstallTime() > rhsPs.getFirstInstallTime()) { } else if ( PackageStateUtils.getEarliestFirstInstallTime(lhsPs.getUserStates()) > PackageStateUtils.getEarliestFirstInstallTime( rhsPs.getUserStates())) { return 1; } else { return -1; Loading Loading
core/proto/android/service/package.proto +3 −2 Original line number Diff line number Diff line Loading @@ -112,6 +112,8 @@ message PackageProto { optional string last_disabled_app_caller = 8; repeated string suspending_package = 9; optional int32 distraction_flags = 10; // UTC timestamp of first install for the user optional int32 first_install_time_ms = 11; } message InstallSourceProto { Loading Loading @@ -147,8 +149,7 @@ message PackageProto { optional int32 version_code = 3; // Package's reported version string (what's displayed to the user). optional string version_string = 4; // UTC timestamp of install optional int64 install_time_ms = 5; reserved 5; // Millisecond UTC timestamp of latest update adjusted to Google's server clock. optional int64 update_time_ms = 6; // From "dumpsys package" - name of package which installed this one. Loading
services/core/java/com/android/server/pm/ComputerEngine.java +7 −8 Original line number Diff line number Diff line Loading @@ -1560,7 +1560,7 @@ public class ComputerEngine implements Computer { : mPermissionManager.getGrantedPermissions(ps.getPackageName(), userId); PackageInfo packageInfo = PackageInfoUtils.generate(p, gids, flags, ps.getFirstInstallTime(), ps.getLastUpdateTime(), permissions, state, userId, state.getFirstInstallTime(), ps.getLastUpdateTime(), permissions, state, userId, ps); if (packageInfo == null) { Loading @@ -1577,7 +1577,7 @@ public class ComputerEngine implements Computer { pi.packageName = ps.getPackageName(); pi.setLongVersionCode(ps.getVersionCode()); pi.sharedUserId = (ps.getSharedUser() != null) ? ps.getSharedUser().name : null; pi.firstInstallTime = ps.getFirstInstallTime(); pi.firstInstallTime = state.getFirstInstallTime(); pi.lastUpdateTime = ps.getLastUpdateTime(); ApplicationInfo ai = new ApplicationInfo(); Loading Loading @@ -5436,12 +5436,11 @@ public class ComputerEngine implements Computer { } PackageDexUsage.PackageUseInfo packageUseInfo = mDexManager.getPackageUseInfoOrDefault(packageState.getPackageName()); if (PackageManagerServiceUtils .isUnusedSinceTimeInMillis(packageState.getFirstInstallTime(), if (PackageManagerServiceUtils.isUnusedSinceTimeInMillis( PackageStateUtils.getEarliestFirstInstallTime(packageState.getUserStates()), currentTimeInMillis, downgradeTimeThresholdMillis, packageUseInfo, packageState.getTransientState().getLatestPackageUseTimeInMills(), packageState.getTransientState() .getLatestForegroundPackageUseTimeInMills())) { packageState.getTransientState().getLatestForegroundPackageUseTimeInMills())) { unusedPackages.add(packageState.getPackageName()); } } Loading
services/core/java/com/android/server/pm/DeletePackageHelper.java +2 −1 Original line number Diff line number Diff line Loading @@ -556,7 +556,8 @@ final class DeletePackageHelper { PackageManager.INSTALL_REASON_UNKNOWN, PackageManager.UNINSTALL_REASON_UNKNOWN, null /*harmfulAppWarning*/, null /*splashScreenTheme*/); null /*splashScreenTheme*/, 0 /*firstInstallTime*/); } mPm.mSettings.writeKernelMappingLPr(ps); } Loading
services/core/java/com/android/server/pm/InstallPackageHelper.java +2 −1 Original line number Diff line number Diff line Loading @@ -561,6 +561,7 @@ final class InstallPackageHelper { pkgSetting.setHidden(false, userId); pkgSetting.setInstallReason(installReason, userId); pkgSetting.setUninstallReason(PackageManager.UNINSTALL_REASON_UNKNOWN, userId); pkgSetting.setFirstInstallTime(System.currentTimeMillis(), userId); mPm.mSettings.writePackageRestrictionsLPr(userId); mPm.mSettings.writeKernelMappingLPr(pkgSetting); installed = true; Loading Loading @@ -1902,7 +1903,7 @@ final class InstallPackageHelper { PackageStateInternal deletedPkgSetting = mPm.getPackageStateInternal( oldPackage.getPackageName()); reconciledPkg.mPkgSetting .setFirstInstallTime(deletedPkgSetting.getFirstInstallTime()) .setFirstInstallTimeFromReplaced(deletedPkgSetting, request.mAllUsers) .setLastUpdateTime(System.currentTimeMillis()); res.mRemovedInfo.mBroadcastAllowList = mPm.mAppsFilter.getVisibilityAllowList( Loading
services/core/java/com/android/server/pm/InstantAppRegistry.java +5 −1 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ import com.android.server.pm.parsing.pkg.AndroidPackage; import com.android.server.pm.parsing.pkg.AndroidPackageUtils; import com.android.server.pm.permission.PermissionManagerServiceInternal; import com.android.server.pm.pkg.PackageStateInternal; import com.android.server.pm.pkg.PackageStateUtils; import com.android.server.pm.pkg.PackageUserStateInternal; import com.android.server.utils.Snappable; import com.android.server.utils.SnapshotCache; Loading Loading @@ -854,7 +855,10 @@ class InstantAppRegistry implements Watchable, Snappable { } else if (lhsPs.getTransientState().getLatestPackageUseTimeInMills() < rhsPs.getTransientState().getLatestPackageUseTimeInMills()) { return -1; } else if (lhsPs.getFirstInstallTime() > rhsPs.getFirstInstallTime()) { } else if ( PackageStateUtils.getEarliestFirstInstallTime(lhsPs.getUserStates()) > PackageStateUtils.getEarliestFirstInstallTime( rhsPs.getUserStates())) { return 1; } else { return -1; Loading