diff --git a/frameworks/inner_api/security_component/include/sec_comp_client.h b/frameworks/inner_api/security_component/include/sec_comp_client.h index 8602c0de29734f9f40e9faa087b3567957693221..028c4938b26ce3343924aecc1f416bee80a96992 100644 --- a/frameworks/inner_api/security_component/include/sec_comp_client.h +++ b/frameworks/inner_api/security_component/include/sec_comp_client.h @@ -50,7 +50,6 @@ public: bool IsServiceExist(); bool LoadService(); bool IsSystemAppCalling(); - bool HasCustomPermissionForSecComp(); void FinishStartSASuccess(const sptr& remoteObject); void FinishStartSAFail(); diff --git a/frameworks/inner_api/security_component/src/sec_comp_client.cpp b/frameworks/inner_api/security_component/src/sec_comp_client.cpp index 897370ececdc879d7229f838a66a4c133c77e459..a1146b6d66bcdc92837fd0f59ddaf83624847eca 100644 --- a/frameworks/inner_api/security_component/src/sec_comp_client.cpp +++ b/frameworks/inner_api/security_component/src/sec_comp_client.cpp @@ -365,25 +365,6 @@ bool SecCompClient::IsSystemAppCalling() return Security::AccessToken::TokenIdKit::IsSystemAppByFullTokenID(selfToken); } -bool SecCompClient::HasCustomPermissionForSecComp() -{ - auto proxy = GetProxy(true); - if (proxy == nullptr) { - SC_LOG_ERROR(LABEL, "Proxy is null"); - return false; - } - - std::lock_guard lock(useIPCMutex_); - bool hasCustomPermission; - int32_t res = proxy->HasCustomPermissionForSecComp(hasCustomPermission); - if (res != SC_OK) { - SC_LOG_ERROR(LABEL, "Get custom permission status failed, result: %{public}d.", res); - return false; - } - - return hasCustomPermission; -} - int32_t SecCompClient::PreRegisterWriteToRawdata(SecCompRawdata& rawData) { MessageParcel dataParcel; diff --git a/frameworks/inner_api/security_component/src/sec_comp_kit.cpp b/frameworks/inner_api/security_component/src/sec_comp_kit.cpp index 81f5b33731f6aa79c5142221c401e8842cbf3d15..6b77c6321369d48a0e1e9f9ed0cbe08cca4585f0 100644 --- a/frameworks/inner_api/security_component/src/sec_comp_kit.cpp +++ b/frameworks/inner_api/security_component/src/sec_comp_kit.cpp @@ -28,6 +28,7 @@ namespace Security { namespace SecurityComponent { namespace { static constexpr OHOS::HiviewDFX::HiLogLabel LABEL = {LOG_CORE, SECURITY_DOMAIN_SECURITY_COMPONENT, "SecCompKit"}; +const std::string CUSTOMIZE_SAVE_BUTTON = "ohos.permission.CUSTOMIZE_SAVE_BUTTON"; } // namespace int32_t SecCompKit::RegisterSecurityComponent(SecCompType type, @@ -173,7 +174,9 @@ bool SecCompKit::IsSystemAppCalling() bool SecCompKit::HasCustomPermissionForSecComp() { - return SecCompClient::GetInstance().HasCustomPermissionForSecComp(); + auto selfToken = IPCSkeleton::GetSelfTokenID(); + int32_t res = AccessToken::AccessTokenKit::VerifyAccessToken(selfToken, CUSTOMIZE_SAVE_BUTTON); + return (res == AccessToken::TypePermissionState::PERMISSION_GRANTED) ? true : false; } } // namespace SecurityComponent } // namespace Security diff --git a/services/security_component_service/sa/ISecCompService.idl b/services/security_component_service/sa/ISecCompService.idl index 8686e801de421125919c06f4231fa9a51e26fff1..e7878452e870fd28b520d86ed71900139273d916 100644 --- a/services/security_component_service/sa/ISecCompService.idl +++ b/services/security_component_service/sa/ISecCompService.idl @@ -23,6 +23,5 @@ interface OHOS.Security.SecurityComponent.ISecCompService { void ReportSecurityComponentClickEvent([in] IRemoteObject callerToken, [in] IRemoteObject dialogCallback, [in] SecCompRawdata rawData, [out] SecCompRawdata rawReply); void VerifySavePermission([in] unsigned int tokenId, [out] boolean ret); - void HasCustomPermissionForSecComp([out] boolean hasCustomPermission); void PreRegisterSecCompProcess([in] SecCompRawdata rawData, [out] SecCompRawdata rawReply); } diff --git a/services/security_component_service/sa/sa_main/sec_comp_service.cpp b/services/security_component_service/sa/sa_main/sec_comp_service.cpp index c08c300f499c42809dafb8c9e8b0aade8a7a10fd..557724e26c642702cb811cfcf52d59cc8c214e17 100644 --- a/services/security_component_service/sa/sa_main/sec_comp_service.cpp +++ b/services/security_component_service/sa/sa_main/sec_comp_service.cpp @@ -631,12 +631,6 @@ int32_t SecCompService::VerifySavePermission(AccessToken::AccessTokenID tokenId, return SC_OK; } -int32_t SecCompService::HasCustomPermissionForSecComp(bool& hasCustomPermission) -{ - hasCustomPermission = SecCompManager::GetInstance().HasCustomPermissionForSecComp(); - return SC_OK; -} - bool SecCompService::IsMediaLibraryCalling() { int32_t uid = IPCSkeleton::GetCallingUid(); diff --git a/services/security_component_service/sa/sa_main/sec_comp_service.h b/services/security_component_service/sa/sa_main/sec_comp_service.h index 077e13ad066ca4baa4ad2da16dbb2593d9718051..10bfd0e42a9142690518334ca45a9a29b2a109b4 100644 --- a/services/security_component_service/sa/sa_main/sec_comp_service.h +++ b/services/security_component_service/sa/sa_main/sec_comp_service.h @@ -52,7 +52,6 @@ public: const sptr& dialogCallback, const SecCompRawdata& rawData, SecCompRawdata& rawReply) override; int32_t VerifySavePermission(AccessToken::AccessTokenID tokenId, bool& isGranted) override; int32_t PreRegisterSecCompProcess(const SecCompRawdata& rawData, SecCompRawdata& rawReply) override; - int32_t HasCustomPermissionForSecComp(bool& hasCustomPermission) override; int Dump(int fd, const std::vector& args) override; diff --git a/services/security_component_service/sa/test/unittest/src/sec_comp_stub_mock_test.h b/services/security_component_service/sa/test/unittest/src/sec_comp_stub_mock_test.h index 711b18ab699c9c1750c6c0586e21d857611ee49c..a68bd853822f989736aef8baba10388631b640a7 100644 --- a/services/security_component_service/sa/test/unittest/src/sec_comp_stub_mock_test.h +++ b/services/security_component_service/sa/test/unittest/src/sec_comp_stub_mock_test.h @@ -58,12 +58,6 @@ public: { return 0; }; - - int32_t HasCustomPermissionForSecComp(bool& hasCustomPermission) override - { - hasCustomPermission = false; - return 0; - }; }; class SecCompStubMockTest : public testing::Test { diff --git a/services/security_component_service/sa/test/unittest/src/sec_comp_stub_test.h b/services/security_component_service/sa/test/unittest/src/sec_comp_stub_test.h index 8091b153ecb574b778b83a6255f4e0b4b35886f0..e5112e49cab8e702456047707c80df1219f091fd 100644 --- a/services/security_component_service/sa/test/unittest/src/sec_comp_stub_test.h +++ b/services/security_component_service/sa/test/unittest/src/sec_comp_stub_test.h @@ -57,12 +57,6 @@ public: { return 0; }; - - int32_t HasCustomPermissionForSecComp(bool& hasCustomPermission) override - { - hasCustomPermission = false; - return 0; - }; }; class SecCompStubTest : public testing::Test {