summaryrefslogtreecommitdiff
path: root/third_party
AgeCommit message (Collapse)Author
2023-08-22Strip zip64 extras after writing local header when copying Colin Cross
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
2023-07-20Merge META-INF/services/* files in merge_zips -jar Colin Cross
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
2023-06-22Update directorySize check in TestZip64P7ZipRecords Spandan Das
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
2022-12-02Support robolectric zip expectations (similar to command line zip) am: ↵ Rex Hoffman
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>
2022-12-01Support robolectric zip expectations (similar to command line zip) Rex Hoffman
Test: mma in /external/robolectric Bug: 244627502 Change-Id: Id6b2b0bdb7b666a1e598b5451f869bf3d56953e5
2022-08-17Reformat build/soong for go 1.19 Colin Cross
Test: none Change-Id: I132368f0fcbdb5ea088b5b84dbe4ccfdd9e94cad
2021-10-28Make a pass over our codebase cleaning up non-precise / non-inclusive language. Joe Onorato
Test: treehugger Bug: 204369779 Change-Id: I6e63cae824d323535cdb14b493edd868df47738d
2021-05-08Store real number of records in regular end record when possible Colin Cross
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
2021-02-06Add LOCAL_LICENSE_KINDS to build/soong Bob Badour
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
2020-12-17Support writing a ZIP64 file header Colin Cross
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
2020-08-06Fix zip64 reader when file size is < 4GB and 32 bit fields are -1 Kelvin Zhang
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
2020-07-28Inclusive fix: change the word dummy to fake in zip_test.go Patrice Arruda
Bug: b/161896447 Test: "lunch 1" and "m nothing" Change-Id: I1fbc6a1a95101836bff3acb3f5315854f7812fd5
2017-09-19Strip extended-timestap extra block in zip2zip. Nan Zhang
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
2017-09-13Don't add data_descripters when merging uncompress zip entries for merge_zips. Nan Zhang
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
2017-08-24Have soong_zip not write a data descriptor for non-compressed files Jeff Gaston
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
2017-02-17Fix Zip64 behavior in zip2zip Dan Willemsen
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
2017-02-02Fix zip tests Colin Cross
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
2016-08-11soong_jar: Parallel compression Dan Willemsen
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
2016-08-10Add zip2zip tool to copy zip entries from one file to another Dan Willemsen
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
2016-08-10Add archive/zip from go1.7rc5 tag Dan Willemsen
In preparation to patch in some custom functionality (parallel compression and zero-decompress zip to zip copying) Change-Id: I96a36efc09c715f6b55290af40ebfdde9ae72e33