OSDN Git Service

Revert "Avoid unlinking app image file"
authorMathieu Chartier <mathieuc@google.com>
Wed, 30 Mar 2016 18:03:41 +0000 (11:03 -0700)
committerThe Android Automerger <android-build@google.com>
Wed, 30 Mar 2016 22:40:46 +0000 (15:40 -0700)
Need unlink or the image file can change while being mmaped.

Bug: 27493510

This reverts commit 310c5e70b2e36df36811b6de7ad5c2ebd82338e5.

Change-Id: Ied09848e0b646f946f20f2ed114cac6b438bcda1

cmds/installd/commands.cpp

index ff5a3b8..23ebf87 100644 (file)
@@ -1423,9 +1423,9 @@ int dexopt(const char* apk_path, uid_t uid, const char* pkgname, const char* ins
       // Use app images only if it is enabled (by a set image format) and we are compiling
       // profile-guided (so the app image doesn't conservatively contain all classes).
       if (profile_guided && have_app_image_format) {
-          // Recreate is false since we want to avoid deleting the image in case dex2oat decides to
-          // not compile anything.
-          image_fd = open_output_file(image_path, /*recreate*/false);
+          // Recreate is true since we do not want to modify a mapped image. If the app is already
+          // running and we modify the image file, it can cause crashes (b/27493510).
+          image_fd = open_output_file(image_path, /*recreate*/true);
           if (image_fd < 0) {
               // Could not create application image file. Go on since we can compile without it.
               ALOGE("installd could not create '%s' for image file during dexopt\n", image_path);