summaryrefslogtreecommitdiffstats
path: root/applypatch (follow)
Commit message (Collapse)AuthorAgeFilesLines
* recovery: write partitions more conservativelyDoug Zongker2013-07-091-24/+46
| | | | | | | | | Write and verify partitions using write(2) and read(2) rather than the stdio functions. Read and write in 4kb blocks. When writing, fsync() every 1MB. Bug: 9602014 Change-Id: Ie98ce38e857786fc0f4ebf36bb5ffc93b41bc96f
* recovery: try to write EMMC partitions more reliablyDoug Zongker2013-07-082-7/+73
| | | | | | | | | | | | | | | | | | | | | Nexus 4 has flash errors that manifest during large writes (eg, of the radio partition). Writes of some blocks seem to be dropped silently, without any errors being returned to the user level. Make two changes to the partition-writing code: - break it up into 1MB writes instead of writing partitions with a single fwrite() call. Pause for 50ms in between every chunk. - read the partition back after writing and verify that we read what we wrote. Drop caches before reading so we (hopefully) are reading off the actual flash and not some cache. Neither of these should be necessary. Bug: 9602014 Change-Id: Ice2e24dd4c11f1a57968277b5eb1468c772f6f63
* reduce some recovery loggingDoug Zongker2012-10-191-6/+21
| | | | | | | | | | | 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
* add bonus data feature to imgdiff/imgpatch/applypatchDoug Zongker2012-08-215-21/+99
| | | | | | | | | | | | | | The bonus data option lets you give an additional blob of uncompressed data to be used when constructing a patch for chunk #1 of an image. The same blob must be available at patch time, and can be passed to the command-line applypatch tool (this feature is not accessible from edify scripts). This will be used to reduce the size of recovery-from-boot patches by storing parts of the recovery ramdisk (the UI images) on the system partition. Change-Id: Iac1959cdf7f5e4582f8d434e83456e483b64c02c
* am 3733d218: Merge changes I664f8dc7,I4154db06,I5e1df90fJoe Onorato2012-08-171-1/+0
|\ | | | | | | | | | | | | * commit '3733d2185bbcedd9ef626907f1f32628986cc0f5': Use the static version of libsparse Multiple modules with the same name are going away. host modules don't need LOCAL_MODULE_TAGS
| * host modules don't need LOCAL_MODULE_TAGSJoe Onorato2012-07-221-1/+0
| | | | | | | | Change-Id: I5e1df90f18fbaf98e3207c553a8fb859c1064137
* | Add mode when open(O_CREAT) is used.Nick Kralevich2012-06-271-2/+2
|/ | | | | | | | | | When creating a new file using open(..., O_CREAT), it is an error to fail to specify a creation mode. If a mode is not specified, a random stack provided value is used as the "mode". This will become a compile error in a future Android change. Change-Id: I73c1e1a39ca36bf01704b07302af4971d234b5a8
* Add NOTICE fileWei Zhong2012-04-061-0/+41
| | | | | | | | | | | 1. AOSP_APACH2 2. BSD for bsdiff.c and bspatch.c Bug: 6299628 Change-Id: If9a5f7f8f07ad51bb62202253da189d804674e54 Signed-off-by: Wei Zhong <wzhong@google.com> (cherry picked from commit 592e7a9cf1c856bee2adb8f285ac359e2d7f68e1)
* fix buildDoug Zongker2012-02-282-2/+2
| | | | Change-Id: I44a75f5451af053778be299b23274ecce9b2db76
* fix failure to free memoryDoug Zongker2012-02-282-19/+45
| | | | | | | The applypatch function is somewhat sloppy about freeing memory (since it was originally a standalone binary). Fix some of that. Change-Id: Ifd44d71ea189c0b5115493119fd57bc37533fd59
* Remove the simulator target from all makefiles.Jeff Brown2011-07-121-4/+0
| | | | | | Bug: 5010576 Change-Id: Ib465fdb42c8621899bea15c04a427d7ab1641a8c
* Fix x86 build.Ying Wang2011-02-091-2/+0
| | | | Change-Id: Iada6268b0a72ee832113ea397334cc7950a37051
* am c080bc54: am fbd7ae7a: am 201cd466: remove shadowed variable declarationDoug Zongker2010-08-161-1/+2
|\ | | | | | | | | | | | | Merge commit 'c080bc549aaf272c77fe7903e52c2a2c0d8de1bb' * commit 'c080bc549aaf272c77fe7903e52c2a2c0d8de1bb': remove shadowed variable declaration
| * am 201cd466: remove shadowed variable declarationDoug Zongker2010-08-131-1/+2
| |\ | | | | | | | | | | | | | | | | | | Merge commit '201cd46680f5789e21a57fb4476ab0ba0c0ed4c0' into gingerbread * commit '201cd46680f5789e21a57fb4476ab0ba0c0ed4c0': remove shadowed variable declaration
| | * remove shadowed variable declarationDoug Zongker2010-08-131-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An accidental variable declaration ("int enough_space = ..." instead of "enough_space = " inside a block) shadowing the real one meant we were always using the copy-to-cache path for patching, even when not necessary. Remove it. Enforce an absolute minimum of free space as well, to avoid running into problems patching small files, now that the copy-to-cache path is (inadvertently) well-tested. Change-Id: Idb7d57241a9adcda2e11001fa44f0cd67ce40d19
* | | am c4e32005: am 17986e6b: am 8cd9e4f3: fix bug in applying patchesDoug Zongker2010-08-131-1/+1
|\| | | | | | | | | | | | | | | | | | | | Merge commit 'c4e3200578ad670bee9f5a88e90e7a77089d5df7' * commit 'c4e3200578ad670bee9f5a88e90e7a77089d5df7': fix bug in applying patches
| * | am 8cd9e4f3: fix bug in applying patchesDoug Zongker2010-08-131-1/+1
| |\| | | | | | | | | | | | | | | | | | | Merge commit '8cd9e4f3d4eba481b411482331293c8079ab24b2' into gingerbread * commit '8cd9e4f3d4eba481b411482331293c8079ab24b2': fix bug in applying patches
| | * fix bug in applying patchesDoug Zongker2010-08-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | When restarting a patch from crashing in the middle of a large file, we're not finding the correct patch to apply to the copy saved in cache. Change-Id: I41cb2b87d096bb7a28a10c4cf3902facd45d4c9d
* | | Working ASLR implementationHristo Bojinov2010-08-024-16/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Separate files for retouch functionality are in minelf/* ASLR for shared libraries is controlled by "-a" in ota_from_target_files. Binary files are self-contained. Retouch logic can recover from crashes. Signed-off-by: Hristo Bojinov <hristo@google.com> Change-Id: I76c596abf4febd68c14f9d807ac62e8751e0b1bd
* | | EMMC support in applypatchDoug Zongker2010-07-081-102/+175
|/ / | | | | | | | | | | | | | | Let applypatch read and write EMMC partitions as well as MTD ones. This enables incremental updates that include boot image changes, as well as OTA of new recovery partitions. Change-Id: I3766b9e77c639769ddf693b675da51d57f6e6b1d
* / generic_x86 supportBruce Beare2010-05-041-0/+2
|/ | | | | | | | | Add in Makefiles and support files for x86 builds Based on changes by: wonjong.lee <wonjong.lee@windriver.com> Additional changes by: Mark Gross <mark.gross@intel.com> Additional changes by: Bruce Beare <brucex.j.beare@intel.com> Change-Id: I71fcf58f116e4e9047e7d03fdb28e3308553ce5c
* refactor applypatch and friendsDoug Zongker2010-02-239-1256/+1185
| | | | | | | | | | | | | | | | | | | Change the applypatch function to take meaningful arguments instead of argc and argv. Move all the parsing of arguments into main.c (for the standalone binary) and into install.c (for the updater function). applypatch() takes patches as Value objects, so we can pass in blobs extracted from the package without ever writing them to temp files. The patching code is changed to read the patch from memory instead of a file. A bunch of compiler warnings (mostly about signed vs unsigned types) are fixed. Support for the IMGDIFF1 format is dropped. (We've been generating IMGDIFF2 packages for some time now.) Change-Id: I217563c500012750f27110db821928a06211323f
* relocate applypatch; add type system and new functions to edifyDoug Zongker2010-02-1817-0/+3882
- Move applypatch to this package (from build). - Add a rudimentary type system to edify: instead of just returning a char*, functions now return a Value*, which is a struct that can carry different types of value (currently just STRING and BLOB). Convert all functions to this new scheme. - Change the one-argument form of package_extract_file to return a Value of the new BLOB type. - Add read_file() to load a local file and return a blob, and sha1_check() to test a blob (or string) against a set of possible sha1s. read_file() uses the file-loading code from applypatch so it can read MTD partitions as well. This is the start of better integration between applypatch and the rest of edify. b/2361316 - VZW Issue PP628: Continuous reset to Droid logo: framework-res.apk update failed (CR LIBtt59130) Change-Id: Ibd038074749a4d515de1f115c498c6c589ee91e5