From 16cb5c2f25492428ac9a79d3c9d55018ab991aa5 Mon Sep 17 00:00:00 2001 From: Arian Date: Sat, 23 Apr 2022 14:44:08 +0200 Subject: [PATCH] UpdateInstaller: Set file permissions on uncrypt ota package ----- E RecoverySystemService: Failed to reserve space for compressed apex: E RecoverySystemService: java.io.FileNotFoundException: /data/lineageos_updates/lineage-19.1-20220422-UNOFFICIAL-GMS-sagit.zip.uncrypt (Permission denied) E RecoverySystemService: at java.util.zip.ZipFile.open(Native Method) E RecoverySystemService: at java.util.zip.ZipFile.(ZipFile.java:265) E RecoverySystemService: at java.util.zip.ZipFile.(ZipFile.java:187) E RecoverySystemService: at java.util.zip.ZipFile.(ZipFile.java:158) E RecoverySystemService: at com.android.server.recoverysystem.RecoverySystemService.getCompressedApexInfoList(RecoverySystemService.java:921) E RecoverySystemService: at com.android.server.recoverysystem.RecoverySystemService.allocateSpaceForUpdate(RecoverySystemService.java:972) E RecoverySystemService: at android.os.IRecoverySystem$Stub.onTransact(IRecoverySystem.java:156) E RecoverySystemService: at android.os.Binder.execTransactInternal(Binder.java:1179) E RecoverySystemService: at android.os.Binder.execTransact(Binder.java:1143) E UpdateInstaller: Could not install update E UpdateInstaller: java.io.IOException: Failed to allocate space for update /data/lineageos_updates/lineage-19.1-20220422-UNOFFICIAL-GMS-sagit.zip.uncrypt E UpdateInstaller: at android.os.RecoverySystem.installPackage(RecoverySystem.java:678) E UpdateInstaller: at android.os.RecoverySystem.installPackage(RecoverySystem.java:596) E UpdateInstaller: at org.lineageos.updater.controller.UpdateInstaller.installPackage(UpdateInstaller.java:100) E UpdateInstaller: at org.lineageos.updater.controller.UpdateInstaller.access$400(UpdateInstaller.java:35) E UpdateInstaller: at org.lineageos.updater.controller.UpdateInstaller$1.run(UpdateInstaller.java:144) E UpdateInstaller: at java.lang.Thread.run(Thread.java:920) Change-Id: I8250bf58709b92572cdffc8e5faca4bf243935aa --- .../updater/controller/UpdateInstaller.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/org/lineageos/updater/controller/UpdateInstaller.java b/src/org/lineageos/updater/controller/UpdateInstaller.java index 9735429..b111f9f 100644 --- a/src/org/lineageos/updater/controller/UpdateInstaller.java +++ b/src/org/lineageos/updater/controller/UpdateInstaller.java @@ -31,6 +31,10 @@ import org.lineageos.updater.model.UpdateStatus; import java.io.File; import java.io.IOException; +import java.nio.file.attribute.PosixFilePermission; +import java.nio.file.Files; +import java.util.HashSet; +import java.util.Set; class UpdateInstaller { @@ -131,6 +135,15 @@ class UpdateInstaller { try { mCanCancel = true; FileUtils.copyFile(update.getFile(), uncryptFile, mProgressCallBack); + try { + Set perms = new HashSet<>(); + perms.add(PosixFilePermission.OWNER_READ); + perms.add(PosixFilePermission.OWNER_WRITE); + perms.add(PosixFilePermission.OTHERS_READ); + perms.add(PosixFilePermission.GROUP_READ); + Files.setPosixFilePermissions(uncryptFile.toPath(), perms); + } catch (IOException exception) {} + mCanCancel = false; if (mPrepareUpdateThread.isInterrupted()) { mUpdaterController.getActualUpdate(update.getDownloadId())