diff --git a/services/core/java/com/android/server/updates/ConfigUpdateInstallReceiver.java b/services/core/java/com/android/server/updates/ConfigUpdateInstallReceiver.java index 948439da48634..2d022aed14429 100644 --- a/services/core/java/com/android/server/updates/ConfigUpdateInstallReceiver.java +++ b/services/core/java/com/android/server/updates/ConfigUpdateInstallReceiver.java @@ -189,6 +189,13 @@ public class ConfigUpdateInstallReceiver extends BroadcastReceiver { if (!parent.exists()) { throw new IOException("Failed to create directory " + parent.getCanonicalPath()); } + + // Give executable permissions to parent folders. + while (!(parent.equals(updateDir))) { + parent.setExecutable(true, false); + parent = parent.getParentFile(); + } + // create the temporary file tmp = File.createTempFile("journal", "", dir); // mark tmp -rw-r--r--