diff --git a/adapter/uhdf2/ipc/BUILD.gn b/adapter/uhdf2/ipc/BUILD.gn index f88c06bed8080140953ebad101bf8f91995621ef..fdb4e4c76120cde9213344cbe16818f97de00909 100644 --- a/adapter/uhdf2/ipc/BUILD.gn +++ b/adapter/uhdf2/ipc/BUILD.gn @@ -63,6 +63,10 @@ if (defined(ohos_lite)) { ] } + if (build_selinux) { + cflags = [ "-DWITH_SELINUX" ] + } + innerapi_tags = [ "chipsetsdk", "platformsdk_indirect", diff --git a/adapter/uhdf2/ipc/src/hdf_remote_adapter.cpp b/adapter/uhdf2/ipc/src/hdf_remote_adapter.cpp index 984af37b2611d256509d94d48a90500fc3e785e6..1c9765383aec3f11eb6abe21ae967d55866718aa 100644 --- a/adapter/uhdf2/ipc/src/hdf_remote_adapter.cpp +++ b/adapter/uhdf2/ipc/src/hdf_remote_adapter.cpp @@ -318,9 +318,11 @@ int HdfRemoteAdapterAddSa(int32_t saId, struct HdfRemoteService *service) OHOS::HdfXCollie hdfXCollie("HdfRemoteAdapterAddSa_" + OHOS::ToString(saId) + "_add_sa", OHOS::HdfXCollie::DEFAULT_TIMEOUT_SECONDS, nullptr, nullptr, OHOS::HdfXCollie::HDF_XCOLLIE_FLAG_RECOVERY); struct HdfRemoteServiceHolder *holder = reinterpret_cast(service); +#ifdef WITH_SELINUX OHOS::sptr remote = holder->remote_; OHOS::IPCObjectStub *stub = reinterpret_cast(remote.GetRefPtr()); stub->SetRequestSidFlag(true); +#endif int ret = saManager->AddSystemAbility(saId, holder->remote_); (void)OHOS::IPCSkeleton::GetInstance().SetMaxWorkThreadNum(g_remoteThreadMax++); HDF_LOGI("add sa %{public}d, ret = %{public}s", saId, (ret == 0) ? "succ" : "fail"); diff --git a/adapter/uhdf2/test/unittest/manager/BUILD.gn b/adapter/uhdf2/test/unittest/manager/BUILD.gn index 9f1199328e32b45db8374095e55643c22e94d883..1e5b7755165fcaa2421ff162d04c6a8a7cb746a2 100644 --- a/adapter/uhdf2/test/unittest/manager/BUILD.gn +++ b/adapter/uhdf2/test/unittest/manager/BUILD.gn @@ -159,6 +159,9 @@ ohos_unittest("hdf_adapter_uhdf_test_remote_adapter") { } else { external_deps = [ "hilog:libhilog" ] } + if (build_selinux) { + cflags = [ "-DWITH_SELINUX" ] + } } module_output_path = "hdf_core/shared" ohos_unittest("hdf_adapter_uhdf_test_core_shared") { diff --git a/bundle.json b/bundle.json index 23e5c54e37e2426aaaf74167edb3e851af2ffb9c..f8ef5f16e709d7c5c038360b572accb6db9ccd02 100644 --- a/bundle.json +++ b/bundle.json @@ -58,7 +58,7 @@ "ipc/hdf_dump_reg.h", "ipc/hdf_remote_service.h", "ipc/hdf_sbuf_ipc.h", - "ipc/iproxy_broker.h", + "ipc/iproxy_broker.h", "core/hdf_object.h" ], "header_base": "//drivers/hdf_core/interfaces/inner_api" diff --git a/framework/core/manager/test/unittest/common/hdf_remote_adapter_test.cpp b/framework/core/manager/test/unittest/common/hdf_remote_adapter_test.cpp index 1521456b3d7445cd2fceb1b7903d91f9d5aa2faa..f744bdc60d64489ee10b7be23852e2ea611a5568 100644 --- a/framework/core/manager/test/unittest/common/hdf_remote_adapter_test.cpp +++ b/framework/core/manager/test/unittest/common/hdf_remote_adapter_test.cpp @@ -104,6 +104,10 @@ HWTEST_F(HdfRemoteAdapterTest, HdfRemoteAdapterTest004, TestSize.Level1) ASSERT_TRUE(ret > 0); ret = HdfRemoteGetCallingUid(); ASSERT_TRUE(ret >= 0); +#ifdef WITH_SELINUX + char *callingSid = HdfRemoteGetCallingSid(); + ASSERT_TRUE(callingSid != nullptr); +#endif } /*