platform_build/tools/zipalign
Mark Punzalan 0d7190b413 [zip] Set all entry times before 1980 to 1980-01-01
Before this change, entry times before 1980 had the year changed to 1980
but the month/day/hour/minutes/seconds were all kept as-is.

Bug: 277978832
Test: atest zipalign_tests
Change-Id: I9f87e98a6b985002578490b87c654fee86c65d62
2023-09-06 21:44:40 +00:00
..
include zipalign: Allow specifiying the target page size 2023-08-24 14:46:13 -07:00
tests zipalign: Allow specifiying the target page size 2023-08-24 14:46:13 -07:00
Android.bp zipalign: Allow specifiying the target page size 2023-08-24 14:46:13 -07:00
OWNERS Add the janitors and someone from Studio. 2020-11-09 14:06:02 -08:00
README.txt Revert "Remove changing uids/timestamps from zip/jar files" 2015-10-29 21:26:18 +00:00
ZipAlign.cpp zipalign: Allow specifiying the target page size 2023-08-24 14:46:13 -07:00
ZipAlignMain.cpp zipalign: Allow specifiying the target page size 2023-08-24 14:46:13 -07:00
ZipEntry.cpp [zip] Set all entry times before 1980 to 1980-01-01 2023-09-06 21:44:40 +00:00
ZipEntry.h Fix or suppress some google-runtime-int warnings. 2018-08-10 15:14:26 -07:00
ZipFile.cpp zipalign/ziptime: use ftello()/fseeko(). 2023-01-13 00:41:38 +00:00
ZipFile.h Fix zipalign alignment error 2020-11-11 17:00:22 -08:00

zipalign -- zip archive alignment tool

usage: zipalign [-f] [-v] <align> infile.zip outfile.zip
       zipalign -c [-v] <align> infile.zip

  -c : check alignment only (does not modify file)
  -f : overwrite existing outfile.zip
  -p : page align stored shared object files
  -v : verbose output
  <align> is in bytes, e.g. "4" provides 32-bit alignment
  infile.zip is an existing Zip archive
  outfile.zip will be created


The purpose of zipalign is to ensure that all uncompressed data starts
with a particular alignment relative to the start of the file.  This
allows those portions to be accessed directly with mmap() even if they
contain binary data with alignment restrictions.

Some data needs to be word-aligned for easy access, others might benefit
from being page-aligned.  The adjustment is made by altering the size of
the "extra" field in the zip Local File Header sections.  Existing data
in the "extra" fields may be altered by this process.

Compressed data isn't very useful until it's uncompressed, so there's no
need to adjust its alignment.

Alterations to the archive, such as renaming or deleting entries, will
potentially disrupt the alignment of the modified entry and all later
entries.  Files added to an "aligned" archive will not be aligned.

By default, zipalign will not overwrite an existing output file.  With the
"-f" flag, an existing file will be overwritten.

You can use the "-c" flag to test whether a zip archive is properly aligned.

The "-p" flag aligns any file with a ".so" extension, and which is stored
uncompressed in the zip archive, to a 4096-byte page boundary.  This
facilitates directly loading shared libraries from inside a zip archive.