Fix infinite loop during package-usage.list file upgrade

When upgrading from version 0 to version 1 of the file
'/data/system/package-usage.list', the PackageManagerService can get
stuck in an infinite loop if one of the listed packages does not
exist, e.g. because it had been uninstalled. Fix the issue by
refactoring the loop.

Bug: 28409278
Change-Id: Ia312bd0d04f696240445b710dd6a68b93c5d5946
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index a328f00..a128877 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -1217,12 +1217,7 @@
             // Initial version of the file had no version number and stored one
             // package-timestamp pair per line.
             // Note that the first line has already been read from the InputStream.
-            String line = firstLine;
-            while (true) {
-                if (line == null) {
-                    break;
-                }
-
+            for (String line = firstLine; line != null; line = readLine(in, sb)) {
                 String[] tokens = line.split(" ");
                 if (tokens.length != 2) {
                     throw new IOException("Failed to parse " + line +
@@ -1241,8 +1236,6 @@
                         reason++) {
                     pkg.mLastPackageUsageTimeInMills[reason] = timestamp;
                 }
-
-                line = readLine(in, sb);
             }
         }