diff --git a/services/audiomanager/servicesink/include/daudio_sink_stub.h b/services/audiomanager/servicesink/include/daudio_sink_stub.h index 723811e6a7e200f582c886fd49e3d9209c11deeb..d9882b4f06050a2f8093a7ddc712476c3f597789 100644 --- a/services/audiomanager/servicesink/include/daudio_sink_stub.h +++ b/services/audiomanager/servicesink/include/daudio_sink_stub.h @@ -40,7 +40,6 @@ private: int32_t PauseDistributedHardwareInner(MessageParcel &data, MessageParcel &reply, MessageOption &option); int32_t ResumeDistributedHardwareInner(MessageParcel &data, MessageParcel &reply, MessageOption &option); int32_t StopDistributedHardwareInner(MessageParcel &data, MessageParcel &reply, MessageOption &option); - bool HasAccessDHPermission(); using DAudioSinkServiceFunc = int32_t (DAudioSinkStub::*)(MessageParcel &data, MessageParcel &reply, MessageOption &option); diff --git a/services/audiomanager/servicesink/src/daudio_sink_stub.cpp b/services/audiomanager/servicesink/src/daudio_sink_stub.cpp index 5c2695803becb3e3520d08a257f34d3a32a6b4b3..7a47305e8de3551c975875c1c6041ce37e7c858f 100644 --- a/services/audiomanager/servicesink/src/daudio_sink_stub.cpp +++ b/services/audiomanager/servicesink/src/daudio_sink_stub.cpp @@ -128,6 +128,10 @@ int32_t DAudioSinkStub::ReleaseSinkInner(MessageParcel &data, MessageParcel &rep int32_t DAudioSinkStub::SubscribeLocalHardwareInner(MessageParcel &data, MessageParcel &reply, MessageOption &option) { + if (!VerifyPermission()) { + DHLOGE("Permission verification fail."); + return ERR_DH_AUDIO_SA_PERMISSION_FAIED; + } std::string dhId = data.ReadString(); std::string param = data.ReadString(); int32_t ret = SubscribeLocalHardware(dhId, param); @@ -137,6 +141,10 @@ int32_t DAudioSinkStub::SubscribeLocalHardwareInner(MessageParcel &data, Message int32_t DAudioSinkStub::UnsubscribeLocalHardwareInner(MessageParcel &data, MessageParcel &reply, MessageOption &option) { + if (!VerifyPermission()) { + DHLOGE("Permission verification fail."); + return ERR_DH_AUDIO_SA_PERMISSION_FAIED; + } std::string dhId = data.ReadString(); int32_t ret = UnsubscribeLocalHardware(dhId); reply.WriteInt32(ret); @@ -156,9 +164,9 @@ int32_t DAudioSinkStub::DAudioNotifyInner(MessageParcel &data, MessageParcel &re int32_t DAudioSinkStub::PauseDistributedHardwareInner(MessageParcel &data, MessageParcel &reply, MessageOption &option) { - if (!HasAccessDHPermission()) { - DHLOGE("The caller has no ACCESS_DISTRIBUTED_HARDWARE permission."); - return ERR_DH_AUDIO_ACCESS_PERMISSION_CHECK_FAIL; + if (!VerifyPermission()) { + DHLOGE("Permission verification fail."); + return ERR_DH_AUDIO_SA_PERMISSION_FAIED; } std::string networkId = data.ReadString(); int32_t ret = PauseDistributedHardware(networkId); @@ -168,9 +176,9 @@ int32_t DAudioSinkStub::PauseDistributedHardwareInner(MessageParcel &data, Messa int32_t DAudioSinkStub::ResumeDistributedHardwareInner(MessageParcel &data, MessageParcel &reply, MessageOption &option) { - if (!HasAccessDHPermission()) { - DHLOGE("The caller has no ACCESS_DISTRIBUTED_HARDWARE permission."); - return ERR_DH_AUDIO_ACCESS_PERMISSION_CHECK_FAIL; + if (!VerifyPermission()) { + DHLOGE("Permission verification fail."); + return ERR_DH_AUDIO_SA_PERMISSION_FAIED; } std::string networkId = data.ReadString(); int32_t ret = ResumeDistributedHardware(networkId); @@ -180,22 +188,14 @@ int32_t DAudioSinkStub::ResumeDistributedHardwareInner(MessageParcel &data, Mess int32_t DAudioSinkStub::StopDistributedHardwareInner(MessageParcel &data, MessageParcel &reply, MessageOption &option) { - if (!HasAccessDHPermission()) { - DHLOGE("The caller has no ACCESS_DISTRIBUTED_HARDWARE permission."); - return ERR_DH_AUDIO_ACCESS_PERMISSION_CHECK_FAIL; + if (!VerifyPermission()) { + DHLOGE("Permission verification fail."); + return ERR_DH_AUDIO_SA_PERMISSION_FAIED; } std::string networkId = data.ReadString(); int32_t ret = StopDistributedHardware(networkId); reply.WriteInt32(ret); return DH_SUCCESS; } - -bool DAudioSinkStub::HasAccessDHPermission() -{ - Security::AccessToken::AccessTokenID callerToken = IPCSkeleton::GetCallingTokenID(); - const std::string permissionName = "ohos.permission.ACCESS_DISTRIBUTED_HARDWARE"; - int32_t result = Security::AccessToken::AccessTokenKit::VerifyAccessToken(callerToken, permissionName); - return (result == Security::AccessToken::PERMISSION_GRANTED); -} } // namespace DistributedHardware } // namespace OHOS \ No newline at end of file diff --git a/services/audiomanager/servicesource/src/daudio_source_stub.cpp b/services/audiomanager/servicesource/src/daudio_source_stub.cpp index a44a5dd48aa29cc21b9c9e1e4557908ab7561e91..93491e4d1f8deaf2267684e520128d6413950fdc 100644 --- a/services/audiomanager/servicesource/src/daudio_source_stub.cpp +++ b/services/audiomanager/servicesource/src/daudio_source_stub.cpp @@ -153,6 +153,10 @@ int32_t DAudioSourceStub::UnregisterDistributedHardwareInner(MessageParcel &data int32_t DAudioSourceStub::ConfigDistributedHardwareInner(MessageParcel &data, MessageParcel &reply, MessageOption &option) { + if (!VerifyPermission()) { + DHLOGE("Permission verification fail."); + return ERR_DH_AUDIO_SA_PERMISSION_FAIED; + } std::string networkId = data.ReadString(); std::string dhId = data.ReadString(); std::string key = data.ReadString(); diff --git a/services/audiomanager/test/unittest/servicesink/src/daudio_sink_stub_test.cpp b/services/audiomanager/test/unittest/servicesink/src/daudio_sink_stub_test.cpp index afda823da630f52bb1b7929731c99cce85bc2835..4c51bde6a1827c38a2e92f89fe418ca6b8f0efef 100644 --- a/services/audiomanager/test/unittest/servicesink/src/daudio_sink_stub_test.cpp +++ b/services/audiomanager/test/unittest/servicesink/src/daudio_sink_stub_test.cpp @@ -98,11 +98,11 @@ HWTEST_F(DAudioSinkStubTest, PauseDistributedHardwareInner_001, TestSize.Level1) MessageParcel data; MessageParcel reply; MessageOption option; - EXPECT_EQ(ERR_DH_AUDIO_ACCESS_PERMISSION_CHECK_FAIL, + EXPECT_EQ(ERR_DH_AUDIO_SA_PERMISSION_FAIED, sinkStub_->PauseDistributedHardwareInner(data, reply, option)); - EXPECT_EQ(ERR_DH_AUDIO_ACCESS_PERMISSION_CHECK_FAIL, + EXPECT_EQ(ERR_DH_AUDIO_SA_PERMISSION_FAIED, sinkStub_->ResumeDistributedHardwareInner(data, reply, option)); - EXPECT_EQ(ERR_DH_AUDIO_ACCESS_PERMISSION_CHECK_FAIL, + EXPECT_EQ(ERR_DH_AUDIO_SA_PERMISSION_FAIED, sinkStub_->StopDistributedHardwareInner(data, reply, option)); } @@ -117,8 +117,8 @@ HWTEST_F(DAudioSinkStubTest, SubscribeLocalHardwareInner_001, TestSize.Level1) MessageParcel data; MessageParcel reply; MessageOption option; - EXPECT_EQ(DH_SUCCESS, sinkStub_->SubscribeLocalHardwareInner(data, reply, option)); - EXPECT_EQ(DH_SUCCESS, sinkStub_->UnsubscribeLocalHardwareInner(data, reply, option)); + EXPECT_EQ(ERR_DH_AUDIO_SA_PERMISSION_FAIED, sinkStub_->SubscribeLocalHardwareInner(data, reply, option)); + EXPECT_EQ(ERR_DH_AUDIO_SA_PERMISSION_FAIED, sinkStub_->UnsubscribeLocalHardwareInner(data, reply, option)); EXPECT_EQ(DH_SUCCESS, sinkStub_->DAudioNotifyInner(data, reply, option)); } } // DistributedHardware diff --git a/services/audiomanager/test/unittest/servicesource/src/daudio_source_stub_test.cpp b/services/audiomanager/test/unittest/servicesource/src/daudio_source_stub_test.cpp index 31ae3a6a9ba0ba68e1b9fda4b7e1af4ee0509381..56f609f9eef1774552bc90f15aadf3aebb99549b 100644 --- a/services/audiomanager/test/unittest/servicesource/src/daudio_source_stub_test.cpp +++ b/services/audiomanager/test/unittest/servicesource/src/daudio_source_stub_test.cpp @@ -114,7 +114,7 @@ HWTEST_F(DAudioSourceStubTest, ConfigDistributedHardwareInner_001, TestSize.Leve MessageParcel data; MessageParcel reply; MessageOption option; - EXPECT_EQ(DH_SUCCESS, sourceStub_->ConfigDistributedHardwareInner(data, reply, option)); + EXPECT_EQ(ERR_DH_AUDIO_SA_PERMISSION_FAIED, sourceStub_->ConfigDistributedHardwareInner(data, reply, option)); EXPECT_EQ(DH_SUCCESS, sourceStub_->DAudioNotifyInner(data, reply, option)); } } // DistributedHardware diff --git a/services/audiomanager/test/unittest/sourcedevice/src/daudio_echo_cannel_manager_test.cpp b/services/audiomanager/test/unittest/sourcedevice/src/daudio_echo_cannel_manager_test.cpp index c77832ac87fbc5df214a36b4dab63b3c69e7cf0f..7158b4da0f20d3d50f7cc417fdb45e20a8c7e2b3 100644 --- a/services/audiomanager/test/unittest/sourcedevice/src/daudio_echo_cannel_manager_test.cpp +++ b/services/audiomanager/test/unittest/sourcedevice/src/daudio_echo_cannel_manager_test.cpp @@ -74,9 +74,9 @@ HWTEST_F(DAudioEchoCannelManagerTest, OnMicDataReceived_001, TestSize.Level1) */ HWTEST_F(DAudioEchoCannelManagerTest, AudioCaptureSetUp_001, TestSize.Level1) { - EXPECT_EQ(DH_SUCCESS, echoCannelManager_->AudioCaptureSetUp()); - EXPECT_EQ(DH_SUCCESS, echoCannelManager_->AudioCaptureStart()); - EXPECT_EQ(DH_SUCCESS, echoCannelManager_->AudioCaptureStop()); + EXPECT_EQ(ERR_DH_AUDIO_FAILED, echoCannelManager_->AudioCaptureSetUp()); + EXPECT_EQ(ERR_DH_AUDIO_FAILED, echoCannelManager_->AudioCaptureStart()); + EXPECT_EQ(ERR_DH_AUDIO_FAILED, echoCannelManager_->AudioCaptureStop()); EXPECT_EQ(DH_SUCCESS, echoCannelManager_->AudioCaptureRelease()); }