Loading core/java/android/app/ActivityThread.java +12 −5 Original line number Original line Diff line number Diff line Loading @@ -38,10 +38,8 @@ import static android.window.ConfigurationHelper.shouldUpdateResources; import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE; import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE; import android.annotation.ElapsedRealtimeLong; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.Nullable; import android.annotation.UptimeMillisLong; import android.app.RemoteServiceException.BadForegroundServiceNotificationException; import android.app.RemoteServiceException.BadForegroundServiceNotificationException; import android.app.RemoteServiceException.CannotDeliverBroadcastException; import android.app.RemoteServiceException.CannotDeliverBroadcastException; import android.app.RemoteServiceException.CannotPostForegroundServiceNotificationException; import android.app.RemoteServiceException.CannotPostForegroundServiceNotificationException; Loading Loading @@ -2548,10 +2546,19 @@ public final class ActivityThread extends ClientTransactionHandler if (packageInfo != null) { if (packageInfo != null) { if (!isLoadedApkResourceDirsUpToDate(packageInfo, aInfo)) { if (!isLoadedApkResourceDirsUpToDate(packageInfo, aInfo)) { if (packageInfo.getApplicationInfo().createTimestamp > aInfo.createTimestamp) { // The cached loaded apk is newer than the one passed in, we should not // update the cached version Slog.w(TAG, "getPackageInfo() called with an older ApplicationInfo " + "than the cached version for package " + aInfo.packageName); } else { Slog.v(TAG, "getPackageInfo() caused update to cached ApplicationInfo " + "for package " + aInfo.packageName); List<String> oldPaths = new ArrayList<>(); List<String> oldPaths = new ArrayList<>(); LoadedApk.makePaths(this, aInfo, oldPaths); LoadedApk.makePaths(this, aInfo, oldPaths); packageInfo.updateApplicationInfo(aInfo, oldPaths); packageInfo.updateApplicationInfo(aInfo, oldPaths); } } } return packageInfo; return packageInfo; } } Loading core/java/android/content/pm/ApplicationInfo.java +11 −0 Original line number Original line Diff line number Diff line Loading @@ -1147,6 +1147,12 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { @UnsupportedAppUsage @UnsupportedAppUsage public int versionCode; public int versionCode; /** * The timestamp of when this ApplicationInfo was created. * @hide */ public long createTimestamp; /** /** * The user-visible SDK version (ex. 26) of the framework against which the application claims * The user-visible SDK version (ex. 26) of the framework against which the application claims * to have been compiled, or {@code 0} if not specified. * to have been compiled, or {@code 0} if not specified. Loading Loading @@ -1639,6 +1645,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { + requestRawExternalStorageAccess); + requestRawExternalStorageAccess); } } } } pw.println(prefix + "createTimestamp=" + createTimestamp); super.dumpBack(pw, prefix); super.dumpBack(pw, prefix); } } Loading Loading @@ -1796,6 +1803,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { } } public ApplicationInfo() { public ApplicationInfo() { createTimestamp = System.currentTimeMillis(); } } public ApplicationInfo(ApplicationInfo orig) { public ApplicationInfo(ApplicationInfo orig) { Loading Loading @@ -1867,6 +1875,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { memtagMode = orig.memtagMode; memtagMode = orig.memtagMode; nativeHeapZeroInitialized = orig.nativeHeapZeroInitialized; nativeHeapZeroInitialized = orig.nativeHeapZeroInitialized; requestRawExternalStorageAccess = orig.requestRawExternalStorageAccess; requestRawExternalStorageAccess = orig.requestRawExternalStorageAccess; createTimestamp = System.currentTimeMillis(); } } public String toString() { public String toString() { Loading Loading @@ -1957,6 +1966,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { dest.writeInt(memtagMode); dest.writeInt(memtagMode); dest.writeInt(nativeHeapZeroInitialized); dest.writeInt(nativeHeapZeroInitialized); sForBoolean.parcel(requestRawExternalStorageAccess, dest, parcelableFlags); sForBoolean.parcel(requestRawExternalStorageAccess, dest, parcelableFlags); dest.writeLong(createTimestamp); } } public static final @android.annotation.NonNull Parcelable.Creator<ApplicationInfo> CREATOR public static final @android.annotation.NonNull Parcelable.Creator<ApplicationInfo> CREATOR Loading Loading @@ -2044,6 +2054,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { memtagMode = source.readInt(); memtagMode = source.readInt(); nativeHeapZeroInitialized = source.readInt(); nativeHeapZeroInitialized = source.readInt(); requestRawExternalStorageAccess = sForBoolean.unparcel(source); requestRawExternalStorageAccess = sForBoolean.unparcel(source); createTimestamp = source.readLong(); } } /** /** Loading Loading
core/java/android/app/ActivityThread.java +12 −5 Original line number Original line Diff line number Diff line Loading @@ -38,10 +38,8 @@ import static android.window.ConfigurationHelper.shouldUpdateResources; import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE; import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE; import android.annotation.ElapsedRealtimeLong; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.Nullable; import android.annotation.UptimeMillisLong; import android.app.RemoteServiceException.BadForegroundServiceNotificationException; import android.app.RemoteServiceException.BadForegroundServiceNotificationException; import android.app.RemoteServiceException.CannotDeliverBroadcastException; import android.app.RemoteServiceException.CannotDeliverBroadcastException; import android.app.RemoteServiceException.CannotPostForegroundServiceNotificationException; import android.app.RemoteServiceException.CannotPostForegroundServiceNotificationException; Loading Loading @@ -2548,10 +2546,19 @@ public final class ActivityThread extends ClientTransactionHandler if (packageInfo != null) { if (packageInfo != null) { if (!isLoadedApkResourceDirsUpToDate(packageInfo, aInfo)) { if (!isLoadedApkResourceDirsUpToDate(packageInfo, aInfo)) { if (packageInfo.getApplicationInfo().createTimestamp > aInfo.createTimestamp) { // The cached loaded apk is newer than the one passed in, we should not // update the cached version Slog.w(TAG, "getPackageInfo() called with an older ApplicationInfo " + "than the cached version for package " + aInfo.packageName); } else { Slog.v(TAG, "getPackageInfo() caused update to cached ApplicationInfo " + "for package " + aInfo.packageName); List<String> oldPaths = new ArrayList<>(); List<String> oldPaths = new ArrayList<>(); LoadedApk.makePaths(this, aInfo, oldPaths); LoadedApk.makePaths(this, aInfo, oldPaths); packageInfo.updateApplicationInfo(aInfo, oldPaths); packageInfo.updateApplicationInfo(aInfo, oldPaths); } } } return packageInfo; return packageInfo; } } Loading
core/java/android/content/pm/ApplicationInfo.java +11 −0 Original line number Original line Diff line number Diff line Loading @@ -1147,6 +1147,12 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { @UnsupportedAppUsage @UnsupportedAppUsage public int versionCode; public int versionCode; /** * The timestamp of when this ApplicationInfo was created. * @hide */ public long createTimestamp; /** /** * The user-visible SDK version (ex. 26) of the framework against which the application claims * The user-visible SDK version (ex. 26) of the framework against which the application claims * to have been compiled, or {@code 0} if not specified. * to have been compiled, or {@code 0} if not specified. Loading Loading @@ -1639,6 +1645,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { + requestRawExternalStorageAccess); + requestRawExternalStorageAccess); } } } } pw.println(prefix + "createTimestamp=" + createTimestamp); super.dumpBack(pw, prefix); super.dumpBack(pw, prefix); } } Loading Loading @@ -1796,6 +1803,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { } } public ApplicationInfo() { public ApplicationInfo() { createTimestamp = System.currentTimeMillis(); } } public ApplicationInfo(ApplicationInfo orig) { public ApplicationInfo(ApplicationInfo orig) { Loading Loading @@ -1867,6 +1875,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { memtagMode = orig.memtagMode; memtagMode = orig.memtagMode; nativeHeapZeroInitialized = orig.nativeHeapZeroInitialized; nativeHeapZeroInitialized = orig.nativeHeapZeroInitialized; requestRawExternalStorageAccess = orig.requestRawExternalStorageAccess; requestRawExternalStorageAccess = orig.requestRawExternalStorageAccess; createTimestamp = System.currentTimeMillis(); } } public String toString() { public String toString() { Loading Loading @@ -1957,6 +1966,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { dest.writeInt(memtagMode); dest.writeInt(memtagMode); dest.writeInt(nativeHeapZeroInitialized); dest.writeInt(nativeHeapZeroInitialized); sForBoolean.parcel(requestRawExternalStorageAccess, dest, parcelableFlags); sForBoolean.parcel(requestRawExternalStorageAccess, dest, parcelableFlags); dest.writeLong(createTimestamp); } } public static final @android.annotation.NonNull Parcelable.Creator<ApplicationInfo> CREATOR public static final @android.annotation.NonNull Parcelable.Creator<ApplicationInfo> CREATOR Loading Loading @@ -2044,6 +2054,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { memtagMode = source.readInt(); memtagMode = source.readInt(); nativeHeapZeroInitialized = source.readInt(); nativeHeapZeroInitialized = source.readInt(); requestRawExternalStorageAccess = sForBoolean.unparcel(source); requestRawExternalStorageAccess = sForBoolean.unparcel(source); createTimestamp = source.readLong(); } } /** /** Loading