diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java index e3e9d60930954..51c450bc0286c 100755 --- a/services/java/com/android/server/pm/PackageManagerService.java +++ b/services/java/com/android/server/pm/PackageManagerService.java @@ -603,6 +603,12 @@ public class PackageManagerService extends IPackageManager.Stub { private final AtomicLong mLastWritten = new AtomicLong(0); private final AtomicBoolean mBackgroundWriteRunning = new AtomicBoolean(false); + private boolean mIsFirstBoot = false; + + boolean isFirstBoot() { + return mIsFirstBoot; + } + void write(boolean force) { if (force) { write(); @@ -691,6 +697,7 @@ public class PackageManagerService extends IPackageManager.Stub { pkg.mLastPackageUsageTimeInMills = timeInMillis; } } catch (FileNotFoundException expected) { + mIsFirstBoot = true; } catch (IOException e) { Log.w(TAG, "Failed to read package usage times", e); } finally { @@ -1691,7 +1698,7 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public boolean isFirstBoot() { - return !mRestoredSettings; + return !mRestoredSettings || mPackageUsage.isFirstBoot(); } @Override