• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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