From 2ea2c5dcea6f459bab025ea2dd160a80f4d37698 Mon Sep 17 00:00:00 2001 From: zhangyaomaggie Date: Mon, 24 Feb 2025 17:34:22 +0800 Subject: [PATCH 1/3] radar 4 Signed-off-by: zhangyaomaggie --- .../native/backup_ext/src/ext_extension.cpp | 11 ++++------- .../backup_ext/src/sub_ext_extension.cpp | 18 +++++++++++++++--- .../backup_sa/include/module_ipc/service.h | 2 +- .../src/module_external/bms_adapter.cpp | 16 ++++++++++++++++ services/backup_sa/src/module_ipc/service.cpp | 4 ++-- .../backup_sa/src/module_ipc/sub_service.cpp | 2 ++ .../src/module_ipc/svc_backup_connection.cpp | 5 +++++ tests/mock/module_ipc/service_mock.cpp | 2 +- .../backup_ext/ext_extension_test.cpp | 10 +++++++--- .../module_ipc/service_incremental_test.cpp | 2 +- utils/include/b_radar/b_radar.h | 3 +++ utils/include/b_resources/b_constants.h | 2 +- 12 files changed, 58 insertions(+), 19 deletions(-) diff --git a/frameworks/native/backup_ext/src/ext_extension.cpp b/frameworks/native/backup_ext/src/ext_extension.cpp index 1119285af..1126f7e27 100644 --- a/frameworks/native/backup_ext/src/ext_extension.cpp +++ b/frameworks/native/backup_ext/src/ext_extension.cpp @@ -1234,7 +1234,6 @@ void BackupExtExtension::RestoreOneBigFile(const std::string &path, { radarRestoreInfo_.bigFileNum++; radarRestoreInfo_.bigFileSize += static_cast(item.sta.st_size); - string itemHashName = item.hashName; string itemFileName = item.fileName; // check if item.hasName and fileName need decode by report item attribute string reportPath = GetReportFileName(path + item.hashName); @@ -1242,15 +1241,14 @@ void BackupExtExtension::RestoreOneBigFile(const std::string &path, if (fd < 0) { HILOGE("Failed to open report file = %{public}s, err = %{public}d", reportPath.c_str(), errno); errFileInfos_[item.hashName].emplace_back(errno); - AuditLog auditLog = {false, "Open fd failed", "ADD", "", 1, "FAILED", "RestoreOneBigFile", - "RestoreOneBigFile", GetAnonyPath(reportPath)}; - HiAudit::GetInstance(false).Write(auditLog); + AppRadar::Info info (bundleName_, "", "Failed to open report file: " + GetAnonyPath(reportPath)); + AppRadar::GetInstance().RecordRestoreFuncRes(info, "BackupExtExtension::RestoreOneBigFile", + AppRadar::GetInstance().GetUserId(), BizStageRestore::BIZ_STAGE_DO_RESTORE, errno); throw BError(BError::Codes::EXT_INVAL_ARG, string("open report file failed")); } BReportEntity rp(move(fd)); rp.CheckAndUpdateIfReportLineEncoded(itemFileName); - - string fileName = path + itemHashName; + string fileName = path + item.hashName; string filePath = appendTargetPath ? (path + itemFileName) : itemFileName; if (BDir::CheckFilePathInvalid(filePath)) { HILOGE("Check big file path : %{public}s err, path is forbidden", GetAnonyPath(filePath).c_str()); @@ -1266,7 +1264,6 @@ void BackupExtExtension::RestoreOneBigFile(const std::string &path, if (isDebug_) { endFileInfos_[filePath] = item.sta.st_size; } - if (!RestoreBigFilePrecheck(fileName, path, item.hashName, filePath)) { return; } diff --git a/frameworks/native/backup_ext/src/sub_ext_extension.cpp b/frameworks/native/backup_ext/src/sub_ext_extension.cpp index 24e2a9c11..be2abc249 100644 --- a/frameworks/native/backup_ext/src/sub_ext_extension.cpp +++ b/frameworks/native/backup_ext/src/sub_ext_extension.cpp @@ -59,6 +59,7 @@ namespace OHOS::FileManagement::Backup { const uint32_t MAX_FD_GROUP_USE_TIME = 1000; // 每组打开最大时间1000ms +const int INVALID_FD = -1; void BackupExtExtension::WaitToSendFd(std::chrono::system_clock::time_point &startTime, int &fdSendNum) { @@ -953,7 +954,7 @@ int BackupExtExtension::User0DoBackup(const BJsonEntityExtensionConfig &usrConfi /** * 获取增量的大文件的信息 */ -static TarMap GetIncrmentBigInfos(const vector &files) +static TarMap GetIncrmentBigInfos(const vector &files, sptr proxy) { auto getStringHash = [](const TarMap &tarMap, const string &str) -> string { ostringstream strHex; @@ -975,9 +976,20 @@ static TarMap GetIncrmentBigInfos(const vector &files) TarMap bigFiles; for (const auto &item : files) { struct stat sta = {}; + int32_t errCode = ERR_OK; + UniqueFd fd(INVALID_FD); + UniqueFd reportFd(INVALID_FD); if (stat(item.filePath.c_str(), &sta) != 0) { HILOGE("Failed to stat file %{public}s, err = %{public}d", item.filePath.c_str(), errno); - throw errno; + errCode = errno; + auto ret = proxy->AppIncrementalFileReady(item.filePath, std::move(fd), std::move(reportFd), errCode); + if (SUCCEEDED(ret)) { + HILOGI("IncrementalFileReady: The application is packaged successfully, package path is %{public}s", + item.filePath.c_str()); + } else { + HILOGE("IncrementalFileReady fails to be invoked: %{public}d", ret); + } + continue; } string md5Name = getStringHash(bigFiles, item.filePath); if (!md5Name.empty()) { @@ -1190,7 +1202,7 @@ int BackupExtExtension::DoIncrementalBackup(const vector IncrementalPacket(smallFiles, tarMap, proxy); HILOGI("Do increment backup, IncrementalPacket end"); // 最后回传大文件 - TarMap bigMap = GetIncrmentBigInfos(bigFiles); + TarMap bigMap = GetIncrmentBigInfos(bigFiles, proxy); IncrementalBigFileReady(bigMap, bigFiles, proxy); HILOGI("Do increment backup, IncrementalBigFileReady end"); bigMap.insert(tarMap.begin(), tarMap.end()); diff --git a/services/backup_sa/include/module_ipc/service.h b/services/backup_sa/include/module_ipc/service.h index 34a0fb99a..cd0bf2515 100644 --- a/services/backup_sa/include/module_ipc/service.h +++ b/services/backup_sa/include/module_ipc/service.h @@ -569,7 +569,7 @@ private: const vector &restoreBundleNames); void BundleBeginRadarReport(const std::string &bundleName, const ErrCode errCode, - const IServiceReverse::Scenario scenario); + const IServiceReverse::Scenario scenario, const std::string &extraInfo = ""); void BundleEndRadarReport(const std::string &bundleName, ErrCode errCode, const IServiceReverse::Scenario scenario); diff --git a/services/backup_sa/src/module_external/bms_adapter.cpp b/services/backup_sa/src/module_external/bms_adapter.cpp index db61d1369..7ac1befb9 100644 --- a/services/backup_sa/src/module_external/bms_adapter.cpp +++ b/services/backup_sa/src/module_external/bms_adapter.cpp @@ -24,6 +24,7 @@ #include "b_file_info.h" #include "b_jsonutil/b_jsonutil.h" #include "b_json/b_json_entity_extension_config.h" +#include "b_radar/b_radar.h" #include "b_resources/b_constants.h" #include "b_sa/b_sa_utils.h" #include "bundle_mgr_client.h" @@ -100,6 +101,9 @@ static int64_t GetBundleStats(const string &bundleName, int32_t userId) AppExecFwk::Constants::NoGetBundleStatsFlag::GET_BUNDLE_WITHOUT_CACHE_SIZE); if (!res || bundleStats.size() != dataDir.size()) { HILOGE("An error occurred in querying bundle stats. name:%{public}s", bundleName.c_str()); + AppRadar::Info info (bundleName, "", ""); + AppRadar::GetInstance().RecordDefaultFuncRes(info, "GetBundleStats", userId, + BizStageBackup::BIZ_STAGE_GET_BUNDLE_STATS, BConstants::INVALID_VALUE); return 0; } for (uint i = 0; i < bundleStats.size(); i++) { @@ -175,6 +179,9 @@ static bool GetBackupExtConfig(const vector &e AppExecFwk::BundleMgrClient client; if (!client.GetResConfigFile(ext, "ohos.extension.backup", out) || out.size() == 0) { HILOGE("Failed to get resconfigfile of bundle, bundle name is:%{public}s", ext.bundleName.c_str()); + AppRadar::Info info (ext.bundleName, "", "Failed to get resconfigfile"); + AppRadar::GetInstance().RecordDefaultFuncRes(info, "GetBackupExtConfig", BConstants::DEFAULT_USER_ID, + BizStageBackup::BIZ_STAGE_APPEND_BUNDLES_FAIL, BConstants::INVALID_VALUE); continue; } BJsonCachedEntity cachedEntity(out[0], ext.bundleName); @@ -213,6 +220,9 @@ static bool CreateIPCInteractionFiles(int32_t userId, const string &bundleName, if (err != 0 && errno != EEXIST) { HILOGE("Failed to create folder in backup_sa bundleName:%{public}s, sys err:%{public}d", bundleName.c_str(), errno); + AppRadar::Info info (bundleName, "", "errno = " + to_string(errno)); + AppRadar::GetInstance().RecordDefaultFuncRes(info, "CreateIPCInteractionFiles", userId, + BizStageBackup::BIZ_STAGE_APPEND_BUNDLES_FAIL, err); return false; } } @@ -517,6 +527,9 @@ bool BundleMgrAdapter::GetCurBundleExtenionInfo(AppExecFwk::BundleInfo &installe if (ret != ERR_OK) { HILOGE("bundleName:%{public}s, ret:%{public}d, current bundle info for backup/restore is empty", bundleName.c_str(), ret); + AppRadar::Info info (bundleName, "", ""); + AppRadar::GetInstance().RecordDefaultFuncRes(info, "BMS::GetCloneBundleInfo", userId, + BizStageBackup::BIZ_STAGE_APPEND_BUNDLES_FAIL, ret); return false; } if (installedBundle.applicationInfo.codePath == HMOS_HAP_CODE_PATH || @@ -546,6 +559,9 @@ bool BundleMgrAdapter::IsUser0BundleName(std::string bundleName, int32_t userId) installedBundle, userId); if (ret != ERR_OK) { HILOGE("bundleName:%{public}s, ret:%{public}d, GetBundle Failed from BMS", bundleName.c_str(), ret); + AppRadar::Info info (bundleName, "", "GetBundle Failed from BMS"); + AppRadar::GetInstance().RecordDefaultFuncRes(info, "BMS::GetCloneBundleInfo", userId, + BizStageBackup::BIZ_STAGE_APPEND_BUNDLES_FAIL, ret); return false; } if (installedBundle.applicationInfo.singleton == true) { diff --git a/services/backup_sa/src/module_ipc/service.cpp b/services/backup_sa/src/module_ipc/service.cpp index b48c7a195..812c9e9ae 100644 --- a/services/backup_sa/src/module_ipc/service.cpp +++ b/services/backup_sa/src/module_ipc/service.cpp @@ -118,7 +118,7 @@ void Service::OnStartResRadarReport(const std::vector &bundleNameLi } void Service::BundleBeginRadarReport(const std::string &bundleName, const ErrCode errCode, - const IServiceReverse::Scenario scenario) + const IServiceReverse::Scenario scenario, const std::string &extraInfo) { if (errCode == ERR_OK || errCode == BError(BError::Codes::SA_BOOT_EXT_FAIL).GetCode()) { return; @@ -131,7 +131,7 @@ void Service::BundleBeginRadarReport(const std::string &bundleName, const ErrCod taskInfo.reportTime = TimeUtils::GetCurrentTime(); taskInfo.errCode = errCode; UpdateFailedBundles(bundleName, taskInfo); - AppRadar::Info info(bundleName, "", ""); + AppRadar::Info info(bundleName, "", extraInfo); if (scenario == IServiceReverse::Scenario::RESTORE) { AppRadar::GetInstance().RecordRestoreFuncRes(info, "Service::BundleBeginRadarReport", GetUserIdDefault(), BizStageRestore::BIZ_STAGE_APPEND_BUNDLES_FAIL, errCode); diff --git a/services/backup_sa/src/module_ipc/sub_service.cpp b/services/backup_sa/src/module_ipc/sub_service.cpp index b679afd82..afa37ca5a 100644 --- a/services/backup_sa/src/module_ipc/sub_service.cpp +++ b/services/backup_sa/src/module_ipc/sub_service.cpp @@ -480,6 +480,8 @@ void Service::HandleNotSupportBundleNames(const std::vector &srcBun session_->GetServiceReverseProxy()->BackupOnBundleStarted( BError(BError::Codes::SA_BUNDLE_INFO_EMPTY), bundleName); } + BundleBeginRadarReport(bundleName, BError(BError::Codes::SA_BUNDLE_INFO_EMPTY).GetCode(), + IServiceReverse::Scenario::BACKUP, isIncBackup ? "isIncBackup" : "notIncBackup"); } } diff --git a/services/backup_sa/src/module_ipc/svc_backup_connection.cpp b/services/backup_sa/src/module_ipc/svc_backup_connection.cpp index 7dc6d5eec..73a026a34 100644 --- a/services/backup_sa/src/module_ipc/svc_backup_connection.cpp +++ b/services/backup_sa/src/module_ipc/svc_backup_connection.cpp @@ -19,6 +19,8 @@ #include #include "ability_manager_client.h" +#include "b_radar/b_radar.h" +#include "b_resources/b_constants.h" #include "filemgmt_libhilog.h" #include "hisysevent.h" #include "module_ipc/svc_extension_proxy.h" @@ -97,6 +99,9 @@ void SvcBackupConnection::OnAbilityDisconnectDone(const AppExecFwk::ElementName bundleName.data()); callDied_(move(bundleName), false); } + AppRadar::Info info (bundleName, "", isCleanCalled_ ? "isCleanCalled_" : "notCleanCalled_"); + AppRadar::GetInstance().RecordDefaultFuncRes(info, "SvcBackupConnection::OnAbilityDisconnectDone", + BConstants::DEFAULT_USER_ID, BizStageBackup::BIZ_STAGE_EXTENSION_DIE, BConstants::INVALID_VALUE); } condition_.notify_all(); waitCondition_.notify_all(); diff --git a/tests/mock/module_ipc/service_mock.cpp b/tests/mock/module_ipc/service_mock.cpp index 547ce2562..c4cdcea04 100644 --- a/tests/mock/module_ipc/service_mock.cpp +++ b/tests/mock/module_ipc/service_mock.cpp @@ -317,7 +317,7 @@ void Service::HandleExceptionOnAppendBundles(sptr session, const vector &appendBundleNames, const vector &restoreBundleNames) {} void Service::BundleBeginRadarReport(const std::string &bundleName, const ErrCode errCode, - const IServiceReverse::Scenario scenario) {} + const IServiceReverse::Scenario scenario, const std::string &extraInfo) {} void Service::BundleEndRadarReport(const std::string &bundleName, ErrCode errCode, const IServiceReverse::Scenario scenario) {} diff --git a/tests/unittests/backup_ext/ext_extension_test.cpp b/tests/unittests/backup_ext/ext_extension_test.cpp index f4d66f998..9c5f1b9f2 100644 --- a/tests/unittests/backup_ext/ext_extension_test.cpp +++ b/tests/unittests/backup_ext/ext_extension_test.cpp @@ -27,6 +27,7 @@ #include "b_error/b_error.h" #include "b_error/b_excep_utils.h" #include "ext_extension.cpp" +#include "service_proxy.h" #include "sub_ext_extension.cpp" namespace OHOS::FileManagement::Backup { @@ -456,7 +457,8 @@ HWTEST_F(ExtExtensionTest, Ext_Extension_Test_0700, testing::ext::TestSize.Level GTEST_LOG_(INFO) << "ExtExtensionTest-begin Ext_Extension_Test_0700"; try { vector files; - TarMap result = GetIncrmentBigInfos(files); + auto proxy = ServiceProxy::GetInstance(); + TarMap result = GetIncrmentBigInfos(files, proxy); EXPECT_TRUE(result.empty()); } catch (...) { EXPECT_TRUE(false); @@ -489,7 +491,8 @@ HWTEST_F(ExtExtensionTest, Ext_Extension_Test_0701, testing::ext::TestSize.Level info.userTar = 1; info.encodeFlag = false; srcFiles.push_back(info); - TarMap result = GetIncrmentBigInfos(srcFiles); + auto proxy = ServiceProxy::GetInstance(); + TarMap result = GetIncrmentBigInfos(srcFiles, proxy); EXPECT_EQ(result.size(), 1); } catch (...) { EXPECT_TRUE(false); @@ -523,7 +526,8 @@ HWTEST_F(ExtExtensionTest, Ext_Extension_Test_0702, testing::ext::TestSize.Level info.encodeFlag = false; srcFiles.push_back(info); srcFiles.push_back(info); - TarMap result = GetIncrmentBigInfos(srcFiles); + auto proxy = ServiceProxy::GetInstance(); + TarMap result = GetIncrmentBigInfos(srcFiles, proxy); EXPECT_EQ(result.size(), 2); } catch (...) { EXPECT_TRUE(false); diff --git a/tests/unittests/backup_sa/module_ipc/service_incremental_test.cpp b/tests/unittests/backup_sa/module_ipc/service_incremental_test.cpp index b63452aac..0cc26ffd5 100644 --- a/tests/unittests/backup_sa/module_ipc/service_incremental_test.cpp +++ b/tests/unittests/backup_sa/module_ipc/service_incremental_test.cpp @@ -268,7 +268,7 @@ void Service::HandleExceptionOnAppendBundles(sptr session, const vector &appendBundleNames, const vector &restoreBundleNames) {} void Service::BundleBeginRadarReport(const std::string &bundleName, const ErrCode errCode, - const IServiceReverse::Scenario scenario) {} + const IServiceReverse::Scenario scenario, const std::string &extraInfo) {} void Service::BundleEndRadarReport(const std::string &bundleName, const ErrCode errCode, const IServiceReverse::Scenario scenario) {} diff --git a/utils/include/b_radar/b_radar.h b/utils/include/b_radar/b_radar.h index 16d4a17f4..e0c39b00f 100644 --- a/utils/include/b_radar/b_radar.h +++ b/utils/include/b_radar/b_radar.h @@ -41,6 +41,8 @@ enum class BizStageBackup : int32_t { BIZ_STAGE_RELEASE, BIZ_STAGE_ONSTART_DISPOSE, BIZ_STAGE_ONSTART_RESIDUAL, + BIZ_STAGE_EXTENSION_DIE, + BIZ_STAGE_GET_BUNDLE_STATS, }; enum class BizStageRestore : int32_t { @@ -64,6 +66,7 @@ enum class BizStageRestore : int32_t { BIZ_STAGE_RELEASE, BIZ_STAGE_ONSTART_DISPOSE, BIZ_STAGE_ONSTART_RESIDUAL, + BIZ_STAGE_EXTENSION_DIE, }; class AppRadar { diff --git a/utils/include/b_resources/b_constants.h b/utils/include/b_resources/b_constants.h index 0c93f1f19..8dc018647 100644 --- a/utils/include/b_resources/b_constants.h +++ b/utils/include/b_resources/b_constants.h @@ -239,7 +239,7 @@ constexpr int32_t MS_1000 = 1000; constexpr int32_t MAX_TIME_COST = 900000; constexpr int32_t MAX_INEXCLUDE_SIZE = 25; constexpr uint8_t INDEX = 3; -constexpr int INVALID_TIMEOUT_VALUE = -1; +constexpr int INVALID_VALUE = -1; static inline std::string FILE_BACKUP_RESTORE_EVENTS = "FILE_BACKUP_RESTORE_EVENTS"; static inline std::string FILE_BACKUP_RESTORE_STATISTIC = "FILE_BACKUP_RESTORE_STATISTIC"; } // namespace OHOS::FileManagement::Backup::BConstants -- Gitee From 72d9f69d5b3aeaa7cdd85de708a07d768332717a Mon Sep 17 00:00:00 2001 From: zhangyaomaggie Date: Wed, 26 Feb 2025 10:18:01 +0800 Subject: [PATCH 2/3] radar 4 annoy Signed-off-by: zhangyaomaggie --- frameworks/native/backup_ext/src/sub_ext_extension.cpp | 4 ++-- services/backup_sa/src/module_external/bms_adapter.cpp | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/frameworks/native/backup_ext/src/sub_ext_extension.cpp b/frameworks/native/backup_ext/src/sub_ext_extension.cpp index be2abc249..14812b6cf 100644 --- a/frameworks/native/backup_ext/src/sub_ext_extension.cpp +++ b/frameworks/native/backup_ext/src/sub_ext_extension.cpp @@ -980,12 +980,12 @@ static TarMap GetIncrmentBigInfos(const vector &files, sp UniqueFd fd(INVALID_FD); UniqueFd reportFd(INVALID_FD); if (stat(item.filePath.c_str(), &sta) != 0) { - HILOGE("Failed to stat file %{public}s, err = %{public}d", item.filePath.c_str(), errno); + HILOGE("Failed to stat file %{public}s, err = %{public}d", GetAnonyPath(item.filePath).c_str(), errno); errCode = errno; auto ret = proxy->AppIncrementalFileReady(item.filePath, std::move(fd), std::move(reportFd), errCode); if (SUCCEEDED(ret)) { HILOGI("IncrementalFileReady: The application is packaged successfully, package path is %{public}s", - item.filePath.c_str()); + GetAnonyPath(item.filePath).c_str()); } else { HILOGE("IncrementalFileReady fails to be invoked: %{public}d", ret); } diff --git a/services/backup_sa/src/module_external/bms_adapter.cpp b/services/backup_sa/src/module_external/bms_adapter.cpp index 7ac1befb9..e6225f34b 100644 --- a/services/backup_sa/src/module_external/bms_adapter.cpp +++ b/services/backup_sa/src/module_external/bms_adapter.cpp @@ -169,7 +169,7 @@ string BundleMgrAdapter::GetAppGalleryBundleName() } static bool GetBackupExtConfig(const vector &extensionInfos, - BJsonEntityCaps::BundleBackupConfigPara &backupPara) + BJsonEntityCaps::BundleBackupConfigPara &backupPara, int32_t userId) { for (auto &&ext : extensionInfos) { if (ext.type != AppExecFwk::ExtensionAbilityType::BACKUP) { @@ -180,7 +180,7 @@ static bool GetBackupExtConfig(const vector &e if (!client.GetResConfigFile(ext, "ohos.extension.backup", out) || out.size() == 0) { HILOGE("Failed to get resconfigfile of bundle, bundle name is:%{public}s", ext.bundleName.c_str()); AppRadar::Info info (ext.bundleName, "", "Failed to get resconfigfile"); - AppRadar::GetInstance().RecordDefaultFuncRes(info, "GetBackupExtConfig", BConstants::DEFAULT_USER_ID, + AppRadar::GetInstance().RecordDefaultFuncRes(info, "GetBackupExtConfig", userId, BizStageBackup::BIZ_STAGE_APPEND_BUNDLES_FAIL, BConstants::INVALID_VALUE); continue; } @@ -312,7 +312,7 @@ vector BundleMgrAdapter::GetBundleInfosForIncrement continue; } struct BJsonEntityCaps::BundleBackupConfigPara backupPara; - if (!GetBackupExtConfig(extensionInfos, backupPara)) { + if (!GetBackupExtConfig(extensionInfos, backupPara, userId)) { HILOGE("No backup extension ability found, bundleName:%{public}s", bundleName.c_str()); continue; } @@ -685,7 +685,7 @@ void BundleMgrAdapter::CreatBackupEnv(const std::vector &bundl continue; } struct BJsonEntityCaps::BundleBackupConfigPara backupPara; - if (!GetBackupExtConfig(extensionInfos, backupPara)) { + if (!GetBackupExtConfig(extensionInfos, backupPara, userId)) { HILOGE("No backup extension ability found, bundleName:%{public}s", bundleName.c_str()); continue; } -- Gitee From 4042c4226e7ed8338306c0599161a9e1d9900980 Mon Sep 17 00:00:00 2001 From: zhangyaomaggie Date: Wed, 26 Feb 2025 10:48:28 +0800 Subject: [PATCH 3/3] radar 4 update Signed-off-by: zhangyaomaggie --- services/backup_sa/src/module_external/bms_adapter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/backup_sa/src/module_external/bms_adapter.cpp b/services/backup_sa/src/module_external/bms_adapter.cpp index e8e091d2e..d3578c91a 100644 --- a/services/backup_sa/src/module_external/bms_adapter.cpp +++ b/services/backup_sa/src/module_external/bms_adapter.cpp @@ -714,7 +714,7 @@ std::vector BundleMgrAdapter::GetBundleInfosForAppe continue; } struct BJsonEntityCaps::BundleBackupConfigPara backupPara; - if (!GetBackupExtConfig(extensionInfos, backupPara)) { + if (!GetBackupExtConfig(extensionInfos, backupPara, userId)) { HILOGE("No backup extension ability found, bundleName:%{public}s", bundleName.c_str()); continue; } -- Gitee