Implement basic libsnapshot functionality.
This CL implements some of the libsnapshot internals necessary to work with update_engine. In particular it implements snapshot and update state, as well as creating and mapping snapshot devices. It does not implement anything related to merging, nor does it implement the full update_engine flow. Update state is stored in /metadata/ota/state. To synchronize callers of libsnapshot, we always flock() this file at the top of public functions in SnapshotManager. Internal functions are only called while the lock is held, and a "LockedFile" guard object is always passed through to indicate proof-of-lock. Low-level functions, such as snapshot management, have been moved to private methods. Higher-level methods designed for update_engine will ultimately call into these. This CL also adds some functional tests for SnapshotManager. Test state is stored in /metadata/ota/test to avoid conflicts with the rest of the system. Bug: 136678799 Test: libsnapshot_test gtest Change-Id: I78c769ed33b307d5214ee386bb13648e35db6cc6
Loading
Please register or sign in to comment