1 /* 2 * Copyright (c) 2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef OHOS_ABILITY_RUNTIME_ABILITY_MANAGER_STUB_H 17 #define OHOS_ABILITY_RUNTIME_ABILITY_MANAGER_STUB_H 18 19 #include "ability_manager_interface.h" 20 21 #include <iremote_object.h> 22 #include <iremote_stub.h> 23 24 #include "dlp_connection_info.h" 25 #include "hilog_wrapper.h" 26 #include "iconnection_observer.h" 27 28 namespace OHOS { 29 namespace AAFwk { 30 using AutoStartupInfo = AbilityRuntime::AutoStartupInfo; 31 /** 32 * @class AbilityManagerStub 33 * AbilityManagerStub. 34 */ 35 class AbilityManagerStub : public IRemoteStub<IAbilityManager> { 36 public: 37 AbilityManagerStub(); 38 ~AbilityManagerStub(); 39 virtual int OnRemoteRequest( 40 uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override; 41 42 /** 43 * Calls this interface to move the ability to the foreground. 44 * 45 * @param token, ability's token. 46 * @param flag, use for lock or unlock flag and so on. 47 * @return Returns ERR_OK on success, others on failure. 48 */ 49 virtual int DoAbilityForeground(const sptr<IRemoteObject> &token, uint32_t flag) override; 50 51 /** 52 * Calls this interface to move the ability to the background. 53 * 54 * @param token, ability's token. 55 * @param flag, use for lock or unlock flag and so on. 56 * @return Returns ERR_OK on success, others on failure. 57 */ 58 virtual int DoAbilityBackground(const sptr<IRemoteObject> &token, uint32_t flag) override; 59 60 virtual int RegisterObserver(const sptr<AbilityRuntime::IConnectionObserver> &observer); 61 62 virtual int UnregisterObserver(const sptr<AbilityRuntime::IConnectionObserver> &observer); 63 64 virtual int GetDlpConnectionInfos(std::vector<AbilityRuntime::DlpConnectionInfo> &infos); 65 66 virtual int GetConnectionData(std::vector<AbilityRuntime::ConnectionData> &connectionData); 67 68 private: 69 void FirstStepInit(); 70 void SecondStepInit(); 71 void ThirdStepInit(); 72 void FourthStepInit(); 73 int TerminateAbilityInner(MessageParcel &data, MessageParcel &reply); 74 int TerminateUIExtensionAbilityInner(MessageParcel &data, MessageParcel &reply); 75 int CloseUIAbilityBySCBInner(MessageParcel &data, MessageParcel &reply); 76 int SendResultToAbilityInner(MessageParcel &data, MessageParcel &reply); 77 int MinimizeAbilityInner(MessageParcel &data, MessageParcel &reply); 78 int MinimizeUIExtensionAbilityInner(MessageParcel &data, MessageParcel &reply); 79 int MinimizeUIAbilityBySCBInner(MessageParcel &data, MessageParcel &reply); 80 int AttachAbilityThreadInner(MessageParcel &data, MessageParcel &reply); 81 int AbilityTransitionDoneInner(MessageParcel &data, MessageParcel &reply); 82 int ScheduleConnectAbilityDoneInner(MessageParcel &data, MessageParcel &reply); 83 int ScheduleDisconnectAbilityDoneInner(MessageParcel &data, MessageParcel &reply); 84 int ScheduleCommandAbilityDoneInner(MessageParcel &data, MessageParcel &reply); 85 int ScheduleCommandAbilityWindowDoneInner(MessageParcel &data, MessageParcel &reply); 86 int GetMissionSnapshotInner(MessageParcel &data, MessageParcel &reply); 87 int AcquireDataAbilityInner(MessageParcel &data, MessageParcel &reply); 88 int ReleaseDataAbilityInner(MessageParcel &data, MessageParcel &reply); 89 int KillProcessInner(MessageParcel &data, MessageParcel &reply); 90 int UninstallAppInner(MessageParcel &data, MessageParcel &reply); 91 int StartAbilityInner(MessageParcel &data, MessageParcel &reply); 92 int StartAbilityByUIContentSessionAddCallerInner(MessageParcel &data, MessageParcel &reply); 93 int StartAbilityByUIContentSessionForOptionsInner(MessageParcel &data, MessageParcel &reply); 94 int StartAbilityAsCallerByTokenInner(MessageParcel &data, MessageParcel &reply); 95 int StartAbilityAsCallerForOptionInner(MessageParcel &data, MessageParcel &reply); 96 int StartExtensionAbilityInner(MessageParcel &data, MessageParcel &reply); 97 int StartUIExtensionAbilityInner(MessageParcel &data, MessageParcel &reply); 98 int StartUIAbilityBySCBInner(MessageParcel &data, MessageParcel &reply); 99 int StopExtensionAbilityInner(MessageParcel& data, MessageParcel& reply); 100 int StartAbilityAddCallerInner(MessageParcel &data, MessageParcel &reply); 101 int ConnectAbilityInner(MessageParcel &data, MessageParcel &reply); 102 int ConnectAbilityWithTypeInner(MessageParcel &data, MessageParcel &reply); 103 int ConnectUIExtensionAbilityInner(MessageParcel &data, MessageParcel &reply); 104 int DisconnectAbilityInner(MessageParcel &data, MessageParcel &reply); 105 int StopServiceAbilityInner(MessageParcel &data, MessageParcel &reply); 106 int DumpStateInner(MessageParcel &data, MessageParcel &reply); 107 int DumpSysStateInner(MessageParcel &data, MessageParcel &reply); 108 int StartAbilityForSettingsInner(MessageParcel &data, MessageParcel &reply); 109 int StartAbilityForOptionsInner(MessageParcel &data, MessageParcel &reply); 110 int RequestModalUIExtensionInner(MessageParcel &data, MessageParcel &reply); 111 112 int GetWantSenderInner(MessageParcel &data, MessageParcel &reply); 113 int SendWantSenderInner(MessageParcel &data, MessageParcel &reply); 114 int CancelWantSenderInner(MessageParcel &data, MessageParcel &reply); 115 116 int GetPendingWantUidInner(MessageParcel &data, MessageParcel &reply); 117 int GetPendingWantUserIdInner(MessageParcel &data, MessageParcel &reply); 118 int GetPendingWantBundleNameInner(MessageParcel &data, MessageParcel &reply); 119 int GetPendingWantCodeInner(MessageParcel &data, MessageParcel &reply); 120 int GetPendingWantTypeInner(MessageParcel &data, MessageParcel &reply); 121 122 int RegisterCancelListenerInner(MessageParcel &data, MessageParcel &reply); 123 int UnregisterCancelListenerInner(MessageParcel &data, MessageParcel &reply); 124 125 int GetPendingRequestWantInner(MessageParcel &data, MessageParcel &reply); 126 int GetWantSenderInfoInner(MessageParcel &data, MessageParcel &reply); 127 128 int GetAppMemorySizeInner(MessageParcel &data, MessageParcel &reply); 129 int IsRamConstrainedDeviceInner(MessageParcel &data, MessageParcel &reply); 130 int ClearUpApplicationDataInner(MessageParcel &data, MessageParcel &reply); 131 132 int ContinueMissionInner(MessageParcel &data, MessageParcel &reply); 133 int ContinueMissionOfBundleNameInner(MessageParcel &data, MessageParcel &reply); 134 int ContinueAbilityInner(MessageParcel &data, MessageParcel &reply); 135 int StartContinuationInner(MessageParcel &data, MessageParcel &reply); 136 int NotifyCompleteContinuationInner(MessageParcel &data, MessageParcel &reply); 137 int NotifyContinuationResultInner(MessageParcel &data, MessageParcel &reply); 138 int RegisterRemoteMissionListenerInner(MessageParcel &data, MessageParcel &reply); 139 int RegisterRemoteOnListenerInner(MessageParcel &data, MessageParcel &reply); 140 int RegisterRemoteOffListenerInner(MessageParcel &data, MessageParcel &reply); 141 int UnRegisterRemoteMissionListenerInner(MessageParcel &data, MessageParcel &reply); 142 143 int LockMissionForCleanupInner(MessageParcel &data, MessageParcel &reply); 144 int UnlockMissionForCleanupInner(MessageParcel &data, MessageParcel &reply); 145 int SetLockedStateInner(MessageParcel &data, MessageParcel &reply); 146 int RegisterMissionListenerInner(MessageParcel &data, MessageParcel &reply); 147 int UnRegisterMissionListenerInner(MessageParcel &data, MessageParcel &reply); 148 int GetMissionInfosInner(MessageParcel &data, MessageParcel &reply); 149 int GetMissionInfoInner(MessageParcel &data, MessageParcel &reply); 150 int CleanMissionInner(MessageParcel &data, MessageParcel &reply); 151 int CleanAllMissionsInner(MessageParcel &data, MessageParcel &reply); 152 int MoveMissionToFrontInner(MessageParcel &data, MessageParcel &reply); 153 int MoveMissionsToForegroundInner(MessageParcel &data, MessageParcel &reply); 154 int MoveMissionsToBackgroundInner(MessageParcel &data, MessageParcel &reply); 155 int GetMissionIdByTokenInner(MessageParcel &data, MessageParcel &reply); 156 157 // for new version ability (call ability) 158 int StartAbilityByCallInner(MessageParcel &data, MessageParcel &reply); 159 int CallRequestDoneInner(MessageParcel &data, MessageParcel &reply); 160 int ReleaseCallInner(MessageParcel &data, MessageParcel &reply); 161 int StartUserInner(MessageParcel &data, MessageParcel &reply); 162 int StopUserInner(MessageParcel &data, MessageParcel &reply); 163 int LogoutUserInner(MessageParcel &data, MessageParcel &reply); 164 int GetAbilityRunningInfosInner(MessageParcel &data, MessageParcel &reply); 165 int GetExtensionRunningInfosInner(MessageParcel &data, MessageParcel &reply); 166 int GetProcessRunningInfosInner(MessageParcel &data, MessageParcel &reply); 167 168 int StartSyncRemoteMissionsInner(MessageParcel &data, MessageParcel &reply); 169 int StopSyncRemoteMissionsInner(MessageParcel &data, MessageParcel &reply); 170 int RegisterSnapshotHandlerInner(MessageParcel &data, MessageParcel &reply); 171 int GetMissionSnapshotInfoInner(MessageParcel &data, MessageParcel &reply); 172 int SendANRProcessIDInner(MessageParcel &data, MessageParcel &reply); 173 174 int SetAbilityControllerInner(MessageParcel &data, MessageParcel &reply); 175 176 int StartUserTestInner(MessageParcel &data, MessageParcel &reply); 177 int FinishUserTestInner(MessageParcel &data, MessageParcel &reply); 178 int GetTopAbilityTokenInner(MessageParcel &data, MessageParcel &reply); 179 int CheckUIExtensionIsFocusedInner(MessageParcel &data, MessageParcel &reply); 180 int DelegatorDoAbilityForegroundInner(MessageParcel &data, MessageParcel &reply); 181 int DelegatorDoAbilityBackgroundInner(MessageParcel &data, MessageParcel &reply); 182 int DoAbilityForegroundInner(MessageParcel &data, MessageParcel &reply); 183 int DoAbilityBackgroundInner(MessageParcel &data, MessageParcel &reply); 184 185 int IsRunningInStabilityTestInner(MessageParcel &data, MessageParcel &reply); 186 int MoveMissionToFrontByOptionsInner(MessageParcel &data, MessageParcel &reply); 187 188 int UpdateMissionSnapShotFromWMSInner(MessageParcel &data, MessageParcel &reply); 189 int RegisterConnectionObserverInner(MessageParcel &data, MessageParcel &reply); 190 int UnregisterConnectionObserverInner(MessageParcel &data, MessageParcel &reply); 191 int GetDlpConnectionInfosInner(MessageParcel &data, MessageParcel &reply); 192 int GetConnectionDataInner(MessageParcel &data, MessageParcel &reply); 193 int MoveAbilityToBackgroundInner(MessageParcel &data, MessageParcel &reply); 194 int SetMissionContinueStateInner(MessageParcel &data, MessageParcel &reply); 195 #ifdef SUPPORT_GRAPHICS 196 int SetMissionLabelInner(MessageParcel &data, MessageParcel &reply); 197 int SetMissionIconInner(MessageParcel &data, MessageParcel &reply); 198 int RegisterWindowManagerServiceHandlerInner(MessageParcel &data, MessageParcel &reply); 199 int CompleteFirstFrameDrawingInner(MessageParcel &data, MessageParcel &reply); 200 int PrepareTerminateAbilityInner(MessageParcel &data, MessageParcel &reply); 201 int GetDialogSessionInfoInner(MessageParcel &data, MessageParcel &reply); 202 int SendDialogResultInner(MessageParcel &data, MessageParcel &reply); 203 #endif 204 205 #ifdef ABILITY_COMMAND_FOR_TEST 206 int ForceTimeoutForTestInner(MessageParcel &data, MessageParcel &reply); 207 #endif 208 209 int FreeInstallAbilityFromRemoteInner(MessageParcel &data, MessageParcel &reply); 210 int AddFreeInstallObserverInner(MessageParcel &data, MessageParcel &reply); 211 212 using RequestFuncType = int (AbilityManagerStub::*)(MessageParcel &data, MessageParcel &reply); 213 std::map<uint32_t, RequestFuncType> requestFuncMap_; 214 215 #ifdef ABILITY_COMMAND_FOR_TEST 216 int BlockAmsServiceInner(MessageParcel &data, MessageParcel &reply); 217 int BlockAbilityInner(MessageParcel &data, MessageParcel &reply); 218 int BlockAppServiceInner(MessageParcel &data, MessageParcel &reply); 219 #endif 220 int EnableRecoverAbilityInner(MessageParcel &data, MessageParcel &reply); 221 int ScheduleRecoverAbilityInner(MessageParcel &data, MessageParcel &reply); 222 int GetTopAbilityInner(MessageParcel &data, MessageParcel &reply); 223 int GetElementNameByTokenInner(MessageParcel &data, MessageParcel &reply); 224 int DumpAbilityInfoDoneInner(MessageParcel &data, MessageParcel &reply); 225 int32_t IsValidMissionIdsInner(MessageParcel &data, MessageParcel &reply); 226 227 int VerifyPermissionInner(MessageParcel &data, MessageParcel &reply); 228 229 int HandleRequestDialogService(MessageParcel &data, MessageParcel &reply); 230 int32_t HandleReportDrawnCompleted(MessageParcel &data, MessageParcel &reply); 231 232 int AcquireShareDataInner(MessageParcel &data, MessageParcel &reply); 233 int ShareDataDoneInner(MessageParcel &data, MessageParcel &reply); 234 int GetAbilityTokenByCalleeObjInner(MessageParcel &data, MessageParcel &reply); 235 236 int32_t ForceExitAppInner(MessageParcel &data, MessageParcel &reply); 237 int32_t RecordAppExitReasonInner(MessageParcel &data, MessageParcel &reply); 238 239 int SetRootSceneSessionInner(MessageParcel &data, MessageParcel &reply); 240 int CallUIAbilityBySCBInner(MessageParcel &data, MessageParcel &reply); 241 int StartSpecifiedAbilityBySCBInner(MessageParcel &data, MessageParcel &reply); 242 int NotifySaveAsResultInner(MessageParcel &data, MessageParcel &reply); 243 244 int SetSessionManagerServiceInner(MessageParcel &data, MessageParcel &reply); 245 246 int32_t RegisterIAbilityManagerCollaboratorInner(MessageParcel &data, MessageParcel &reply); 247 int32_t UnregisterIAbilityManagerCollaboratorInner(MessageParcel &data, MessageParcel &reply); 248 249 int32_t RegisterAutoStartupSystemCallbackInner(MessageParcel &data, MessageParcel &reply); 250 int32_t UnregisterAutoStartupSystemCallbackInner(MessageParcel &data, MessageParcel &reply); 251 int32_t SetApplicationAutoStartupInner(MessageParcel &data, MessageParcel &reply); 252 int32_t CancelApplicationAutoStartupInner(MessageParcel &data, MessageParcel &reply); 253 int32_t QueryAllAutoStartupApplicationsInner(MessageParcel &data, MessageParcel &reply); 254 255 int PrepareTerminateAbilityBySCBInner(MessageParcel &data, MessageParcel &reply); 256 int RegisterSessionHandlerInner(MessageParcel &data, MessageParcel &reply); 257 int32_t UpdateSessionInfoBySCBInner(MessageParcel &data, MessageParcel &reply); 258 259 int32_t RegisterAppDebugListenerInner(MessageParcel &data, MessageParcel &reply); 260 int32_t UnregisterAppDebugListenerInner(MessageParcel &data, MessageParcel &reply); 261 int32_t AttachAppDebugInner(MessageParcel &data, MessageParcel &reply); 262 int32_t DetachAppDebugInner(MessageParcel &data, MessageParcel &reply); 263 int32_t ExecuteIntentInner(MessageParcel &data, MessageParcel &reply); 264 265 int32_t SetApplicationAutoStartupByEDMInner(MessageParcel &data, MessageParcel &reply); 266 int32_t CancelApplicationAutoStartupByEDMInner(MessageParcel &data, MessageParcel &reply); 267 268 int32_t IsAbilityControllerStartInner(MessageParcel &data, MessageParcel &reply); 269 int32_t OpenFileInner(MessageParcel &data, MessageParcel &reply); 270 271 //insight intent related 272 int32_t StartAbilityByInsightIntentInner(MessageParcel &data, MessageParcel &reply); 273 int32_t ExecuteInsightIntentDoneInner(MessageParcel &data, MessageParcel &reply); 274 int32_t GetForegroundUIAbilitiesInner(MessageParcel &data, MessageParcel &reply); 275 }; 276 } // namespace AAFwk 277 } // namespace OHOS 278 #endif // OHOS_ABILITY_RUNTIME_ABILITY_MANAGER_STUB_H 279