Age | Commit message (Collapse) | Author |
|
writeHeader generates zip64 extras that are correct for the local
header, but incorrect for the central directory header. Strip the
extras again after writeHeader so that the central directory header
extras are recreated correctly.
Test: Zip2Zip64
Bug: 296314205
Change-Id: I1ca6a5745a9f97426df6c111db444facdfa25b2e
|
|
kotlinx_coroutines_test and kotlinx_coroutine_android each provide a
META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler with
different contents, and the final contents needs to be the combination
of the two files. Implement service merging in merge_zips when the
-jar argument is provided.
Bug: 290933559
Test: TestMergeZips
Change-Id: I69f80d1265c64c671d308ef4cdccfa1564abe056
|
|
With ag/20611145, the dir size is not uint32max by default. Update the
value in the test accordingly.
(The test was not discovered in CI because gotestrunner
runs the tests using `-test.short` flag, and skips this test)
Test: go test ./third_party/zip -run TestZip64P7ZipRecords
Change-Id: I47885f23fe32ff5ed30c44d52561cd11d59020ec
|
|
e0c45acc6b
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/20599614
Change-Id: I765e6900cd25803dfeddd6a8fd88c19d1a33c2fa
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
|
Test: mma in /external/robolectric
Bug: 244627502
Change-Id: Id6b2b0bdb7b666a1e598b5451f869bf3d56953e5
|
|
Test: none
Change-Id: I132368f0fcbdb5ea088b5b84dbe4ccfdd9e94cad
|
|
Test: treehugger
Bug: 204369779
Change-Id: I6e63cae824d323535cdb14b493edd868df47738d
|
|
Only store uintmax for the number of entries in the regular end record
if it doesn't fit. p7zip 16.02 rejects zip files where the number of
entries in the regular end record is larger than the number of entries
counted in the central directory.
Fixes: 187485108
Test: TestZip64P7ZipRecords
Change-Id: I0d116e228a0ee26e4e95bb3f35771da236a056eb
|
|
Added SPDX-license-identifier-Apache-2.0 to:
Android.bp
android/Android.bp
android/soongconfig/Android.bp
androidmk/Android.bp
apex/Android.bp
bazel/Android.bp
bp2build/Android.bp
bpf/Android.bp
bpfix/Android.bp
cc/Android.bp
cc/config/Android.bp
cc/libbuildversion/Android.bp
cc/libbuildversion/tests/Android.bp
cc/ndk_api_coverage_parser/Android.bp
cc/ndkstubgen/Android.bp
cc/symbolfile/Android.bp
cmd/dep_fixer/Android.bp
cmd/diff_target_files/Android.bp
cmd/extract_apks/Android.bp
cmd/extract_jar_packages/Android.bp
cmd/extract_linker/Android.bp
cmd/fileslist/Android.bp
cmd/host_bionic_inject/Android.bp
cmd/javac_wrapper/Android.bp
cmd/merge_zips/Android.bp
cmd/multiproduct_kati/Android.bp
cmd/path_interposer/Android.bp
cmd/pom2bp/Android.bp
cmd/pom2mk/Android.bp
cmd/sbox/Android.bp
cmd/soong_build/Android.bp
cmd/soong_env/Android.bp
cmd/soong_ui/Android.bp
cmd/zip2zip/Android.bp
cmd/zipsync/Android.bp
cuj/Android.bp
dexpreopt/Android.bp
dexpreopt/dexpreopt_gen/Android.bp
env/Android.bp
etc/Android.bp
filesystem/Android.bp
finder/Android.bp
finder/cmd/Android.bp
genrule/Android.bp
jar/Android.bp
java/Android.bp
java/config/Android.bp
kernel/Android.bp
linkerconfig/Android.bp
linkerconfig/proto/Android.bp
makedeps/Android.bp
partner/Android.bp
phony/Android.bp
python/Android.bp
python/tests/Android.bp
remoteexec/Android.bp
rust/Android.bp
rust/config/Android.bp
scripts/Android.bp
sdk/Android.bp
sh/Android.bp
shared/Android.bp
symbol_inject/Android.bp
symbol_inject/cmd/Android.bp
sysprop/Android.bp
tradefed/Android.bp
ui/build/Android.bp
ui/logger/Android.bp
ui/metrics/Android.bp
ui/metrics/proc/Android.bp
ui/status/Android.bp
ui/terminal/Android.bp
ui/tracer/Android.bp
xml/Android.bp
zip/Android.bp
zip/cmd/Android.bp
Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:
finder/fs/Android.bp
third_party/zip/Android.bp
Bug: 68860345
Bug: 151177513
Bug: 151953481
Test: m all
Exempt-From-Owner-Approval: janitorial work
Change-Id: Ia47ca14f16b8c9f84f9d533a07e5b00e2c04e8d4
|
|
If the length of a stored file is more than 2^32 and a data descriptor
is not being used then a ZIP64 extra is required in the file header to
store the uncompressed and compressed lengths.
Bug: 175055267
Test: TestCopyFromZip64
Change-Id: Id414b4c04f48aefabfd835bd8339333d36576375
|
|
When CopyFrom writes a zipentry, it strips extra fields and generates
data descriptors. When writing data descriptors, it only writes 64 bit
values if the relevant sizes are >4GB. In some cases, the sizes are <4GB
but 32 bit sizes are set to -1. In this situation, CopyFrom will write
incorrect local file header, resulting in a zip file that can't be
parsed by standard zip tools.
Test: Unit Tests
Bug: 161922066
Change-Id: I64319a80647013eaf7693cf8bf5c6120016913a3
|
|
Bug: b/161896447
Test: "lunch 1" and "m nothing"
Change-Id: I1fbc6a1a95101836bff3acb3f5315854f7812fd5
|
|
The extended-timestap extra block changes between Local File Header and
Central Directory. We have to strip it out to avoid mis-filling during
zip2zip.
Bug: b/65455145
Test: add unit-test.
Change-Id: I17e3f6c10fd6a068019620b4426f6042f6fac317
|
|
Also filter out META-INF/TRANSITIVE dir, and report warnings when
merge_zips see duplicates entries with different CRC hash.
Bug: b/65455145
Test: m clean && m -j java (locally)
Change-Id: I47172ffa27df71f3280f35f6b540a7b5a0c14550
|
|
Bug: 64536066
Test: m -j blueprint_tools && cd /tmp && mkdir zip && \
cd zip && touch empty-file && \
echo empty-file > files.list && \
soong_zip -o zip.zip -C . -l files.list && \
jar -xvf zip.zip && echo ok
Change-Id: Iac5797aab5282237fa1cc902e6b068a7937c012a
|
|
This was blindly copying the zip64 extra fields from the central
directory of the original zip file to the new one. The zip64 extra
fields depend on the contents of the header it's attached toa, and in
this case we were copying the zip64 file header offset from the central
directory entry into the destination local file header, which makes no
sense, especially since the offset changed in the new file.
So strip all zip64 extra entries, and we'll create them as necessary
when writing ou the new file.
Bug: 34704111
Test: zip2zip on the original target-files -> img that was broken
Test: m -j blueprint_tools (new android_test.go)
Change-Id: Ie3c0540b13d3afcf42f3d47fff319065952b126f
|
|
Fix error when building zip tests running go test ./...:
android/soong/third_party/zip/zip_test.go:13:2: use of internal package not allowed
Test: go test ./...
Change-Id: I4fd7317401fd3d9c95c6f11799c94c1eff25523e
|
|
This compresses multiple files in parallel, and will split up larger
files (5MB+) into smaller chunks (1MB) to compress in parallel.
There is a small size overhead to recombine the chunks, but it's only a
few bytes per chunk, so for a 1MB chunk, it's minimal.
Rough numbers, with everything in the page cache, this can compress
~4GB (1000 files) down to 1GB in 6.5 seconds, instead of 120 seconds with
the non-parallel soong_jar and 150 seconds with zip.
Go's DEFLATE algorithm is still a bit worse than zip's -- about 3.5%
larger file sizes, but for most of our "dist" targets that is fine.
Change-Id: Ie4886c7d0f954ace46e599156e35fea7e74d6dd7
|
|
This doesn't do any decompression / recompression, but just copies over
the already compressed contents. So it's similar to zip -U, but allows
rewriting of the paths.
The first expected usecase is to replace img_from_target_files during
the build, since it does the equivalent of this:
zip2zip -i <target-files.zip> -o <img.zip> OTA/android-info.txt:android-info.txt IMAGES/*:.
Except it decompresses and recompresses the images, which takes over a
minute instead of a few seconds.
Change-Id: I88d0df188635088783223873f78e193272dbdf1c
|
|
In preparation to patch in some custom functionality (parallel
compression and zero-decompress zip to zip copying)
Change-Id: I96a36efc09c715f6b55290af40ebfdde9ae72e33
|