From a812bcfd06df38a360545ae6655a90a9564c3aa9 Mon Sep 17 00:00:00 2001 From: Mathieu Chartier Date: Wed, 30 Mar 2016 11:03:41 -0700 Subject: Revert "Avoid unlinking app image file" Need unlink or the image file can change while being mmaped. Bug: 27493510 This reverts commit 310c5e70b2e36df36811b6de7ad5c2ebd82338e5. Change-Id: Ied09848e0b646f946f20f2ed114cac6b438bcda1 --- cmds/installd/commands.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'cmds/installd/commands.cpp') diff --git a/cmds/installd/commands.cpp b/cmds/installd/commands.cpp index 3eae5a3210..95bc4b963d 100644 --- a/cmds/installd/commands.cpp +++ b/cmds/installd/commands.cpp @@ -1463,9 +1463,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); -- cgit v1.2.3-59-g8ed1b