summaryrefslogtreecommitdiff
path: root/payload_generator/filesystem_interface.h
AgeCommit message (Collapse)Author
2020-02-28update_engine: Don't search for deflates again in SquashFS compressed filesAmin Hassani
When we initialize a SquashFS file system, at the same time we find the location of all deflate buffers. But for some files that have specific postfix like gz or zip, we try to find the deflates there again. But, we should only do this when the SquashFS did not actually compress that file. Otherwise we're just gonna fail. BUG=chromium:1050869 TEST=cros_generate_update_payload --image gs://chromeos-releases/dev-channel/eve-kvm/12871.1.0/dlc/pita/package/dlc.img --src_image gs://chromeos-releases/dev-channel/eve-kvm/12861.0.0/dlc/pita/package/dlc.img --output delta.bin --debug --work_dir workdir TEST=sudo FEATURES=test emerge update_engine Change-Id: I8b01fb182b88d7ec75dcbfa4c1271caf3bf074fe Reviewed-on: https://chromium-review.googlesource.com/c/aosp/platform/system/update_engine/+/2076162 Tested-by: Amin Hassani <ahassani@chromium.org> Reviewed-by: Sen Jiang <senj@chromium.org> Commit-Queue: Amin Hassani <ahassani@chromium.org>
2019-01-16update_engine: Run clang-format on payload_generator/Amin Hassani
BUG=none TEST=unittest Change-Id: I00cafb1fc709d8f02119cb0058cfcb0b573ef25d Reviewed-on: https://chromium-review.googlesource.com/1409927 Commit-Ready: Amin Hassani <ahassani@chromium.org> Tested-by: Amin Hassani <ahassani@chromium.org> Reviewed-by: Sen Jiang <senj@chromium.org>
2018-04-04Correct some spellings.Sen Jiang
Test: mma Change-Id: Icc49a4ee76f12d302ed18982d334f2f70b7263a8
2017-11-06update_engine: Generate PUFFDIFF operationAmin Hassani
This patch adds functionality for generating PUFFDIFF operation, but since the minor verion has not been increase, it actually does not generate the operation itself. PUFFDIFF is used for patching deflate based files. BUG=chromium:767120 TEST=unittest passes; brillo_update_payload {generate|verify} passes; CQ-DEPEND=CL:726945 Change-Id: I4ffdac8dce3740ef9fc2156cb0dad83a8364c8b5 Reviewed-on: https://chromium-review.googlesource.com/658298 Commit-Ready: Amin Hassani <ahassani@chromium.org> Tested-by: Amin Hassani <ahassani@chromium.org> Reviewed-by: Ben Chan <benchan@chromium.org>
2015-10-13update_engine: Rename "chromeos" -> "brillo" in include paths and namespacesAlex Vakulenko
libchromeos is transitioning to libbrillo and chromeos namespaces and include directory is changing to brillo. Bug: 24872993 Change-Id: I770659a95be380a50fe3b2ba9f91d65818f40945
2015-08-19Re-license update_engine to Apache2Alex Deymo
This patch automatically replaced the license on all text files from Chromium OS (BSD style) to AOSP (Apache2), keeping the original year as a reference. The license header was added to .gyp and .gypi files, the NOTICE was replaced with a copy of the Apache2 license and MODULE_LICENSE_* file was updated. BUG=b/23084294 TEST=grep 'Chromium OS Authors' doesn't find anything. Change-Id: Ie5083750755f5180a8a785b24fe67dbf9195cd10
2015-07-02update_engine: Expose the update_engine.conf in the FilesystemInterface.Alex Deymo
The old image contains a /etc/update_engine.conf file that states the payload version supported by that image. Currently we read this file directly from the mounted filesystem and parse its contents. To stop mounting the filesystem we need to retrieve the information on this file somehow. This patch extends the FilesystemInterface with a method to load the update_engine.conf settings from the filesystem and implemets it using ext2fs on ext2 filesystems. CQ-DEPED=CL:282380 BUG=chromium:305832 TEST=Added new unittests with and without this file. Change-Id: I41b41e8aac58c645fb40aabfe340cde8821e405a Reviewed-on: https://chromium-review.googlesource.com/282381 Reviewed-by: Alex Deymo <deymo@chromium.org> Commit-Queue: Alex Deymo <deymo@chromium.org> Trybot-Ready: Alex Deymo <deymo@chromium.org> Tested-by: Alex Deymo <deymo@chromium.org>
2015-06-12update_engine: Introduce FilesystemInterface abstraction.Alex Deymo
The interaction with the filesystem in the payload generation process is hard-coded in several places, making it hard to mock out or use a different filesystem like squashfs for delta generation. For example, the metadata, regular file data and non-file data are handled by three different functions in a similar way, but with different code. This patch introcudes a filesystem abstraction to map files or pseudo-files (like the metadata, free-space, etc) into the same interface. The interface includes three implementations: for parsing ext2 filesystems using ext2fs (already used by the metadata parsing but not by the file data processing), a raw one for monolitic partitions like the kernel and a fake one used for testing without requiring to build/parse a real ext2 filesystem. BUG=chromium:331965 TEST=FEATURES=test emerge-link update_engine Change-Id: I1e14cf8f3883c8e9a1d471c8193c8da60776aa7c Reviewed-on: https://chromium-review.googlesource.com/275803 Reviewed-by: Don Garrett <dgarrett@chromium.org> Tested-by: Alex Deymo <deymo@chromium.org> Commit-Queue: Alex Deymo <deymo@chromium.org>