Loading core/jni/com_android_internal_content_NativeLibraryHelper.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ #include <inttypes.h> #include <sys/stat.h> #include <sys/types.h> #include <linux/fs.h> #include <memory> Loading Loading @@ -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); Loading Loading
core/jni/com_android_internal_content_NativeLibraryHelper.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ #include <inttypes.h> #include <sys/stat.h> #include <sys/types.h> #include <linux/fs.h> #include <memory> Loading Loading @@ -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); Loading