1 /* 2 * Copyright (c) 2021-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 SERVICES_SAMGR_NATIVE_INCLUDE_SYSTEM_ABILITY_MANAGER_STUB_H 17 #define SERVICES_SAMGR_NATIVE_INCLUDE_SYSTEM_ABILITY_MANAGER_STUB_H 18 19 #include <map> 20 #include "if_system_ability_manager.h" 21 #include "iremote_object.h" 22 #include "iremote_stub.h" 23 24 namespace OHOS { 25 class SystemAbilityManagerStub : public IRemoteStub<ISystemAbilityManager> { 26 public: 27 SystemAbilityManagerStub(); 28 ~SystemAbilityManagerStub() = default; 29 int32_t OnRemoteRequest(uint32_t code, MessageParcel& data, MessageParcel& reply, MessageOption &option) override; 30 31 protected: 32 static bool CanRequest(); 33 static bool EnforceInterceToken(MessageParcel& data); 34 static bool CheckPermission(const std::string& permission); 35 36 private: LocalListSystemAbility(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)37 static int32_t LocalListSystemAbility(SystemAbilityManagerStub* stub, 38 MessageParcel& data, MessageParcel& reply) 39 { 40 return stub->ListSystemAbilityInner(data, reply); 41 } LocalSubsSystemAbility(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)42 static int32_t LocalSubsSystemAbility(SystemAbilityManagerStub* stub, 43 MessageParcel& data, MessageParcel& reply) 44 { 45 return stub->SubsSystemAbilityInner(data, reply); 46 } LocalUnSubsSystemAbility(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)47 static int32_t LocalUnSubsSystemAbility(SystemAbilityManagerStub* stub, 48 MessageParcel& data, MessageParcel& reply) 49 { 50 return stub->UnSubsSystemAbilityInner(data, reply); 51 } LocalCheckRemtSystemAbility(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)52 static int32_t LocalCheckRemtSystemAbility(SystemAbilityManagerStub* stub, 53 MessageParcel& data, MessageParcel& reply) 54 { 55 return stub->CheckRemtSystemAbilityInner(data, reply); 56 } LocalAddOndemandSystemAbility(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)57 static int32_t LocalAddOndemandSystemAbility(SystemAbilityManagerStub* stub, 58 MessageParcel& data, MessageParcel& reply) 59 { 60 return stub->AddOndemandSystemAbilityInner(data, reply); 61 } LocalCheckSystemAbilityImme(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)62 static int32_t LocalCheckSystemAbilityImme(SystemAbilityManagerStub* stub, 63 MessageParcel& data, MessageParcel& reply) 64 { 65 return stub->CheckSystemAbilityImmeInner(data, reply); 66 } LocalAddSystemAbility(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)67 static int32_t LocalAddSystemAbility(SystemAbilityManagerStub* stub, 68 MessageParcel& data, MessageParcel& reply) 69 { 70 return stub->AddSystemAbilityInner(data, reply); 71 } LocalGetSystemAbility(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)72 static int32_t LocalGetSystemAbility(SystemAbilityManagerStub* stub, 73 MessageParcel& data, MessageParcel& reply) 74 { 75 return stub->GetSystemAbilityInner(data, reply); 76 } LocalCheckSystemAbility(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)77 static int32_t LocalCheckSystemAbility(SystemAbilityManagerStub* stub, 78 MessageParcel& data, MessageParcel& reply) 79 { 80 return stub->CheckSystemAbilityInner(data, reply); 81 } LocalAddSystemProcess(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)82 static int32_t LocalAddSystemProcess(SystemAbilityManagerStub* stub, 83 MessageParcel& data, MessageParcel& reply) 84 { 85 return stub->AddSystemProcessInner(data, reply); 86 } LocalRemoveSystemAbility(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)87 static int32_t LocalRemoveSystemAbility(SystemAbilityManagerStub* stub, 88 MessageParcel& data, MessageParcel& reply) 89 { 90 return stub->RemoveSystemAbilityInner(data, reply); 91 } LocalGetSystemProcessInfo(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)92 static int32_t LocalGetSystemProcessInfo(SystemAbilityManagerStub* stub, 93 MessageParcel& data, MessageParcel& reply) 94 { 95 return stub->GetSystemProcessInfoInner(data, reply); 96 } LocalGetRunningSystemProcess(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)97 static int32_t LocalGetRunningSystemProcess(SystemAbilityManagerStub* stub, 98 MessageParcel& data, MessageParcel& reply) 99 { 100 return stub->GetRunningSystemProcessInner(data, reply); 101 } LocalSubscribeSystemProcess(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)102 static int32_t LocalSubscribeSystemProcess(SystemAbilityManagerStub* stub, 103 MessageParcel& data, MessageParcel& reply) 104 { 105 return stub->SubscribeSystemProcessInner(data, reply); 106 } LocalUnSubscribeSystemProcess(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)107 static int32_t LocalUnSubscribeSystemProcess(SystemAbilityManagerStub* stub, 108 MessageParcel& data, MessageParcel& reply) 109 { 110 return stub->UnSubscribeSystemProcessInner(data, reply); 111 } LocalLoadSystemAbility(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)112 static int32_t LocalLoadSystemAbility(SystemAbilityManagerStub* stub, 113 MessageParcel& data, MessageParcel& reply) 114 { 115 return stub->LoadSystemAbilityInner(data, reply); 116 } LocalLoadRemoteSystemAbility(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)117 static int32_t LocalLoadRemoteSystemAbility(SystemAbilityManagerStub* stub, 118 MessageParcel& data, MessageParcel& reply) 119 { 120 return stub->LoadRemoteSystemAbilityInner(data, reply); 121 } LocalUnloadSystemAbility(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)122 static int32_t LocalUnloadSystemAbility(SystemAbilityManagerStub* stub, 123 MessageParcel& data, MessageParcel& reply) 124 { 125 return stub->UnloadSystemAbilityInner(data, reply); 126 } LocalCancelUnloadSystemAbility(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)127 static int32_t LocalCancelUnloadSystemAbility(SystemAbilityManagerStub* stub, 128 MessageParcel& data, MessageParcel& reply) 129 { 130 return stub->CancelUnloadSystemAbilityInner(data, reply); 131 } LocalUnloadAllIdleSystemAbility(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)132 static int32_t LocalUnloadAllIdleSystemAbility(SystemAbilityManagerStub* stub, 133 MessageParcel& data, MessageParcel& reply) 134 { 135 return stub->UnloadAllIdleSystemAbilityInner(data, reply); 136 } LocalGetOnDemandReasonExtraData(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)137 static int32_t LocalGetOnDemandReasonExtraData(SystemAbilityManagerStub* stub, 138 MessageParcel& data, MessageParcel& reply) 139 { 140 return stub->GetOnDemandReasonExtraDataInner(data, reply); 141 } LocalGetOnDemandPolicy(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)142 static int32_t LocalGetOnDemandPolicy(SystemAbilityManagerStub* stub, 143 MessageParcel& data, MessageParcel& reply) 144 { 145 return stub->GetOnDemandPolicyInner(data, reply); 146 } LocalUpdateOnDemandPolicy(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)147 static int32_t LocalUpdateOnDemandPolicy(SystemAbilityManagerStub* stub, 148 MessageParcel& data, MessageParcel& reply) 149 { 150 return stub->UpdateOnDemandPolicyInner(data, reply); 151 } LocalGetOnDemandSystemAbilityIds(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)152 static int32_t LocalGetOnDemandSystemAbilityIds(SystemAbilityManagerStub* stub, 153 MessageParcel& data, MessageParcel& reply) 154 { 155 return stub->GetOnDemandSystemAbilityIdsInner(data, reply); 156 } LocalSendStrategy(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)157 static int32_t LocalSendStrategy(SystemAbilityManagerStub* stub, 158 MessageParcel& data, MessageParcel& reply) 159 { 160 return stub->SendStrategyInner(data, reply); 161 } LocalGetExtensionSaIds(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)162 static int32_t LocalGetExtensionSaIds(SystemAbilityManagerStub* stub, 163 MessageParcel& data, MessageParcel& reply) 164 { 165 return stub->GetExtensionSaIdsInner(data, reply); 166 } LocalGetExtensionRunningSaList(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)167 static int32_t LocalGetExtensionRunningSaList(SystemAbilityManagerStub* stub, 168 MessageParcel& data, MessageParcel& reply) 169 { 170 return stub->GetExtensionRunningSaListInner(data, reply); 171 } LocalGetRunningSaExtensionInfoList(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)172 static int32_t LocalGetRunningSaExtensionInfoList(SystemAbilityManagerStub* stub, 173 MessageParcel& data, MessageParcel& reply) 174 { 175 return stub->GetRunningSaExtensionInfoListInner(data, reply); 176 } LocalGetCommonEventExtraDataIdlist(SystemAbilityManagerStub * stub,MessageParcel & data,MessageParcel & reply)177 static int32_t LocalGetCommonEventExtraDataIdlist(SystemAbilityManagerStub* stub, 178 MessageParcel& data, MessageParcel& reply) 179 { 180 return stub->GetCommonEventExtraDataIdlistInner(data, reply); 181 } 182 int32_t ListSystemAbilityInner(MessageParcel& data, MessageParcel& reply); 183 int32_t SubsSystemAbilityInner(MessageParcel& data, MessageParcel& reply); 184 int32_t UnSubsSystemAbilityInner(MessageParcel& data, MessageParcel& reply); 185 int32_t CheckRemtSystemAbilityInner(MessageParcel& data, MessageParcel& reply); 186 int32_t AddOndemandSystemAbilityInner(MessageParcel& data, MessageParcel& reply); 187 int32_t CheckSystemAbilityImmeInner(MessageParcel& data, MessageParcel& reply); 188 int32_t AddSystemAbilityInner(MessageParcel& data, MessageParcel& reply); 189 int32_t GetSystemAbilityInner(MessageParcel& data, MessageParcel& reply); 190 int32_t CheckSystemAbilityInner(MessageParcel& data, MessageParcel& reply); 191 int32_t AddSystemProcessInner(MessageParcel& data, MessageParcel& reply); 192 int32_t RemoveSystemAbilityInner(MessageParcel& data, MessageParcel& reply); 193 int32_t GetSystemProcessInfoInner(MessageParcel& data, MessageParcel& reply); 194 int32_t GetRunningSystemProcessInner(MessageParcel& data, MessageParcel& reply); 195 int32_t SubscribeSystemProcessInner(MessageParcel& data, MessageParcel& reply); 196 int32_t UnSubscribeSystemProcessInner(MessageParcel& data, MessageParcel& reply); 197 int32_t LoadSystemAbilityInner(MessageParcel& data, MessageParcel& reply); 198 int32_t LoadRemoteSystemAbilityInner(MessageParcel& data, MessageParcel& reply); 199 int32_t UnloadSystemAbilityInner(MessageParcel& data, MessageParcel& reply); 200 int32_t CancelUnloadSystemAbilityInner(MessageParcel& data, MessageParcel& reply); 201 int32_t UnloadAllIdleSystemAbilityInner(MessageParcel& data, MessageParcel& reply); 202 int32_t GetOnDemandReasonExtraDataInner(MessageParcel& data, MessageParcel& reply); 203 int32_t GetOnDemandPolicyInner(MessageParcel& data, MessageParcel& reply); 204 int32_t UpdateOnDemandPolicyInner(MessageParcel& data, MessageParcel& reply); 205 int32_t UnmarshalingSaExtraProp(MessageParcel& data, SAExtraProp& extraProp); 206 int32_t GetOnDemandSystemAbilityIdsInner(MessageParcel& data, MessageParcel& reply); 207 int32_t SendStrategyInner(MessageParcel& data, MessageParcel& reply); 208 int32_t GetExtensionSaIdsInner(MessageParcel& data, MessageParcel& reply); 209 int32_t GetExtensionRunningSaListInner(MessageParcel& data, MessageParcel& reply); 210 int32_t GetRunningSaExtensionInfoListInner(MessageParcel& data, MessageParcel& reply); 211 int32_t GetCommonEventExtraDataIdlistInner(MessageParcel& data, MessageParcel& reply); 212 static int32_t GetHapIdMultiuser(int32_t uid); 213 void SetAbilityFuncMap(); 214 void SetProcessFuncMap(); 215 216 using SystemAbilityManagerStubFunc = 217 int32_t (*)(SystemAbilityManagerStub* stub, MessageParcel& data, MessageParcel& reply); 218 std::map<uint32_t, SystemAbilityManagerStubFunc> memberFuncMap_; 219 }; 220 } // namespace OHOS 221 222 #endif // !defined(SERVICES_SAMGR_NATIVE_INCLUDE_SYSTEM_ABILITY_MANAGER_STUB_H) 223