!16240 免安装代码优化

Merge pull request !16240 from 杨旭光/refactor/free-install
This commit is contained in:
openharmony_ci
2025-08-31 05:09:15 +00:00
committed by Gitee
17 changed files with 264 additions and 334 deletions
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2022-2024 Huawei Device Co., Ltd.
* Copyright (c) 2022-2025 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -30,8 +30,6 @@
namespace OHOS {
namespace AAFwk {
class AbilityManagerService;
struct FreeInstallInfo {
bool isInstalled = false;
bool isPreStartMissionCalled = false;
@@ -65,7 +63,7 @@ struct FreeInstallParams {
*/
class FreeInstallManager : public std::enable_shared_from_this<FreeInstallManager> {
public:
explicit FreeInstallManager(const std::weak_ptr<AbilityManagerService> &server);
explicit FreeInstallManager();
virtual ~FreeInstallManager() = default;
/**
@@ -97,7 +95,7 @@ public:
* @param isOpenAtomicServiceShortUrl, the flag of open atomic service short url.
* @return Returns ERR_OK on success, others on failure.
*/
int StartFreeInstall(const Want &want, int32_t userId, int requestCode, const sptr<IRemoteObject> &callerToken,
int StartFreeInstall(const Want &want, int32_t userId, int requestCode, sptr<IRemoteObject> callerToken,
std::shared_ptr<FreeInstallParams> param = nullptr);
/**
@@ -109,8 +107,8 @@ public:
* @param callerToken, caller ability token.
* @return Returns ERR_OK on success, others on failure.
*/
int StartRemoteFreeInstall(const Want &want, int requestCode, int32_t validUserId,
const sptr<IRemoteObject> &callerToken);
int StartRemoteFreeInstall(Want &want, int requestCode, int32_t validUserId,
sptr<IRemoteObject> callerToken);
/**
* Start to free install from another devices.
@@ -122,7 +120,7 @@ public:
* @param requestCode, ability request code.
* @return Returns ERR_OK on success, others on failure.
*/
int FreeInstallAbilityFromRemote(const Want &want, const sptr<IRemoteObject> &callback,
int FreeInstallAbilityFromRemote(const Want &want, sptr<IRemoteObject> callback,
int32_t userId, int requestCode);
/**
@@ -133,16 +131,15 @@ public:
* @param localDeviceId, the device id of local.
* @return Returns ERR_OK on success, others on failure.
*/
int ConnectFreeInstall(const Want &want, int32_t userId, const sptr<IRemoteObject> &callerToken,
const std::string& localDeviceId);
int ConnectFreeInstall(const Want &want, int32_t userId, sptr<IRemoteObject> callerToken,
const std::string &localDeviceId);
/**
* Add an observer from application into freeInstallObserverManager.
* @param observer, the observer of the ability to free install.
* @return Returns ERR_OK on success, others on failure.
*/
int AddFreeInstallObserver(const sptr<IRemoteObject> &callerToken,
const sptr<AbilityRuntime::IFreeInstallObserver> &observer);
int AddFreeInstallObserver(sptr<IRemoteObject> callerToken, sptr<AbilityRuntime::IFreeInstallObserver> observer);
/**
* Get free install task info.
@@ -199,7 +196,6 @@ public:
const std::string& startTime, const std::string& sessionId);
private:
std::weak_ptr<AbilityManagerService> server_;
std::vector<FreeInstallInfo> freeInstallList_;
std::vector<FreeInstallInfo> dmsFreeInstallCbs_;
std::map<std::string, std::time_t> timeStampMap_;
@@ -218,14 +214,13 @@ private:
* @param callerToken, caller ability token.
* @return Returns ERR_OK on success, others on failure.
*/
int RemoteFreeInstall(const Want &want, int32_t userId, int requestCode, const sptr<IRemoteObject> &callerToken);
int RemoteFreeInstall(const Want &want, int32_t userId, int requestCode, sptr<IRemoteObject> callerToken);
int NotifyDmsCallback(const Want &want, int resultCode);
bool IsTopAbility(const sptr<IRemoteObject> &callerToken);
void NotifyDmsCallback(const Want &want, int resultCode);
bool IsTopAbility(sptr<IRemoteObject> callerToken);
void NotifyFreeInstallResult(int32_t recordId, const Want &want, int resultCode, bool isAsync = false);
FreeInstallInfo BuildFreeInstallInfo(const Want &want, int32_t userId, int requestCode,
const sptr<IRemoteObject> &callerToken, std::shared_ptr<FreeInstallParams> param = nullptr);
std::time_t GetTimeStamp();
sptr<IRemoteObject> callerToken, std::shared_ptr<FreeInstallParams> param = nullptr);
void RemoveFreeInstallInfo(const std::string &bundleName, const std::string &abilityName,
const std::string &startTime);
@@ -244,8 +239,8 @@ private:
void HandleOnFreeInstallFail(int32_t recordId, FreeInstallInfo &freeInstallInfo, int resultCode, bool isAsync);
void StartAbilityByConvertedWant(FreeInstallInfo &info, const std::string &startTime);
void StartAbilityByOriginalWant(FreeInstallInfo &info, const std::string &startTime);
bool VerifyStartFreeInstallPermission(const sptr<IRemoteObject> &callerToken);
int32_t GetRecordIdByToken(const sptr<IRemoteObject> &callerToken);
bool VerifyStartFreeInstallPermission(sptr<IRemoteObject> callerToken);
int32_t GetRecordIdByToken(sptr<IRemoteObject> callerToken);
void NotifyInsightIntentFreeInstallResult(const Want &want, int resultCode);
void NotifyInsightIntentExecuteDone(const Want &want, int resultCode);
};
@@ -378,6 +378,14 @@ static constexpr int64_t MICROSECONDS = 1000000; // MICROSECONDS mean 10^6 mi
return AbilityManagerClient::GetInstance()->StartAbility(want, requestCode, userId);
}
[[maybe_unused]] static std::time_t GetTimeStamp()
{
std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds> tp =
std::chrono::time_point_cast<std::chrono::milliseconds>(std::chrono::system_clock::now());
std::time_t timestamp = tp.time_since_epoch().count();
return timestamp;
}
inline ErrCode EdmErrorType(bool isEdm)
{
if (isEdm) {
@@ -406,7 +406,7 @@ bool AbilityManagerService::Init()
HiviewDFX::Watchdog::GetInstance().InitFfrtWatchdog(); // For ffrt watchdog available in foundation
taskHandler_ = TaskHandlerWrap::CreateQueueHandler(AbilityConfig::NAME_ABILITY_MGR_SERVICE);
eventHandler_ = std::make_shared<AbilityEventHandler>(taskHandler_, weak_from_this());
freeInstallManager_ = std::make_shared<FreeInstallManager>(weak_from_this());
freeInstallManager_ = std::make_shared<FreeInstallManager>();
CHECK_POINTER_RETURN_BOOL(freeInstallManager_);
AmsConfigurationParameter::GetInstance().Parse();
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2022-2024 Huawei Device Co., Ltd.
* Copyright (c) 2022-2025 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -30,6 +30,7 @@
namespace OHOS {
namespace AAFwk {
namespace {
const std::u16string DMS_FREE_INSTALL_CALLBACK_TOKEN = u"ohos.DistributedSchedule.IDmsFreeInstallCallback";
const std::string DMS_MISSION_ID = "dmsMissionId";
const std::string PARAM_FREEINSTALL_APPID = "ohos.freeinstall.params.callingAppId";
@@ -39,16 +40,49 @@ constexpr uint32_t IDMS_CALLBACK_ON_FREE_INSTALL_DONE = 0;
constexpr uint32_t UPDATE_ATOMOIC_SERVICE_TASK_TIMER = 24 * 60 * 60 * 1000; /* 24h */
constexpr const char* KEY_IS_APP_RUNNING = "com.ohos.param.isAppRunning";
FreeInstallManager::FreeInstallManager(const std::weak_ptr<AbilityManagerService> &server)
: server_(server)
void HandleDMSCallback(int32_t resultCode, const FreeInstallInfo &info)
{
TAG_LOGI(AAFwkTag::FREE_INSTALL, "Handle DMS");
if (info.dmsCallback == nullptr) {
TAG_LOGE(AAFwkTag::FREE_INSTALL, "null callback");
return;
}
MessageParcel data;
ExtendMaxIpcCapacityForInnerWant(data);
if (!data.WriteInterfaceToken(DMS_FREE_INSTALL_CALLBACK_TOKEN)) {
TAG_LOGE(AAFwkTag::FREE_INSTALL, "write interface token failed");
return;
}
if (!data.WriteInt32(resultCode)) {
TAG_LOGE(AAFwkTag::FREE_INSTALL, "write resultCode error");
return;
}
if (!data.WriteParcelable(&(info.want))) {
TAG_LOGE(AAFwkTag::FREE_INSTALL, "want write failed");
return;
}
if (!data.WriteInt32(info.requestCode)) {
TAG_LOGE(AAFwkTag::FREE_INSTALL, "write requestCode error");
return;
}
MessageOption option;
MessageParcel reply;
info.dmsCallback->SendRequest(IDMS_CALLBACK_ON_FREE_INSTALL_DONE, data, reply, option);
}
}
FreeInstallManager::FreeInstallManager()
{
}
bool FreeInstallManager::IsTopAbility(const sptr<IRemoteObject> &callerToken)
bool FreeInstallManager::IsTopAbility(sptr<IRemoteObject> callerToken)
{
auto server = server_.lock();
CHECK_POINTER_AND_RETURN_LOG(server, false, "Get server failed!");
AppExecFwk::ElementName elementName = IN_PROCESS_CALL(server->GetTopAbility());
AppExecFwk::ElementName elementName = IN_PROCESS_CALL(
DelayedSingleton<AbilityManagerService>::GetInstance()->GetTopAbility());
if (elementName.GetBundleName().empty() || elementName.GetAbilityName().empty()) {
TAG_LOGE(AAFwkTag::FREE_INSTALL, "GetBundleName or GetAbilityName empty");
return false;
@@ -70,21 +104,16 @@ bool FreeInstallManager::IsTopAbility(const sptr<IRemoteObject> &callerToken)
std::string callerBundleName = callerElementName.GetBundleName();
std::string callerAbilityName = callerElementName.GetAbilityName();
std::string callerModuleName = callerElementName.GetModuleName();
if (elementName.GetBundleName().compare(callerBundleName) == 0 &&
elementName.GetAbilityName().compare(callerAbilityName) == 0 &&
elementName.GetModuleName().compare(callerModuleName) == 0) {
TAG_LOGI(AAFwkTag::FREE_INSTALL, "top ability");
return true;
}
return false;
return (elementName.GetBundleName() == callerBundleName && elementName.GetAbilityName() == callerAbilityName &&
elementName.GetModuleName() == callerModuleName);
}
int FreeInstallManager::StartFreeInstall(const Want &want, int32_t userId, int requestCode,
const sptr<IRemoteObject> &callerToken, std::shared_ptr<FreeInstallParams> param)
sptr<IRemoteObject> callerToken, std::shared_ptr<FreeInstallParams> param)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
if (!VerifyStartFreeInstallPermission(callerToken)) {
TAG_LOGE(AAFwkTag::FREE_INSTALL, "permission denied");
return NOT_TOP_ABILITY;
}
FreeInstallInfo info = BuildFreeInstallInfo(want, userId, requestCode, callerToken, param);
@@ -97,8 +126,6 @@ int FreeInstallManager::StartFreeInstall(const Want &want, int32_t userId, int r
sptr<AtomicServiceStatusCallback> callback = new AtomicServiceStatusCallback(weak_from_this(), isAsync, recordId);
auto bundleMgrHelper = AbilityUtil::GetBundleManagerHelper();
CHECK_POINTER_AND_RETURN(bundleMgrHelper, GET_ABILITY_SERVICE_FAILED);
AppExecFwk::AbilityInfo abilityInfo = {};
constexpr auto flag = AppExecFwk::AbilityInfoFlag::GET_ABILITY_INFO_WITH_APPLICATION;
info.want.SetParam(PARAM_FREEINSTALL_UID, IPCSkeleton::GetCallingUid());
int result = SetAppRunningState(info.want);
@@ -107,6 +134,8 @@ int FreeInstallManager::StartFreeInstall(const Want &want, int32_t userId, int r
return result;
}
constexpr auto flag = AppExecFwk::AbilityInfoFlag::GET_ABILITY_INFO_WITH_APPLICATION;
AppExecFwk::AbilityInfo abilityInfo;
if (IN_PROCESS_CALL(bundleMgrHelper->QueryAbilityInfo(info.want, flag, info.userId, abilityInfo, callback))) {
TAG_LOGI(AAFwkTag::FREE_INSTALL, "app installed");
}
@@ -133,7 +162,7 @@ int FreeInstallManager::StartFreeInstall(const Want &want, int32_t userId, int r
}
int FreeInstallManager::RemoteFreeInstall(const Want &want, int32_t userId, int requestCode,
const sptr<IRemoteObject> &callerToken)
sptr<IRemoteObject> callerToken)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
bool isFromRemote = want.GetBoolParam(FROM_REMOTE_KEY, false);
@@ -167,7 +196,7 @@ int FreeInstallManager::RemoteFreeInstall(const Want &want, int32_t userId, int
}
FreeInstallInfo FreeInstallManager::BuildFreeInstallInfo(const Want &want, int32_t userId, int requestCode,
const sptr<IRemoteObject> &callerToken, std::shared_ptr<FreeInstallParams> param)
sptr<IRemoteObject> callerToken, std::shared_ptr<FreeInstallParams> param)
{
if (param == nullptr) {
param = std::make_shared<FreeInstallParams>();
@@ -187,18 +216,16 @@ FreeInstallInfo FreeInstallManager::BuildFreeInstallInfo(const Want &want, int32
info.want.SetParam(KEY_REQUEST_ID, param->startOptions->requestId_);
}
if (!param->isAsync) {
auto promise = std::make_shared<std::promise<int32_t>>();
info.promise = promise;
info.promise = std::make_shared<std::promise<int32_t>>();
}
auto identity = IPCSkeleton::ResetCallingIdentity();
info.identity = identity;
TAG_LOGD(AAFwkTag::FREE_INSTALL, "identity: %{public}s", identity.c_str());
IPCSkeleton::SetCallingIdentity(identity);
info.identity = IPCSkeleton::ResetCallingIdentity();
TAG_LOGD(AAFwkTag::FREE_INSTALL, "identity: %{public}s", info.identity.c_str());
IPCSkeleton::SetCallingIdentity(info.identity);
return info;
}
int FreeInstallManager::StartRemoteFreeInstall(const Want &want, int requestCode, int32_t validUserId,
const sptr<IRemoteObject> &callerToken)
int FreeInstallManager::StartRemoteFreeInstall(Want &want, int requestCode, int32_t validUserId,
sptr<IRemoteObject> callerToken)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
if (!want.GetBoolParam(Want::PARAM_RESV_FOR_RESULT, false)) {
@@ -210,57 +237,28 @@ int FreeInstallManager::StartRemoteFreeInstall(const Want &want, int requestCode
if (missionId < 0) {
return ERR_INVALID_VALUE;
}
Want* newWant = const_cast<Want*>(&want);
newWant->SetParam(DMS_MISSION_ID, missionId);
return RemoteFreeInstall(*newWant, validUserId, requestCode, callerToken);
want.SetParam(DMS_MISSION_ID, missionId);
return RemoteFreeInstall(want, validUserId, requestCode, callerToken);
}
int FreeInstallManager::NotifyDmsCallback(const Want &want, int resultCode)
void FreeInstallManager::NotifyDmsCallback(const Want &want, int resultCode)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
std::lock_guard<ffrt::mutex> autoLock(distributedFreeInstallLock_);
if (dmsFreeInstallCbs_.empty()) {
TAG_LOGE(AAFwkTag::FREE_INSTALL, "null dms callback");
return ERR_INVALID_VALUE;
return;
}
MessageParcel reply;
MessageOption option;
for (auto it = dmsFreeInstallCbs_.begin(); it != dmsFreeInstallCbs_.end();) {
std::string abilityName = (*it).want.GetElement().GetAbilityName();
if (want.GetElement().GetAbilityName().compare(abilityName) == 0) {
TAG_LOGI(AAFwkTag::FREE_INSTALL, "Handle DMS");
MessageParcel data;
AAFwk::ExtendMaxIpcCapacityForInnerWant(data);
if (!data.WriteInterfaceToken(DMS_FREE_INSTALL_CALLBACK_TOKEN)) {
TAG_LOGE(AAFwkTag::FREE_INSTALL, "write interface token failed");
return ERR_INVALID_VALUE;
}
if (!data.WriteInt32(resultCode)) {
TAG_LOGE(AAFwkTag::FREE_INSTALL, "write resultCode error");
return ERR_INVALID_VALUE;
}
if (!data.WriteParcelable(&((*it).want))) {
TAG_LOGE(AAFwkTag::FREE_INSTALL, "want write failed");
return INNER_ERR;
}
if (!data.WriteInt32((*it).requestCode)) {
TAG_LOGE(AAFwkTag::FREE_INSTALL, "write resultCode error");
return ERR_INVALID_VALUE;
}
(*it).dmsCallback->SendRequest(IDMS_CALLBACK_ON_FREE_INSTALL_DONE, data, reply, option);
if (want.GetElement().GetAbilityName() == abilityName) {
HandleDMSCallback(resultCode, *it);
it = dmsFreeInstallCbs_.erase(it);
} else {
it++;
}
}
return reply.ReadInt32();
}
void FreeInstallManager::NotifyFreeInstallResult(int32_t recordId, const Want &want, int resultCode, bool isAsync)
@@ -282,10 +280,10 @@ void FreeInstallManager::NotifyFreeInstallResult(int32_t recordId, const Want &w
std::string abilityName = freeInstallInfo.want.GetElement().GetAbilityName();
std::string startTime = freeInstallInfo.want.GetStringParam(Want::PARAM_RESV_START_TIME);
std::string url = freeInstallInfo.want.GetUriString();
if (want.GetElement().GetBundleName().compare(bundleName) != 0 ||
want.GetElement().GetAbilityName().compare(abilityName) != 0 ||
want.GetStringParam(Want::PARAM_RESV_START_TIME).compare(startTime) != 0 ||
want.GetUriString().compare(url) != 0) {
if (want.GetElement().GetBundleName() != bundleName ||
want.GetElement().GetAbilityName() != abilityName ||
want.GetStringParam(Want::PARAM_RESV_START_TIME) != startTime ||
want.GetUriString() != url) {
it++;
continue;
}
@@ -358,8 +356,8 @@ void FreeInstallManager::HandleOnFreeInstallFail(int32_t recordId, FreeInstallIn
resultCode, "free install failed");
}
std::string startTime = freeInstallInfo.want.GetStringParam(Want::PARAM_RESV_START_TIME);
if (freeInstallInfo.isOpenAtomicServiceShortUrl
&& resultCode != CONCURRENT_TASKS_WAITING_FOR_RETRY) {
if (freeInstallInfo.isOpenAtomicServiceShortUrl &&
resultCode != CONCURRENT_TASKS_WAITING_FOR_RETRY) {
StartAbilityByOriginalWant(freeInstallInfo, startTime);
return;
}
@@ -501,7 +499,7 @@ int32_t FreeInstallManager::UpdateElementName(Want &want, int32_t userId) const
return ERR_OK;
}
int FreeInstallManager::FreeInstallAbilityFromRemote(const Want &want, const sptr<IRemoteObject> &callback,
int FreeInstallManager::FreeInstallAbilityFromRemote(const Want &want, sptr<IRemoteObject> callback,
int32_t userId, int requestCode)
{
if (callback == nullptr) {
@@ -530,7 +528,7 @@ int FreeInstallManager::FreeInstallAbilityFromRemote(const Want &want, const spt
}
int FreeInstallManager::ConnectFreeInstall(const Want &want, int32_t userId,
const sptr<IRemoteObject> &callerToken, const std::string& localDeviceId)
sptr<IRemoteObject> callerToken, const std::string &localDeviceId)
{
auto bundleMgrHelper = AbilityUtil::GetBundleManagerHelper();
CHECK_POINTER_AND_RETURN(bundleMgrHelper, GET_ABILITY_SERVICE_FAILED);
@@ -577,14 +575,6 @@ int FreeInstallManager::ConnectFreeInstall(const Want &want, int32_t userId,
return ERR_OK;
}
std::time_t FreeInstallManager::GetTimeStamp()
{
std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds> tp =
std::chrono::time_point_cast<std::chrono::milliseconds>(std::chrono::system_clock::now());
std::time_t timestamp = tp.time_since_epoch().count();
return timestamp;
}
void FreeInstallManager::OnInstallFinished(int32_t recordId, int resultCode, const Want &want,
int32_t userId, bool isAsync)
{
@@ -604,21 +594,25 @@ void FreeInstallManager::OnInstallFinished(int32_t recordId, int resultCode, con
void FreeInstallManager::PostUpgradeAtomicServiceTask(int resultCode, const Want &want, int32_t userId)
{
TAG_LOGI(AAFwkTag::FREE_INSTALL, "called");
std::weak_ptr<FreeInstallManager> thisWptr(shared_from_this());
if (resultCode == ERR_OK) {
auto updateAtmoicServiceTask = [want, userId, thisWptr, &timeStampMap = timeStampMap_]() {
auto sptr = thisWptr.lock();
auto updateAtmoicServiceTask = [want, userId, weak = weak_from_this()]() {
auto freeInstallManager = weak.lock();
if (freeInstallManager == nullptr) {
TAG_LOGE(AAFwkTag::FREE_INSTALL, "null manager");
return;
}
TAG_LOGD(AAFwkTag::FREE_INSTALL,
"bundleName: %{public}s, moduleName: %{public}s, abilityName: %{public}s, userId: %{public}d",
want.GetElement().GetBundleName().c_str(), want.GetElement().GetModuleName().c_str(),
want.GetElement().GetAbilityName().c_str(), userId);
std::string nameKey = want.GetElement().GetBundleName() + want.GetElement().GetModuleName();
if (timeStampMap.find(nameKey) == timeStampMap.end() ||
sptr->GetTimeStamp() - timeStampMap[nameKey] > UPDATE_ATOMOIC_SERVICE_TASK_TIMER) {
auto iter = freeInstallManager->timeStampMap_.find(nameKey);
if (iter == freeInstallManager->timeStampMap_.end() ||
AbilityUtil::GetTimeStamp() - iter->second > UPDATE_ATOMOIC_SERVICE_TASK_TIMER) {
auto bundleMgrHelper = AbilityUtil::GetBundleManagerHelper();
CHECK_POINTER(bundleMgrHelper);
bundleMgrHelper->UpgradeAtomicService(want, userId);
timeStampMap.emplace(nameKey, sptr->GetTimeStamp());
freeInstallManager->timeStampMap_.emplace(nameKey, AbilityUtil::GetTimeStamp());
}
};
@@ -634,8 +628,8 @@ void FreeInstallManager::OnRemoteInstallFinished(int32_t recordId, int resultCod
NotifyFreeInstallResult(recordId, want, resultCode);
}
int FreeInstallManager::AddFreeInstallObserver(const sptr<IRemoteObject> &callerToken,
const sptr<AbilityRuntime::IFreeInstallObserver> &observer)
int FreeInstallManager::AddFreeInstallObserver(sptr<IRemoteObject> callerToken,
sptr<AbilityRuntime::IFreeInstallObserver> observer)
{
TAG_LOGI(AAFwkTag::FREE_INSTALL, "called");
auto abilityRecord = Token::GetAbilityRecordByToken(callerToken);
@@ -664,7 +658,7 @@ void FreeInstallManager::RemoveFreeInstallInfo(const std::string &bundleName, co
}
}
bool FreeInstallManager::VerifyStartFreeInstallPermission(const sptr<IRemoteObject> &callerToken)
bool FreeInstallManager::VerifyStartFreeInstallPermission(sptr<IRemoteObject> callerToken)
{
if (SupportSystemAbilityPermission::IsSupportSaCallPermission() || IsTopAbility(callerToken)) {
return true;
@@ -678,7 +672,7 @@ bool FreeInstallManager::VerifyStartFreeInstallPermission(const sptr<IRemoteObje
return false;
}
int32_t FreeInstallManager::GetRecordIdByToken(const sptr<IRemoteObject> &callerToken)
int32_t FreeInstallManager::GetRecordIdByToken(sptr<IRemoteObject> callerToken)
{
auto abilityRecord = Token::GetAbilityRecordByToken(callerToken);
int recordId = -1;
@@ -797,9 +791,9 @@ void FreeInstallManager::NotifyInsightIntentFreeInstallResult(const Want &want,
std::string bundleName = (*it).want.GetElement().GetBundleName();
std::string abilityName = (*it).want.GetElement().GetAbilityName();
std::string startTime = (*it).want.GetStringParam(Want::PARAM_RESV_START_TIME);
if (want.GetElement().GetBundleName().compare(bundleName) != 0 ||
want.GetElement().GetAbilityName().compare(abilityName) != 0 ||
want.GetStringParam(Want::PARAM_RESV_START_TIME).compare(startTime) != 0) {
if (want.GetElement().GetBundleName() != bundleName ||
want.GetElement().GetAbilityName() != abilityName ||
want.GetStringParam(Want::PARAM_RESV_START_TIME) != startTime) {
it++;
continue;
}
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2022 Huawei Device Co., Ltd.
* Copyright (c) 2022-2025 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -119,8 +119,7 @@ bool DoSomethingInterestingWithMyAPI(const char* data, size_t size)
// fuzz for FreeInstallManager
auto abilityms = std::make_shared<AbilityManagerService>();
std::weak_ptr<AbilityManagerService> amsWeakPtr{ abilityms };
auto freeInstallManager = std::make_shared<FreeInstallManager>(amsWeakPtr);
auto freeInstallManager = std::make_shared<FreeInstallManager>();
freeInstallManager->IsTopAbility(token);
freeInstallManager->StartFreeInstall(*want, int32Param, intParam, token);
freeInstallManager->RemoteFreeInstall(*want, int32Param, intParam, token);
@@ -130,7 +129,6 @@ bool DoSomethingInterestingWithMyAPI(const char* data, size_t size)
freeInstallManager->NotifyFreeInstallResult(*want, intParam);
freeInstallManager->FreeInstallAbilityFromRemote(*want, token, int32Param, intParam);
freeInstallManager->ConnectFreeInstall(*want, int32Param, token, stringParam);
freeInstallManager->GetTimeStamp();
freeInstallManager->OnInstallFinished(intParam, *want, int32Param, int64Param);
freeInstallManager->OnRemoteInstallFinished(intParam, *want, int32Param);
@@ -352,7 +352,7 @@ HWTEST_F(AbilityManagerServiceEighthTest, StartUIAbilityBySCB_001, TestSize.Leve
sessionInfo->want.SetParam(KEY_SESSION_ID, TEST_STRING_VALUE_1);
ret = abilityMs_->StartUIAbilityBySCB(sessionInfo, isColdStart, sceneFlag);
EXPECT_NE(ret, ERR_OK);
abilityMs_->freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
abilityMs_->freeInstallManager_ = std::make_shared<FreeInstallManager>();
ret = abilityMs_->StartUIAbilityBySCB(sessionInfo, isColdStart, sceneFlag);
EXPECT_NE(ret, ERR_OK);
auto uiAbilityLifecycleManager = std::make_shared<UIAbilityLifecycleManager>();
@@ -398,7 +398,7 @@ HWTEST_F(AbilityManagerServiceEighthTest, StartUIAbilityBySCB_001_002, TestSize.
sessionInfo->want.SetParam(KEY_SESSION_ID, TEST_STRING_VALUE_1);
FreeInstallInfo freeInstallInfo;
freeInstallInfo.want.SetParam(KEY_SESSION_ID, TEST_STRING_VALUE_1);
abilityMs_->freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
abilityMs_->freeInstallManager_ = std::make_shared<FreeInstallManager>();
abilityMs_->freeInstallManager_->freeInstallList_.push_back(freeInstallInfo);
ret = abilityMs_->StartUIAbilityBySCB(sessionInfo, isColdStart, sceneFlag);
EXPECT_EQ(ret, ERR_OK);
@@ -171,7 +171,7 @@ HWTEST_F(AbilityManagerServiceFourthTest, AddFreeInstallObserver_001, TestSize.L
sptr<AbilityRuntime::IFreeInstallObserver> observer;
EXPECT_EQ(abilityMs_->AddFreeInstallObserver(nullptr, observer), ERR_INVALID_VALUE);
abilityMs_->freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
abilityMs_->freeInstallManager_ = std::make_shared<FreeInstallManager>();
EXPECT_EQ(abilityMs_->AddFreeInstallObserver(nullptr, observer), ERR_INVALID_VALUE);
TAG_LOGI(AAFwkTag::TEST, "AbilityManagerServiceSecondTest AddFreeInstallObserver_001 end");
@@ -443,7 +443,7 @@ HWTEST_F(AbilityManagerServiceSixthTest, PreStartFreeInstall_001, TestSize.Level
bool isStartAsCaller { false };
auto callerToken = sptr<MockAbilityToken>::MakeSptr();
auto abilityMs_ = std::make_shared<AbilityManagerService>();
abilityMs_->freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
abilityMs_->freeInstallManager_ = std::make_shared<FreeInstallManager>();
auto ret = abilityMs_->PreStartFreeInstall(want, callerToken, specifyTokenId, isStartAsCaller, localWant);
EXPECT_EQ(ret, ERR_OK);
@@ -807,7 +807,7 @@ HWTEST_F(AbilityManagerServiceSixthTest, SetMinimizedDuringFreeInstall_001, Test
sessionInfo->want.SetParam(KEY_SESSION_ID, sessionId);
abilityMs->SetMinimizedDuringFreeInstall(sessionInfo);
abilityMs->freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs);
abilityMs->freeInstallManager_ = std::make_shared<FreeInstallManager>();
FreeInstallInfo info;
info.want = sessionInfo->want;
abilityMs->freeInstallManager_->freeInstallList_.push_back(info);
@@ -902,7 +902,7 @@ HWTEST_F(AbilityManagerServiceSixthTest, ConnectAbilityCommon_002, TestSize.Leve
ret = abilityMs->ConnectAbilityCommon(want, impl, token, ExtensionAbilityType::SERVICE,
-1, false);
want.SetUri("file://kia-file-uri");
abilityMs->freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs);
abilityMs->freeInstallManager_ = std::make_shared<FreeInstallManager>();
ret = abilityMs->ConnectAbilityCommon(want, impl, nullptr, ExtensionAbilityType::SERVICE,
-1, false);
Mock::VerifyAndClear(mockBundleMgr);
@@ -1956,7 +1956,7 @@ HWTEST_F(AbilityManagerServiceSixthTest, ConnectAbilityCommon_004, TestSize.Leve
ret = abilityMs->ConnectAbilityCommon(want, impl, token, ExtensionAbilityType::UI_SERVICE,
-1, false);
want.SetUri("file://kia-file-uri");
abilityMs->freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs);
abilityMs->freeInstallManager_ = std::make_shared<FreeInstallManager>();
ret = abilityMs->ConnectAbilityCommon(want, impl, nullptr, ExtensionAbilityType::UI_SERVICE,
-1, false);
Mock::VerifyAndClear(mockBundleMgr);
@@ -2438,7 +2438,7 @@ HWTEST_F(AbilityManagerServiceThirdTest, OpenLinkFreeInstallAtomicService_002, T
TAG_LOGI(AAFwkTag::TEST, "OpenLinkFreeInstallAtomicService_002 start");
auto abilityMs_ = std::make_shared<AbilityManagerService>();
EXPECT_NE(abilityMs_, nullptr);
abilityMs_->freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
abilityMs_->freeInstallManager_ = std::make_shared<FreeInstallManager>();
sptr<IRemoteObject> token = MockToken(AbilityType::PAGE);
AAFwk::Want want;
AAFwk::Want convertedWant;
@@ -2460,7 +2460,7 @@ HWTEST_F(AbilityManagerServiceThirdTest, OpenLinkFreeInstallAtomicService_003, T
TAG_LOGI(AAFwkTag::TEST, "OpenLinkFreeInstallAtomicService_003 start");
auto abilityMs_ = std::make_shared<AbilityManagerService>();
EXPECT_NE(abilityMs_, nullptr);
abilityMs_->freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
abilityMs_->freeInstallManager_ = std::make_shared<FreeInstallManager>();
sptr<IRemoteObject> token = MockToken(AbilityType::PAGE);
AAFwk::Want want;
AAFwk::Want convertedWant;
@@ -2482,7 +2482,7 @@ HWTEST_F(AbilityManagerServiceThirdTest, OpenLinkFreeInstallAtomicService_004, T
TAG_LOGI(AAFwkTag::TEST, "OpenLinkFreeInstallAtomicService_004 start");
auto abilityMs_ = std::make_shared<AbilityManagerService>();
EXPECT_NE(abilityMs_, nullptr);
abilityMs_->freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
abilityMs_->freeInstallManager_ = std::make_shared<FreeInstallManager>();
sptr<IRemoteObject> token = MockToken(AbilityType::PAGE);
AAFwk::Want want;
AAFwk::Want convertedWant;
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2022-2024 Huawei Device Co., Ltd.
* Copyright (c) 2022-2025 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -30,8 +30,6 @@
namespace OHOS {
namespace AAFwk {
class AbilityManagerService;
struct FreeInstallInfo {
bool isInstalled = false;
bool isPreStartMissionCalled = false;
@@ -65,7 +63,7 @@ struct FreeInstallParams {
*/
class FreeInstallManager : public std::enable_shared_from_this<FreeInstallManager> {
public:
explicit FreeInstallManager(const std::weak_ptr<AbilityManagerService> &server);
explicit FreeInstallManager();
virtual ~FreeInstallManager() = default;
/**
@@ -97,7 +95,7 @@ public:
* @param isOpenAtomicServiceShortUrl, the flag of open atomic service short url.
* @return Returns ERR_OK on success, others on failure.
*/
int StartFreeInstall(const Want &want, int32_t userId, int requestCode, const sptr<IRemoteObject> &callerToken,
int StartFreeInstall(const Want &want, int32_t userId, int requestCode, sptr<IRemoteObject> callerToken,
std::shared_ptr<FreeInstallParams> param = nullptr);
/**
@@ -109,8 +107,8 @@ public:
* @param callerToken, caller ability token.
* @return Returns ERR_OK on success, others on failure.
*/
int StartRemoteFreeInstall(const Want &want, int requestCode, int32_t validUserId,
const sptr<IRemoteObject> &callerToken);
int StartRemoteFreeInstall(Want &want, int requestCode, int32_t validUserId,
sptr<IRemoteObject> callerToken);
/**
* Start to free install from another devices.
@@ -122,7 +120,7 @@ public:
* @param requestCode, ability request code.
* @return Returns ERR_OK on success, others on failure.
*/
int FreeInstallAbilityFromRemote(const Want &want, const sptr<IRemoteObject> &callback,
int FreeInstallAbilityFromRemote(const Want &want, sptr<IRemoteObject> callback,
int32_t userId, int requestCode);
/**
@@ -133,16 +131,15 @@ public:
* @param localDeviceId, the device id of local.
* @return Returns ERR_OK on success, others on failure.
*/
int ConnectFreeInstall(const Want &want, int32_t userId, const sptr<IRemoteObject> &callerToken,
const std::string& localDeviceId);
int ConnectFreeInstall(const Want &want, int32_t userId, sptr<IRemoteObject> callerToken,
const std::string &localDeviceId);
/**
* Add an observer from application into freeInstallObserverManager.
* @param observer, the observer of the ability to free install.
* @return Returns ERR_OK on success, others on failure.
*/
int AddFreeInstallObserver(const sptr<IRemoteObject> &callerToken,
const sptr<AbilityRuntime::IFreeInstallObserver> &observer);
int AddFreeInstallObserver(sptr<IRemoteObject> callerToken, sptr<AbilityRuntime::IFreeInstallObserver> observer);
/**
* Get free install task info.
@@ -199,7 +196,6 @@ public:
const std::string& startTime, const std::string& sessionId);
private:
std::weak_ptr<AbilityManagerService> server_;
std::vector<FreeInstallInfo> freeInstallList_;
std::vector<FreeInstallInfo> dmsFreeInstallCbs_;
std::map<std::string, std::time_t> timeStampMap_;
@@ -218,14 +214,13 @@ private:
* @param callerToken, caller ability token.
* @return Returns ERR_OK on success, others on failure.
*/
int RemoteFreeInstall(const Want &want, int32_t userId, int requestCode, const sptr<IRemoteObject> &callerToken);
int RemoteFreeInstall(const Want &want, int32_t userId, int requestCode, sptr<IRemoteObject> callerToken);
int NotifyDmsCallback(const Want &want, int resultCode);
bool IsTopAbility(const sptr<IRemoteObject> &callerToken);
void NotifyDmsCallback(const Want &want, int resultCode);
bool IsTopAbility(sptr<IRemoteObject> callerToken);
void NotifyFreeInstallResult(int32_t recordId, const Want &want, int resultCode, bool isAsync = false);
FreeInstallInfo BuildFreeInstallInfo(const Want &want, int32_t userId, int requestCode,
const sptr<IRemoteObject> &callerToken, std::shared_ptr<FreeInstallParams> param = nullptr);
std::time_t GetTimeStamp();
sptr<IRemoteObject> callerToken, std::shared_ptr<FreeInstallParams> param = nullptr);
void RemoveFreeInstallInfo(const std::string &bundleName, const std::string &abilityName,
const std::string &startTime);
@@ -244,8 +239,8 @@ private:
void HandleOnFreeInstallFail(int32_t recordId, FreeInstallInfo &freeInstallInfo, int resultCode, bool isAsync);
void StartAbilityByConvertedWant(FreeInstallInfo &info, const std::string &startTime);
void StartAbilityByOriginalWant(FreeInstallInfo &info, const std::string &startTime);
bool VerifyStartFreeInstallPermission(const sptr<IRemoteObject> &callerToken);
int32_t GetRecordIdByToken(const sptr<IRemoteObject> &callerToken);
bool VerifyStartFreeInstallPermission(sptr<IRemoteObject> callerToken);
int32_t GetRecordIdByToken(sptr<IRemoteObject> callerToken);
void NotifyInsightIntentFreeInstallResult(const Want &want, int resultCode);
void NotifyInsightIntentExecuteDone(const Want &want, int resultCode);
};
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2022-2024 Huawei Device Co., Ltd.
* Copyright (c) 2022-2025 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -21,18 +21,17 @@ namespace AAFwk {
const std::string FREE_INSTALL_FAIL = "FREE_INSTALL_FAIL";
const std::string FREE_INSTALL_NOT_TOP_ABILITY = "FREE_INSTALL_NOT_TOP_ABILITY";
FreeInstallManager::FreeInstallManager(const std::weak_ptr<AbilityManagerService> &server)
: server_(server)
FreeInstallManager::FreeInstallManager()
{
}
bool FreeInstallManager::IsTopAbility(const sptr<IRemoteObject> &callerToken)
bool FreeInstallManager::IsTopAbility(sptr<IRemoteObject> callerToken)
{
return true;
}
int FreeInstallManager::StartFreeInstall(const Want &want, int32_t userId, int requestCode,
const sptr<IRemoteObject> &callerToken, std::shared_ptr<FreeInstallParams> param)
sptr<IRemoteObject> callerToken, std::shared_ptr<FreeInstallParams> param)
{
TAG_LOGI(AAFwkTag::TEST, "Mock StartFreeInstall");
std::string url = want.GetUriString();
@@ -46,27 +45,26 @@ int FreeInstallManager::StartFreeInstall(const Want &want, int32_t userId, int r
}
int FreeInstallManager::RemoteFreeInstall(const Want &want, int32_t userId, int requestCode,
const sptr<IRemoteObject> &callerToken)
sptr<IRemoteObject> callerToken)
{
return NOT_TOP_ABILITY;
}
FreeInstallInfo FreeInstallManager::BuildFreeInstallInfo(const Want &want, int32_t userId, int requestCode,
const sptr<IRemoteObject> &callerToken, std::shared_ptr<FreeInstallParams> param)
sptr<IRemoteObject> callerToken, std::shared_ptr<FreeInstallParams> param)
{
FreeInstallInfo info = {};
return info;
}
int FreeInstallManager::StartRemoteFreeInstall(const Want &want, int requestCode, int32_t validUserId,
const sptr<IRemoteObject> &callerToken)
int FreeInstallManager::StartRemoteFreeInstall(Want &want, int requestCode, int32_t validUserId,
sptr<IRemoteObject> callerToken)
{
return 0;
}
int FreeInstallManager::NotifyDmsCallback(const Want &want, int resultCode)
void FreeInstallManager::NotifyDmsCallback(const Want &want, int resultCode)
{
return ERR_OK;
}
void FreeInstallManager::NotifyFreeInstallResult(int32_t recordId, const Want &want, int resultCode, bool isAsync)
@@ -110,26 +108,18 @@ int32_t FreeInstallManager::UpdateElementName(Want &want, int32_t userId) const
return ERR_OK;
}
int FreeInstallManager::FreeInstallAbilityFromRemote(const Want &want, const sptr<IRemoteObject> &callback,
int FreeInstallManager::FreeInstallAbilityFromRemote(const Want &want, sptr<IRemoteObject> callback,
int32_t userId, int requestCode)
{
return ERR_OK;
}
int FreeInstallManager::ConnectFreeInstall(const Want &want, int32_t userId,
const sptr<IRemoteObject> &callerToken, const std::string& localDeviceId)
sptr<IRemoteObject> callerToken, const std::string &localDeviceId)
{
return ERR_OK;
}
std::time_t FreeInstallManager::GetTimeStamp()
{
std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds> tp =
std::chrono::time_point_cast<std::chrono::milliseconds>(std::chrono::system_clock::now());
std::time_t timestamp = tp.time_since_epoch().count();
return timestamp;
}
void FreeInstallManager::OnInstallFinished(int32_t recordId, int resultCode, const Want &want,
int32_t userId, bool isAsync)
{
@@ -143,8 +133,8 @@ void FreeInstallManager::OnRemoteInstallFinished(int32_t recordId, int resultCod
{
}
int FreeInstallManager::AddFreeInstallObserver(const sptr<IRemoteObject> &callerToken,
const sptr<AbilityRuntime::IFreeInstallObserver> &observer)
int FreeInstallManager::AddFreeInstallObserver(sptr<IRemoteObject> callerToken,
sptr<AbilityRuntime::IFreeInstallObserver> observer)
{
return CHECK_PERMISSION_FAILED;
}
@@ -154,12 +144,12 @@ void FreeInstallManager::RemoveFreeInstallInfo(const std::string &bundleName, co
{
}
bool FreeInstallManager::VerifyStartFreeInstallPermission(const sptr<IRemoteObject> &callerToken)
bool FreeInstallManager::VerifyStartFreeInstallPermission(sptr<IRemoteObject> callerToken)
{
return true;
}
int32_t FreeInstallManager::GetRecordIdByToken(const sptr<IRemoteObject> &callerToken)
int32_t FreeInstallManager::GetRecordIdByToken(sptr<IRemoteObject> callerToken)
{
return 0;
}
@@ -434,7 +434,7 @@ HWTEST_F(AbilityManagerServiceThirteenthTest, IsEmbeddedOpenAllowed_003, TestSiz
EXPECT_NE(mockSubManagersHelper, nullptr);
auto mockCurrentUIAbilityManager = std::make_shared<UIAbilityLifecycleManager>(0);
EXPECT_NE(mockCurrentUIAbilityManager, nullptr);
auto mockFreeInstallManager = std::make_shared<FreeInstallManager>(abilityMs_);
auto mockFreeInstallManager = std::make_shared<FreeInstallManager>();
EXPECT_NE(mockFreeInstallManager, nullptr);
abilityMs_->subManagersHelper_ = mockSubManagersHelper;
abilityMs_->subManagersHelper_->currentUIAbilityManager_ = mockCurrentUIAbilityManager;
@@ -656,7 +656,7 @@ HWTEST_F(AbilityManagerServiceThirteenthTest, IsEmbeddedOpenAllowed_009, TestSiz
EXPECT_NE(mockSubManagersHelper, nullptr);
auto mockCurrentUIAbilityManager = std::make_shared<UIAbilityLifecycleManager>(0);
EXPECT_NE(mockCurrentUIAbilityManager, nullptr);
auto mockFreeInstallManager = std::make_shared<FreeInstallManager>(abilityMs_);
auto mockFreeInstallManager = std::make_shared<FreeInstallManager>();
EXPECT_NE(mockFreeInstallManager, nullptr);
abilityMs_->subManagersHelper_ = mockSubManagersHelper;
abilityMs_->subManagersHelper_->currentUIAbilityManager_ = mockCurrentUIAbilityManager;
@@ -887,7 +887,7 @@ HWTEST_F(AbilityManagerServiceThirteenthTest, QueryAtomicServiceStartupRule_007,
EXPECT_NE(mockSubManagersHelper, nullptr);
auto mockCurrentUIAbilityManager = std::make_shared<UIAbilityLifecycleManager>(0);
EXPECT_NE(mockCurrentUIAbilityManager, nullptr);
auto mockFreeInstallManager = std::make_shared<FreeInstallManager>(abilityMs_);
auto mockFreeInstallManager = std::make_shared<FreeInstallManager>();
EXPECT_NE(mockFreeInstallManager, nullptr);
abilityMs_->subManagersHelper_ = mockSubManagersHelper;
abilityMs_->subManagersHelper_->currentUIAbilityManager_ = mockCurrentUIAbilityManager;
@@ -933,7 +933,7 @@ HWTEST_F(AbilityManagerServiceThirteenthTest, QueryAtomicServiceStartupRule_008,
EXPECT_NE(mockSubManagersHelper, nullptr);
auto mockCurrentUIAbilityManager = std::make_shared<UIAbilityLifecycleManager>(0);
EXPECT_NE(mockCurrentUIAbilityManager, nullptr);
auto mockFreeInstallManager = std::make_shared<FreeInstallManager>(abilityMs_);
auto mockFreeInstallManager = std::make_shared<FreeInstallManager>();
EXPECT_NE(mockFreeInstallManager, nullptr);
abilityMs_->subManagersHelper_ = mockSubManagersHelper;
abilityMs_->subManagersHelper_->currentUIAbilityManager_ = mockCurrentUIAbilityManager;
@@ -979,7 +979,7 @@ HWTEST_F(AbilityManagerServiceThirteenthTest, QueryAtomicServiceStartupRule_009,
EXPECT_NE(mockSubManagersHelper, nullptr);
auto mockCurrentUIAbilityManager = std::make_shared<UIAbilityLifecycleManager>(0);
EXPECT_NE(mockCurrentUIAbilityManager, nullptr);
auto mockFreeInstallManager = std::make_shared<FreeInstallManager>(abilityMs_);
auto mockFreeInstallManager = std::make_shared<FreeInstallManager>();
EXPECT_NE(mockFreeInstallManager, nullptr);
abilityMs_->subManagersHelper_ = mockSubManagersHelper;
abilityMs_->subManagersHelper_->currentUIAbilityManager_ = mockCurrentUIAbilityManager;
@@ -1026,7 +1026,7 @@ HWTEST_F(AbilityManagerServiceThirteenthTest, QueryAtomicServiceStartupRule_010,
EXPECT_NE(mockSubManagersHelper, nullptr);
auto mockCurrentUIAbilityManager = std::make_shared<UIAbilityLifecycleManager>(0);
EXPECT_NE(mockCurrentUIAbilityManager, nullptr);
auto mockFreeInstallManager = std::make_shared<FreeInstallManager>(abilityMs_);
auto mockFreeInstallManager = std::make_shared<FreeInstallManager>();
EXPECT_NE(mockFreeInstallManager, nullptr);
abilityMs_->subManagersHelper_ = mockSubManagersHelper;
abilityMs_->subManagersHelper_->currentUIAbilityManager_ = mockCurrentUIAbilityManager;
@@ -1072,7 +1072,7 @@ HWTEST_F(AbilityManagerServiceThirteenthTest, QueryAtomicServiceStartupRule_011,
EXPECT_NE(mockSubManagersHelper, nullptr);
auto mockCurrentUIAbilityManager = std::make_shared<UIAbilityLifecycleManager>(0);
EXPECT_NE(mockCurrentUIAbilityManager, nullptr);
auto mockFreeInstallManager = std::make_shared<FreeInstallManager>(abilityMs_);
auto mockFreeInstallManager = std::make_shared<FreeInstallManager>();
EXPECT_NE(mockFreeInstallManager, nullptr);
abilityMs_->subManagersHelper_ = mockSubManagersHelper;
abilityMs_->subManagersHelper_->currentUIAbilityManager_ = mockCurrentUIAbilityManager;
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2022-2024 Huawei Device Co., Ltd.
* Copyright (c) 2022-2025 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -30,8 +30,6 @@
namespace OHOS {
namespace AAFwk {
class AbilityManagerService;
struct FreeInstallInfo {
bool isInstalled = false;
bool isPreStartMissionCalled = false;
@@ -65,7 +63,7 @@ struct FreeInstallParams {
*/
class FreeInstallManager : public std::enable_shared_from_this<FreeInstallManager> {
public:
explicit FreeInstallManager(const std::weak_ptr<AbilityManagerService> &server);
explicit FreeInstallManager();
virtual ~FreeInstallManager() = default;
/**
@@ -97,7 +95,7 @@ public:
* @param isOpenAtomicServiceShortUrl, the flag of open atomic service short url.
* @return Returns ERR_OK on success, others on failure.
*/
int StartFreeInstall(const Want &want, int32_t userId, int requestCode, const sptr<IRemoteObject> &callerToken,
int StartFreeInstall(const Want &want, int32_t userId, int requestCode, sptr<IRemoteObject> callerToken,
std::shared_ptr<FreeInstallParams> param = nullptr);
/**
@@ -109,8 +107,8 @@ public:
* @param callerToken, caller ability token.
* @return Returns ERR_OK on success, others on failure.
*/
int StartRemoteFreeInstall(const Want &want, int requestCode, int32_t validUserId,
const sptr<IRemoteObject> &callerToken);
int StartRemoteFreeInstall(Want &want, int requestCode, int32_t validUserId,
sptr<IRemoteObject> callerToken);
/**
* Start to free install from another devices.
@@ -122,7 +120,7 @@ public:
* @param requestCode, ability request code.
* @return Returns ERR_OK on success, others on failure.
*/
int FreeInstallAbilityFromRemote(const Want &want, const sptr<IRemoteObject> &callback,
int FreeInstallAbilityFromRemote(const Want &want, sptr<IRemoteObject> callback,
int32_t userId, int requestCode);
/**
@@ -133,16 +131,15 @@ public:
* @param localDeviceId, the device id of local.
* @return Returns ERR_OK on success, others on failure.
*/
int ConnectFreeInstall(const Want &want, int32_t userId, const sptr<IRemoteObject> &callerToken,
const std::string& localDeviceId);
int ConnectFreeInstall(const Want &want, int32_t userId, sptr<IRemoteObject> callerToken,
const std::string &localDeviceId);
/**
* Add an observer from application into freeInstallObserverManager.
* @param observer, the observer of the ability to free install.
* @return Returns ERR_OK on success, others on failure.
*/
int AddFreeInstallObserver(const sptr<IRemoteObject> &callerToken,
const sptr<AbilityRuntime::IFreeInstallObserver> &observer);
int AddFreeInstallObserver(sptr<IRemoteObject> callerToken, sptr<AbilityRuntime::IFreeInstallObserver> observer);
/**
* Get free install task info.
@@ -199,7 +196,6 @@ public:
const std::string& startTime, const std::string& sessionId);
private:
std::weak_ptr<AbilityManagerService> server_;
std::vector<FreeInstallInfo> freeInstallList_;
std::vector<FreeInstallInfo> dmsFreeInstallCbs_;
std::map<std::string, std::time_t> timeStampMap_;
@@ -218,14 +214,13 @@ private:
* @param callerToken, caller ability token.
* @return Returns ERR_OK on success, others on failure.
*/
int RemoteFreeInstall(const Want &want, int32_t userId, int requestCode, const sptr<IRemoteObject> &callerToken);
int RemoteFreeInstall(const Want &want, int32_t userId, int requestCode, sptr<IRemoteObject> callerToken);
int NotifyDmsCallback(const Want &want, int resultCode);
bool IsTopAbility(const sptr<IRemoteObject> &callerToken);
void NotifyDmsCallback(const Want &want, int resultCode);
bool IsTopAbility(sptr<IRemoteObject> callerToken);
void NotifyFreeInstallResult(int32_t recordId, const Want &want, int resultCode, bool isAsync = false);
FreeInstallInfo BuildFreeInstallInfo(const Want &want, int32_t userId, int requestCode,
const sptr<IRemoteObject> &callerToken, std::shared_ptr<FreeInstallParams> param = nullptr);
std::time_t GetTimeStamp();
sptr<IRemoteObject> callerToken, std::shared_ptr<FreeInstallParams> param = nullptr);
void RemoveFreeInstallInfo(const std::string &bundleName, const std::string &abilityName,
const std::string &startTime);
@@ -244,8 +239,8 @@ private:
void HandleOnFreeInstallFail(int32_t recordId, FreeInstallInfo &freeInstallInfo, int resultCode, bool isAsync);
void StartAbilityByConvertedWant(FreeInstallInfo &info, const std::string &startTime);
void StartAbilityByOriginalWant(FreeInstallInfo &info, const std::string &startTime);
bool VerifyStartFreeInstallPermission(const sptr<IRemoteObject> &callerToken);
int32_t GetRecordIdByToken(const sptr<IRemoteObject> &callerToken);
bool VerifyStartFreeInstallPermission(sptr<IRemoteObject> callerToken);
int32_t GetRecordIdByToken(sptr<IRemoteObject> callerToken);
void NotifyInsightIntentFreeInstallResult(const Want &want, int resultCode);
void NotifyInsightIntentExecuteDone(const Want &want, int resultCode);
};
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2022-2024 Huawei Device Co., Ltd.
* Copyright (c) 2022-2025 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -18,44 +18,42 @@
namespace OHOS {
namespace AAFwk {
FreeInstallManager::FreeInstallManager(const std::weak_ptr<AbilityManagerService> &server)
: server_(server)
FreeInstallManager::FreeInstallManager()
{
}
bool FreeInstallManager::IsTopAbility(const sptr<IRemoteObject> &callerToken)
bool FreeInstallManager::IsTopAbility(sptr<IRemoteObject> callerToken)
{
return true;
}
int FreeInstallManager::StartFreeInstall(const Want &want, int32_t userId, int requestCode,
const sptr<IRemoteObject> &callerToken, std::shared_ptr<FreeInstallParams> param)
sptr<IRemoteObject> callerToken, std::shared_ptr<FreeInstallParams> param)
{
return MyStatus::GetInstance().fimStartFreeInstall_;
}
int FreeInstallManager::RemoteFreeInstall(const Want &want, int32_t userId, int requestCode,
const sptr<IRemoteObject> &callerToken)
sptr<IRemoteObject> callerToken)
{
return NOT_TOP_ABILITY;
}
FreeInstallInfo FreeInstallManager::BuildFreeInstallInfo(const Want &want, int32_t userId, int requestCode,
const sptr<IRemoteObject> &callerToken, std::shared_ptr<FreeInstallParams> param)
sptr<IRemoteObject> callerToken, std::shared_ptr<FreeInstallParams> param)
{
FreeInstallInfo info = {};
return info;
}
int FreeInstallManager::StartRemoteFreeInstall(const Want &want, int requestCode, int32_t validUserId,
const sptr<IRemoteObject> &callerToken)
int FreeInstallManager::StartRemoteFreeInstall(Want &want, int requestCode, int32_t validUserId,
sptr<IRemoteObject> callerToken)
{
return 0;
}
int FreeInstallManager::NotifyDmsCallback(const Want &want, int resultCode)
void FreeInstallManager::NotifyDmsCallback(const Want &want, int resultCode)
{
return ERR_OK;
}
void FreeInstallManager::NotifyFreeInstallResult(int32_t recordId, const Want &want, int resultCode, bool isAsync)
@@ -99,26 +97,18 @@ int32_t FreeInstallManager::UpdateElementName(Want &want, int32_t userId) const
return ERR_OK;
}
int FreeInstallManager::FreeInstallAbilityFromRemote(const Want &want, const sptr<IRemoteObject> &callback,
int FreeInstallManager::FreeInstallAbilityFromRemote(const Want &want, sptr<IRemoteObject> callback,
int32_t userId, int requestCode)
{
return ERR_OK;
}
int FreeInstallManager::ConnectFreeInstall(const Want &want, int32_t userId,
const sptr<IRemoteObject> &callerToken, const std::string& localDeviceId)
sptr<IRemoteObject> callerToken, const std::string &localDeviceId)
{
return ERR_OK;
}
std::time_t FreeInstallManager::GetTimeStamp()
{
std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds> tp =
std::chrono::time_point_cast<std::chrono::milliseconds>(std::chrono::system_clock::now());
std::time_t timestamp = tp.time_since_epoch().count();
return timestamp;
}
void FreeInstallManager::OnInstallFinished(int32_t recordId, int resultCode, const Want &want,
int32_t userId, bool isAsync)
{
@@ -132,8 +122,8 @@ void FreeInstallManager::OnRemoteInstallFinished(int32_t recordId, int resultCod
{
}
int FreeInstallManager::AddFreeInstallObserver(const sptr<IRemoteObject> &callerToken,
const sptr<AbilityRuntime::IFreeInstallObserver> &observer)
int FreeInstallManager::AddFreeInstallObserver(sptr<IRemoteObject> callerToken,
sptr<AbilityRuntime::IFreeInstallObserver> observer)
{
return CHECK_PERMISSION_FAILED;
}
@@ -143,12 +133,12 @@ void FreeInstallManager::RemoveFreeInstallInfo(const std::string &bundleName, co
{
}
bool FreeInstallManager::VerifyStartFreeInstallPermission(const sptr<IRemoteObject> &callerToken)
bool FreeInstallManager::VerifyStartFreeInstallPermission(sptr<IRemoteObject> callerToken)
{
return true;
}
int32_t FreeInstallManager::GetRecordIdByToken(const sptr<IRemoteObject> &callerToken)
int32_t FreeInstallManager::GetRecordIdByToken(sptr<IRemoteObject> callerToken)
{
return 0;
}
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2024 Huawei Device Co., Ltd.
* Copyright (c) 2024-2025 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -76,8 +76,7 @@ sptr<Token> FreeInstallManagerSecondTest::MockToken()
*/
HWTEST_F(FreeInstallManagerSecondTest, GetFreeInstallTaskInfo_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
const std::string bundleName("com.test.demo");
std::string abilityName("MainAbility");
const std::string startTime = "startTime";
@@ -108,8 +107,7 @@ HWTEST_F(FreeInstallManagerSecondTest, GetFreeInstallTaskInfo_001, TestSize.Leve
*/
HWTEST_F(FreeInstallManagerSecondTest, SetSCBCallStatus_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
const std::string bundleName("com.test.demo");
std::string abilityName("MainAbility");
const std::string startTime = "startTime";
@@ -144,8 +142,7 @@ HWTEST_F(FreeInstallManagerSecondTest, SetSCBCallStatus_001, TestSize.Level1)
*/
HWTEST_F(FreeInstallManagerSecondTest, NotifyInsightIntentFreeInstallResult_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
int32_t resultCode = ERR_OK + 1;
//resultCode != ERR_OK and freeInstallList_ is NULL
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2022 Huawei Device Co., Ltd.
* Copyright (c) 2022-2025 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -78,8 +78,7 @@ sptr<Token> FreeInstallTest::MockToken()
*/
HWTEST_F(FreeInstallTest, FreeInstall_StartFreeInstall_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
@@ -113,8 +112,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_StartFreeInstall_001, TestSize.Level1)
*/
HWTEST_F(FreeInstallTest, FreeInstall_StartFreeInstall_002, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
@@ -134,8 +132,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_StartFreeInstall_002, TestSize.Level1)
*/
HWTEST_F(FreeInstallTest, FreeInstall_StartFreeInstall_003, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
@@ -168,8 +165,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_StartFreeInstall_003, TestSize.Level1)
*/
HWTEST_F(FreeInstallTest, FreeInstall_OnInstallFinished_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
@@ -202,8 +198,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_OnInstallFinished_001, TestSize.Level1)
*/
HWTEST_F(FreeInstallTest, FreeInstall_OnInstallFinished_002, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
@@ -236,8 +231,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_OnInstallFinished_002, TestSize.Level1)
*/
HWTEST_F(FreeInstallTest, FreeInstall_OnInstallFinished_003, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
@@ -263,8 +257,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_OnInstallFinished_003, TestSize.Level1)
*/
HWTEST_F(FreeInstallTest, FreeInstall_FreeInstallAbilityFromRemote_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
@@ -282,8 +275,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_FreeInstallAbilityFromRemote_001, TestSize
*/
HWTEST_F(FreeInstallTest, FreeInstall_OnRemoteInstallFinished_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
@@ -316,8 +308,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_OnRemoteInstallFinished_001, TestSize.Leve
*/
HWTEST_F(FreeInstallTest, FreeInstall_ConnectFreeInstall_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
@@ -327,23 +318,6 @@ HWTEST_F(FreeInstallTest, FreeInstall_ConnectFreeInstall_001, TestSize.Level1)
EXPECT_NE(res, 0);
}
/**
* @tc.number: FreeInstall_UpdateElementName_001
* @tc.name: UpdateElementName
* @tc.desc: Test UpdateElementName.
*/
HWTEST_F(FreeInstallTest, FreeInstall_UpdateElementName_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
Want want;
const int32_t userId = 1;
freeInstallManager_->UpdateElementName(want, userId);
freeInstallManager_->GetTimeStamp();
EXPECT_TRUE(freeInstallManager_ != nullptr);
}
/**
* @tc.number: FreeInstall_AddFreeInstallObserver_001
* @tc.name: AddFreeInstallObserver
@@ -351,8 +325,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_UpdateElementName_001, TestSize.Level1)
*/
HWTEST_F(FreeInstallTest, FreeInstall_AddFreeInstallObserver_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
auto ret = freeInstallManager_->AddFreeInstallObserver(nullptr, nullptr);
EXPECT_EQ(CHECK_PERMISSION_FAILED, ret);
@@ -365,8 +338,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_AddFreeInstallObserver_001, TestSize.Level
*/
HWTEST_F(FreeInstallTest, FreeInstall_SetSCBCallStatus_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
freeInstallManager_->SetSCBCallStatus("com.ix.hiservcie", "ServiceAbility", "2024-7-17 00:00:00", false);
FreeInstallInfo freeInstallInfo;
@@ -382,8 +354,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_SetSCBCallStatus_001, TestSize.Level1)
*/
HWTEST_F(FreeInstallTest, FreeInstall_SetPreStartMissionCallStatus_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
freeInstallManager_->SetPreStartMissionCallStatus("com.ix.hiservcie", "ServiceAbility",
"2024-7-17 00:00:00", false);
@@ -400,8 +371,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_SetPreStartMissionCallStatus_001, TestSize
*/
HWTEST_F(FreeInstallTest, FreeInstall_SetFreeInstallTaskSessionId_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.ix.hiservcie", "ServiceAbility");
@@ -439,8 +409,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_SetFreeInstallTaskSessionId_001, TestSize.
*/
HWTEST_F(FreeInstallTest, FreeInstall_VerifyStartFreeInstallPermission_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
const sptr<IRemoteObject> callerToken = MockToken();
freeInstallManager_->VerifyStartFreeInstallPermission(callerToken);
@@ -455,8 +424,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_VerifyStartFreeInstallPermission_001, Test
*/
HWTEST_F(FreeInstallTest, FreeInstall_SetAppRunningState_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
freeInstallManager_->SetAppRunningState(want);
@@ -470,8 +438,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_SetAppRunningState_001, TestSize.Level1)
*/
HWTEST_F(FreeInstallTest, FreeInstall_PostUpgradeAtomicServiceTask_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
@@ -489,8 +456,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_PostUpgradeAtomicServiceTask_001, TestSize
*/
HWTEST_F(FreeInstallTest, FreeInstall_StartAbilityByOriginalWant_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
FreeInstallInfo freeInstallInfo;
freeInstallManager_->StartAbilityByOriginalWant(freeInstallInfo, "2024-07-17 00:00:00");
@@ -504,8 +470,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_StartAbilityByOriginalWant_001, TestSize.L
*/
HWTEST_F(FreeInstallTest, FreeInstall_StartAbilityByConvertedWant_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
FreeInstallInfo freeInstallInfo;
freeInstallManager_->StartAbilityByConvertedWant(freeInstallInfo, "2024-07-17 00:00:00");
@@ -519,8 +484,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_StartAbilityByConvertedWant_001, TestSize.
*/
HWTEST_F(FreeInstallTest, FreeInstall_IsTopAbility_001, TestSize.Level1)
{
auto abilityMs = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
EXPECT_NE(freeInstallManager_, nullptr);
sptr<IRemoteObject> callerToken = nullptr;
bool result = freeInstallManager_->IsTopAbility(callerToken);
@@ -534,8 +498,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_IsTopAbility_001, TestSize.Level1)
*/
HWTEST_F(FreeInstallTest, FreeInstall_StartRemoteFreeInstall_001, TestSize.Level1)
{
auto abilityMs = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
want.SetParam(Want::PARAM_RESV_FOR_RESULT, true);
AbilityRequest abilityRequest;
@@ -556,8 +519,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_StartRemoteFreeInstall_001, TestSize.Level
*/
HWTEST_F(FreeInstallTest, FreeInstall_AddFreeInstallObserver_002, TestSize.Level1)
{
auto abilityMs = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
AbilityRequest abilityRequest;
abilityRequest.appInfo.bundleName = "com.test.demo";
abilityRequest.abilityInfo.name = "MainAbility";
@@ -576,8 +538,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_AddFreeInstallObserver_002, TestSize.Level
*/
HWTEST_F(FreeInstallTest, FreeInstall_GetRecordIdByToken_001, TestSize.Level1)
{
auto abilityMs = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
EXPECT_NE(freeInstallManager_, nullptr);
AbilityRequest abilityRequest;
abilityRequest.appInfo.bundleName = "com.test.demo";
@@ -597,8 +558,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_GetRecordIdByToken_001, TestSize.Level1)
*/
HWTEST_F(FreeInstallTest, FreeInstall_GetRecordIdByToken_002, TestSize.Level1)
{
auto abilityMs = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
EXPECT_NE(freeInstallManager_, nullptr);
sptr<IRemoteObject> callerToken = nullptr;
int32_t result = freeInstallManager_->GetRecordIdByToken(callerToken);
@@ -612,8 +572,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_GetRecordIdByToken_002, TestSize.Level1)
*/
HWTEST_F(FreeInstallTest, FreeInstall_BuildFreeInstallInfo_002, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
@@ -74,8 +74,7 @@ sptr<Token> FreeInstallTest::MockToken()
*/
HWTEST_F(FreeInstallTest, FreeInstall_RemoteFreeInstall_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
@@ -108,8 +107,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_RemoteFreeInstall_001, TestSize.Level1)
*/
HWTEST_F(FreeInstallTest, FreeInstall_RemoteFreeInstall_002, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
@@ -143,8 +141,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_RemoteFreeInstall_002, TestSize.Level1)
*/
HWTEST_F(FreeInstallTest, FreeInstall_StartRemoteFreeInstall_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
@@ -178,8 +175,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_StartRemoteFreeInstall_001, TestSize.Level
*/
HWTEST_F(FreeInstallTest, FreeInstall_StartRemoteFreeInstall_002, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
@@ -212,17 +208,42 @@ HWTEST_F(FreeInstallTest, FreeInstall_StartRemoteFreeInstall_002, TestSize.Level
*/
HWTEST_F(FreeInstallTest, FreeInstall_NotifyDmsCallback_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
const int32_t userId = 100;
const int requestCode = 0;
want.SetParam(Want::PARAM_RESV_START_TIME, std::string("0"));
int res = 0;
res = freeInstallManager_->NotifyDmsCallback(want, requestCode);
EXPECT_EQ(res, ERR_INVALID_VALUE);
freeInstallManager_->NotifyDmsCallback(want, requestCode);
EXPECT_TRUE(freeInstallManager_->dmsFreeInstallCbs_.empty());
}
/**
* @tc.number: NotifyDmsCallback_002
* @tc.name: NotifyDmsCallback
* @tc.desc: Test NotifyDmsCallback.
*/
HWTEST_F(FreeInstallTest, FreeInstall_NotifyDmsCallback_002, TestSize.Level1)
{
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
const int32_t userId = 100;
const int requestCode = 0;
want.SetParam(Want::PARAM_RESV_START_TIME, std::string("0"));
FreeInstallInfo info = {
.userId = userId,
.requestCode = requestCode,
.dmsCallback = nullptr,
.want = want
};
freeInstallManager_->dmsFreeInstallCbs_.push_back(info);
ASSERT_FALSE(freeInstallManager_->dmsFreeInstallCbs_.empty());
freeInstallManager_->NotifyDmsCallback(want, requestCode);
EXPECT_TRUE(freeInstallManager_->dmsFreeInstallCbs_.empty());
}
/**
@@ -232,8 +253,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_NotifyDmsCallback_001, TestSize.Level1)
*/
HWTEST_F(FreeInstallTest, FreeInstall_HandleOnFreeInstallSuccess_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
@@ -254,8 +274,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_HandleOnFreeInstallSuccess_001, TestSize.L
*/
HWTEST_F(FreeInstallTest, FreeInstall_HandleOnFreeInstallSuccess_002, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
@@ -276,8 +295,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_HandleOnFreeInstallSuccess_002, TestSize.L
*/
HWTEST_F(FreeInstallTest, FreeInstall_HandleOnFreeInstallFail_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.ohos.param.sessionId", "MainAbility");
want.SetElement(element);
@@ -300,8 +318,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_HandleOnFreeInstallFail_001, TestSize.Leve
*/
HWTEST_F(FreeInstallTest, FreeInstall_HandleOnFreeInstallFail_002, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.ohos.param.sessionId", "MainAbility");
want.SetElement(element);
@@ -323,8 +340,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_HandleOnFreeInstallFail_002, TestSize.Leve
*/
HWTEST_F(FreeInstallTest, FreeInstall_HandleOnFreeInstallFail_003, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.example.aplication", "MainAbility");
want.SetElement(element);
@@ -350,8 +366,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_HandleOnFreeInstallFail_003, TestSize.Leve
HWTEST_F(FreeInstallTest, FreeInstall_HandleOnFreeInstallFail_004, TestSize.Level1)
{
TAG_LOGI(AAFwkTag::TEST, "FreeInstall_HandleOnFreeInstallFail_004 start");
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.example.aplication", "MainAbility");
want.SetElement(element);
@@ -378,8 +393,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_HandleOnFreeInstallFail_004, TestSize.Leve
*/
HWTEST_F(FreeInstallTest, FreeInstall_StartAbilityByFreeInstall_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
@@ -404,8 +418,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_StartAbilityByFreeInstall_001, TestSize.Le
*/
HWTEST_F(FreeInstallTest, FreeInstall_StartAbilityByFreeInstall_002, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "", "");
want.SetElement(element);
@@ -426,8 +439,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_StartAbilityByFreeInstall_002, TestSize.Le
*/
HWTEST_F(FreeInstallTest, FreeInstall_StartAbilityByPreInstall_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
@@ -455,8 +467,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_StartAbilityByPreInstall_001, TestSize.Lev
*/
HWTEST_F(FreeInstallTest, FreeInstall_StartAbilityByPreInstall_002, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "", "");
want.SetElement(element);
@@ -478,8 +489,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_StartAbilityByPreInstall_002, TestSize.Lev
*/
HWTEST_F(FreeInstallTest, FreeInstall_SetSCBCallStatus_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);
@@ -506,8 +516,7 @@ HWTEST_F(FreeInstallTest, FreeInstall_SetSCBCallStatus_001, TestSize.Level1)
*/
HWTEST_F(FreeInstallTest, FreeInstall_SetPreStartMissionCallStatus_001, TestSize.Level1)
{
auto abilityMs_ = std::make_shared<AbilityManagerService>();
freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
freeInstallManager_ = std::make_shared<FreeInstallManager>();
Want want;
ElementName element("", "com.test.demo", "MainAbility");
want.SetElement(element);