U盘还原支持保留用户数据
This commit is contained in:
parent
4ae3f10a7b
commit
fff7fe9ae9
|
@ -228,6 +228,8 @@ QStringList SystemRestoreProxy::getRsyncArgs(SystemRestoreScene scene)
|
|||
args << "--exclude=/data/home";
|
||||
args << "--exclude=/data/root";
|
||||
|
||||
// 云桌面背景路径属于用户数据
|
||||
args << "--exclude=/var/lib/AccountsService";
|
||||
// 此处不要break,因为还需要排除SYSTEM_RESTORE中的项
|
||||
|
||||
case SystemRestoreScene::SYSTEM_RESTORE :
|
||||
|
|
|
@ -213,6 +213,29 @@ QStringList UDiskSystemRestoreProxy::getRsyncArgs(SystemRestoreScene scene)
|
|||
QStringList excludes;
|
||||
|
||||
switch (scene) {
|
||||
case SystemRestoreScene::RESTORE_SYSTEM_WITH_DATA :
|
||||
args << "--exclude=/home";
|
||||
args << "--exclude=/root";
|
||||
if (Utils::isHuawei990()) {
|
||||
args << "--exclude=/data";
|
||||
} else {
|
||||
args << "--exclude=/data/usershare";
|
||||
}
|
||||
// 保留指纹数据,用户密码、角色、权限、生物识别等信息不需要改变
|
||||
args << "--exclude=/var/lib/biometric-auth";
|
||||
args << "--exclude=/data/sec_storage_data";
|
||||
args << "--exclude=/etc/passwd";
|
||||
args << "--exclude=/etc/shadow";
|
||||
args << "--exclude=/etc/group";
|
||||
args << "--exclude=/etc/gshadow";
|
||||
args << "--exclude=/etc/sudoers";
|
||||
args << "--exclude=/data/home";
|
||||
args << "--exclude=/data/root";
|
||||
|
||||
// 云桌面背景路径属于用户数据
|
||||
args << "--exclude=/var/lib/AccountsService";
|
||||
// 此处不要break,因为还需要排除SYSTEM_RESTORE中的项
|
||||
|
||||
case SystemRestoreScene::SYSTEM_RESTORE :
|
||||
// 还原工具不还原自身
|
||||
args << "--exclude=/usr/bin/backup-daemon";
|
||||
|
@ -325,7 +348,13 @@ void UDiskSystemRestoreProxy::restoreSystem()
|
|||
{
|
||||
QString destPath = Utils::getSysRootPath();
|
||||
|
||||
QStringList args = getRsyncArgs(SystemRestoreScene::SYSTEM_RESTORE);
|
||||
QStringList args;
|
||||
// 自动更新的备份还原时保留用户数据
|
||||
if (m_backupWrapper.m_type == BackupType::RESTORE_SYSTEM_WITH_DATA) {
|
||||
args = getRsyncArgs(SystemRestoreScene::RESTORE_SYSTEM_WITH_DATA);
|
||||
} else {
|
||||
args = getRsyncArgs(SystemRestoreScene::SYSTEM_RESTORE);
|
||||
}
|
||||
|
||||
args << m_srcPath + "/";
|
||||
destPath += "/";
|
||||
|
|
|
@ -12,6 +12,7 @@ class UDiskSystemRestoreProxy : public Worker
|
|||
public:
|
||||
// 系统还原的几种场景
|
||||
enum SystemRestoreScene {
|
||||
RESTORE_SYSTEM_WITH_DATA, // 保留用户数据还原
|
||||
SYSTEM_RESTORE, // 系统还原
|
||||
EFI_RESTORE, // efi还原
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue