Always call SetMode in soong_zip
In addition to setting the mode, SetMode also marks the file as created by Unix, which seems to cause Debian's unzip tool to handle UTF-8 filenames correctly. Fixes: 184575223 Test: TestZip Change-Id: I0e839dc3d27aaa9abced0eb1d3c4c0f8eed3e3c4
This commit is contained in:
@@ -656,9 +656,11 @@ func (z *ZipWriter) addFile(dest, src string, method uint16, emulateJar, srcJar
|
|||||||
UncompressedSize64: uint64(fileSize),
|
UncompressedSize64: uint64(fileSize),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mode := os.FileMode(0600)
|
||||||
if executable {
|
if executable {
|
||||||
header.SetMode(0700)
|
mode = 0700
|
||||||
}
|
}
|
||||||
|
header.SetMode(mode)
|
||||||
|
|
||||||
err = createParentDirs(dest, src)
|
err = createParentDirs(dest, src)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@@ -62,7 +62,7 @@ func fh(name string, contents []byte, method uint16) zip.FileHeader {
|
|||||||
Method: method,
|
Method: method,
|
||||||
CRC32: crc32.ChecksumIEEE(contents),
|
CRC32: crc32.ChecksumIEEE(contents),
|
||||||
UncompressedSize64: uint64(len(contents)),
|
UncompressedSize64: uint64(len(contents)),
|
||||||
ExternalAttrs: 0,
|
ExternalAttrs: (syscall.S_IFREG | 0600) << 16,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user