Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dc829762 authored by Alex Buynytskyy's avatar Alex Buynytskyy
Browse files

Revert "Revert "Compress .so files for PackageManager to reclaim the space""

This reverts commit ad0c6b5d.

Reason for revert: rolling forward the .so compression change. According to https://b.corp.google.com/issues/188859114#comment8, the underlying issue was fixed.

Bug: 254793035
Bug: 188859114
Fixes: 254793035
Fixes: 188859114

Change-Id: I4edc15d08527013206e3daf20c33ba29c87a01a2
Merged-In: I4edc15d08527013206e3daf20c33ba29c87a01a2
parent ad0c6b5d
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@
#include <inttypes.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <linux/fs.h>

#include <memory>

@@ -253,6 +254,16 @@ copyFileIfChanged(JNIEnv *env, void* arg, ZipFileRO* zipFile, ZipEntryRO zipEntr
        return INSTALL_FAILED_CONTAINER_ERROR;
    }

    // If a filesystem like f2fs supports per-file compression, set the compression bit before data
    // writes
    unsigned int flags;
    if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == -1) {
        ALOGE("Failed to call FS_IOC_GETFLAGS on %s: %s\n", localTmpFileName, strerror(errno));
    } else if ((flags & FS_COMPR_FL) == 0) {
        flags |= FS_COMPR_FL;
        ioctl(fd, FS_IOC_SETFLAGS, &flags);
    }

    if (!zipFile->uncompressEntry(zipEntry, fd)) {
        ALOGE("Failed uncompressing %s to %s\n", fileName, localTmpFileName);
        close(fd);