summaryrefslogtreecommitdiffstats
path: root/minzip/Zip.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2016-09-01Switch recovery to libbase loggingTianjie Xu1-1018/+0
Clean up the recovery image and switch to libbase logging. Bug: 28191554 Change-Id: Icd999c3cc832f0639f204b5c36cea8afe303ad35 (cherry picked from commit 747781433fb01f745529c7e9dd97c5599070ad0d)
2016-09-01Switch recovery to libbase loggingTianjie Xu1-1018/+0
Clean up the recovery image and switch to libbase logging. Bug: 28191554 Change-Id: Icd999c3cc832f0639f204b5c36cea8afe303ad35 Merged-In: Icd999c3cc832f0639f204b5c36cea8afe303ad35
2016-09-01Switch recovery to libbase loggingTianjie Xu1-1018/+0
Clean up the recovery image and switch to libbase logging. Bug: 28191554 Change-Id: Icd999c3cc832f0639f204b5c36cea8afe303ad35
2016-05-06updater, minzip: Remove unnecessary O_SYNC flags.Alistair Strachan1-1/+1
Remove O_SYNC from mzExtractRecursive() and PackageExtractFileFn(). These functions deal with extracting whole files from the update package onto a filesystem. If run on ext4 on a rotating disk, for example, the O_SYNC flag will cause serious performance problems and the extraction proecss can take over 30 minutes, with no obvious benefits. This API function already calls fsync(fd) after each file is extracted to ensure data and metadata is written to the underlying block device, so the O_SYNC calls should be superfluous and safely removable. This change does not affect the OTA patch paths or any modification of the bootloader partition or writes to other 'emmc' partitions. Signed-off-by: Alistair Strachan <alistair.strachan@imgtec.com> Change-Id: I9cbb98a98e6278bf5c0d7efaae340773d1fbfcd2
2016-04-02Move selinux dependencies out of header files.Elliott Hughes1-0/+3
Bug: http://b/27764900 Change-Id: Ib62a59edcb13054f40f514c404d32b87b14ed5f1
2016-03-21Fix: full ota package larger than 2GB fails to upgradecaozhiyuan1-7/+9
Change-Id: I45d9fab8739cc6fa8a0bacaca9238896118d9d7f Signed-off-by: diruomeng <di.ruomeng@zte.com.cn> Signed-off-by: caozhiyuan <cao.zhiyuan@zte.com.cn>
2016-02-23Surpress warnings in minzip/Zip.cTianjie Xu1-4/+1
bootable/recovery/minzip/Zip.c:514:5: warning: Value stored to 'compRemaining' is never read compRemaining = pEntry->compLen; ^ ~~~~~~~~~~~~~~~ bootable/recovery/minzip/Zip.c:778:9: warning: Null pointer argument in call to memory copy function memcpy(p, helper->targetDir, helper->targetDirLen); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Bug: 27229894 Change-Id: I0482bac3a4fcddc191783d1e5b5a83cf29fa4e85
2016-01-22minzip: Add support for >2GB zipfilenkk711-1/+1
normal zip limit is 4GB, but due to signed variables it will only access 2GB (32bit signed integer is from -2GB to +2GB). these changes allow for a theoretical limit of 4GB zips to be flashed. RAM restrictions still apply, and on a 32bit system it's likely to max out at approx 2.8GB flashable zip, above that mmap will probably fail. Note: the flashable zip also needs a compatible update-binary which include these changes. (this also applies to both aroma installer if it's being used). Change-Id: Ib3af2945c9bd4890a2e6dc45acfc2b80ec55473b
2015-11-16recovery: Switch to clangTao Bao1-2/+0
And a few trival fixes to suppress warnings. Change-Id: Id28e3581aaca4bda59826afa80c0c1cdfb0442fc (cherry picked from commit 80e46e08de5f65702fa7f7cd3ef83f905d919bbc)
2015-10-25Revert :Force sync files written by minzipmaxwen1-8/+2
forward port from 5.x https://gerrit.omnirom.org/#/c/12524/ Change-Id: I303662cf28278bd9dd3799b3d0b5a07f96169416
2015-10-15Improve error handling for zip installthat1-0/+2
- minzip: don't crash with corrupted zips (e.g. 4096 null bytes) - twinstall: output error when zip doesn't contain update-binary - twinstall: add strerror(errno) to system-level errors - twinstall: correct message if /file_contexts could not be extracted - twinstall: use TWFunc::Wait_For_Child for better waitpid errors - twinstall: minor code cleanup Change-Id: I53b156b0ec08755af2742bb71d1523ae38f4a82e
2015-07-17Clean up LOG functions.Tao Bao1-7/+7
For fatal errors, use LOGE to show messages. Bug: 22236461 Change-Id: I2b7d761576894ac37fcbadcba690ae14affe8f07 (cherry picked from commit d7d0f7503456c3d275a49f90be35e03f02c51bbd)
2015-07-16Clean up LOG functions.Tao Bao1-7/+7
For fatal errors, use LOGE to show messages. Bug: 22236461 Change-Id: Ie2ce7ec769f4502d732fbb53fb7b303c0cf9ed68
2015-06-23Just use fstat in sysMapFile.Elliott Hughes1-7/+0
Also turn on -Werror and remove a dead function. Change-Id: I436f0a91c40e36db985190b3b98b0a4527cf0eeb
2015-06-03recovery: Switch to clangTao Bao1-2/+0
And a few trival fixes to suppress warnings. Change-Id: I38734b5f4434643e85feab25f4807b46a45d8d65
2015-04-30Check all lseek calls succeed.Elliott Hughes1-4/+2
Also add missing TEMP_FAILURE_RETRYs on read, write, and lseek. Bug: http://b/20625546 Change-Id: I03b198e11c1921b35518ee2dd005a7cfcf4fd94b (cherry picked from commit 7bad7c4646ee8fd8d6e6ed0ffd3ddbb0c1b41a2f)
2015-04-30Check all lseek calls succeed.Elliott Hughes1-4/+2
Also add missing TEMP_FAILURE_RETRYs on read, write, and lseek. Bug: http://b/20625546 Change-Id: I03b198e11c1921b35518ee2dd005a7cfcf4fd94b
2015-03-13Revert "Force sync files written by minzip."Andrew Dodd1-8/+2
This has been causing significant performance degradation when flashing updates for the entirety of 5.0. I was originally hesitant to do this since we don't want unsynced files on an update, however - Our updater-script unmounts /system at the end of installation, which will force a sync. As a result the issue Google was trying to fix won't be present for our ZIPs. This reverts commit a6c142f2a579ea5e7cdfbc88e6a061c55029265a. Change-Id: I89b22e2677c4eda4d3e6338adc0046bf754d43b2
2015-02-27Remove more dead code from minzip.Narayan Kamath1-99/+53
I've added explanatory comments to mzExtractRecursive because that function will live on as a utility even after we move the zip format related logic to libziparchive. bug: 19472796 Change-Id: Id69db859b9b90c13429134d40ba72c1d7c17aa8e
2015-02-27Remove more dead code from minzip.Narayan Kamath1-105/+59
I've added explanatory comments to mzExtractRecursive because that function will live on as a utility even after we move the zip format related logic to libziparchive. bug: 19472796 (cherry-picked from commit c9ccdfd7a42de08c47ab771b94dc5b9d1f957b95) Change-Id: I8b7fb6fa3eafb2e7ac080ef7a7eceb691b252d8a
2015-02-23Delete unused functions from minzip.Narayan Kamath1-42/+1
This is in preparation of replacing it with libziparchive and providing shim wrappers. bug: 19472796 Change-Id: I1f2fb59ee7a41434e794e4ed15b754aa2b74a11d
2015-02-08Remove dead/unused code and realign some of the commentsNanik Tolaram1-10/+6
to make it more cleaner and easier to read Change-Id: If536d482c0ed645368084e76d8ec060f05d89137 Signed-off-by: Nanik Tolaram <nanikjava@gmail.com>
2014-10-29Force sync files written by minzip.Michael Runge1-2/+8
Some files appear to be missing their sync to disk. Bug: 18145574 Change-Id: Ic858624a4dd65bbfc54d30f3a13c607078270345
2014-10-29Force sync files written by minzip.Michael Runge1-2/+8
Some files appear to be missing their sync to disk. Bug: 18145574 Change-Id: Ic858624a4dd65bbfc54d30f3a13c607078270345
2014-05-09Allow 0-byte files in full OTAs.Michael Runge1-1/+3
Currently, the writeProcessFunction fails when there are zero bytes to write, potentially returning errno from a previous operation, or hanging indefinitely while it waits for a >0 result on a write of size 0. This happens when the output file is intended to be zero bytes in size. Change-Id: Ib3cfcaf66d82942bc89e5f5c64697862403b38da
2014-02-13add mzGetStoredEntry functionDoug Zongker1-2/+19
mzGetStoredEntry gives you a pointer and address to the data of a zip entry, assuming that entry is stored rather than deflated. Change-Id: Ifb39777c98d1d50475ef7de419cf28935f5f9965
2014-02-06recovery: fix building with pointer-to-int errors turned onColin Cross1-2/+2
Use intptr_t/uintptr_t to cast between pointer and int to allow building with -Werror=pointer-to-int-cast and Werror=int-to-pointer-cast turned on. Cast to char* instead of unsigned int for pointer arithmetic. Change-Id: Ia862306fdcca53866b330e8cf726f3d62f2248a0
2014-01-16do verification and extraction on memory, not filesDoug Zongker1-98/+23
Changes minzip and recovery's file signature verification to work on memory regions, rather than files. For packages which are regular files, install.cpp now mmap()s them into memory and then passes the mapped memory to the verifier and to the minzip library. Support for files which are raw block maps (which will be used when we have packages written to encrypted data partitions) is present but largely untested so far. Bug: 12188746 Change-Id: I12cc3e809834745a489dd9d4ceb558cbccdc3f71
2012-10-19reduce some recovery loggingDoug Zongker1-1/+5
Make minzip log only a count of files when extracting, not individual filenames. Make patching only chatter about free space if there's not enough and compact the other messages. Only the last 8k of the recovery log gets uploaded; this makes it more likely that we will get all of it. Change-Id: I529cb4947fe2185df82b9da5fae450a7480dcecd
2012-10-16Remove HAVE_SELINUX guardsKenny Root1-4/+0
Change-Id: Ia96201f20f7838d7d9e8926208977d3f8318ced4
2012-03-30Extend recovery and updater to support setting file security contexts.Stephen Smalley1-3/+22
Extend minzip, recovery, and updater to set the security context on files based on the file_contexts configuration included in the package. Change-Id: Ied379f266a16c64f2b4dca15dc39b98fcce16f29
2010-02-01add a one-argument version of package_extract_fileDoug Zongker1-0/+37
Add a version of package_extract_file that returns the file data as its return value (to be consumed by some other edify function that expects to receive a bunch of binary data as an argument). Lets us avoid having two copies of a big file in memory (extracting it into /tmp, which is a ramdisk, and then having something load it into memory) when doing things like radio updates. Change-Id: Ie26ece5fbae457eb0ddcd8a13d74d78a769fbc70
2009-05-08undo temporary alignment hackDoug Zongker1-39/+7
Remove the memory alignment that mysteriously made OTA installs work, in anticipation of a kernel that fixes the actual problem. Handle EINTR properly.
2009-05-06align data passed to write() on 32k boundariesDoug Zongker1-16/+46
In donut, OTA installation often encounters the write() system call doing short writes -- which is legal but unexpected -- or failing with ENOSPC when plenty of space is available. Passing aligned memory buffers to write() appears to prevent (or at least reduce the frequency) of these problems. b/1833052 has been filed to look at the underlying problem, but this change aligns buffers we use with write() so we can OTA for now (or see if this problem still occurs).
2009-04-30handle short writes when unzipping filesDoug Zongker1-11/+27
minzip fails if write() doesn't write all the data in one call. Apparently this was good enough before, but it causes OTAs to fail all the time now (maybe due to the recently-submitted kernel)? Change code to attempt continuing after short writes.
2009-03-04auto import from //depot/cupcake/@135843The Android Open Source Project1-0/+1098
2009-03-04auto import from //depot/cupcake/@135843The Android Open Source Project1-1098/+0