installd: Implement support for userdata snapshot and restore.
Adds two binder APIs:
- snapshotAppData: Makes a copy of the apps credential encrypted
and/or device encrypted data for a given user to one of
/data/misc_[ce|de]/rollback. This path is writable only by
installd.
- restoreAppDataSnapshot: Restores a copy of the apps credential
encrypted and/or device encrypted data from a snapshot, if one
exists.
Implemented for use from RollbackManagerService, which will make
a transient copy of an app package as well as its data in order to
roll them back within a specified window.
Bug: 112431924
Test: installd_utils_test, installd_service_test
Change-Id: I3e4d36c11e52fb885b585b1946e215cf986206fd
diff --git a/cmds/installd/utils.h b/cmds/installd/utils.h
index d05724a..a36fce1 100644
--- a/cmds/installd/utils.h
+++ b/cmds/installd/utils.h
@@ -61,6 +61,13 @@
std::string create_data_user_ce_package_path_as_user_link(
const char* volume_uuid, userid_t userid, const char* package_name);
+std::string create_data_misc_ce_rollback_path(const char* volume_uuid, userid_t user);
+std::string create_data_misc_de_rollback_path(const char* volume_uuid, userid_t user);
+std::string create_data_misc_ce_rollback_package_path(const char* volume_uuid,
+ userid_t user, const char* package_name);
+std::string create_data_misc_de_rollback_package_path(const char* volume_uuid,
+ userid_t user, const char* package_name);
+
std::string create_data_media_path(const char* volume_uuid, userid_t userid);
std::string create_data_media_obb_path(const char* volume_uuid, const char* package_name);
std::string create_data_media_package_path(const char* volume_uuid, userid_t userid,