OSDN Git Service

Cache package names after reboot
authorFyodor Kupolov <fkupolov@google.com>
Fri, 29 Jul 2016 02:53:19 +0000 (19:53 -0700)
committerFyodor Kupolov <fkupolov@google.com>
Fri, 29 Jul 2016 02:53:19 +0000 (19:53 -0700)
In case of a reboot mApkToPackageMap becomes empty, but packages can still
be installed in user 0. We need to repopulate the cache again.

Bug: 30280710
Change-Id: Ia18e93c351b5af80de434e8c5311b961b314a9fb

services/retaildemo/java/com/android/server/retaildemo/PreloadAppsInstaller.java

index c0bf9b3..7a3b461 100644 (file)
@@ -130,6 +130,10 @@ class PreloadAppsInstaller {
                     // Install on user 0 so that the package is cached when demo user is re-created
                     installExistingPackage(basePackageName, UserHandle.USER_SYSTEM, counter);
                 } else if (returnCode == PackageManager.INSTALL_FAILED_ALREADY_EXISTS) {
+                    // This can only happen in first session after a reboot
+                    if (!mApkToPackageMap.containsKey(apkName)) {
+                        mApkToPackageMap.put(apkName, basePackageName);
+                    }
                     installExistingPackage(basePackageName, userId, counter);
                 }
             }