diff --git a/recipes-devtools/hdc/files/CMakeLists.txt b/recipes-devtools/hdc/files/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..92c432dcba6a917b95c124d20626369716cd10cf
--- /dev/null
+++ b/recipes-devtools/hdc/files/CMakeLists.txt
@@ -0,0 +1,78 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+cmake_minimum_required(VERSION 3.16)
+project(hdc_tool)
+
+set(HDC hdc)
+
+find_package(PkgConfig REQUIRED)
+
+add_executable(${HDC}
+	src/common/async_cmd.cpp
+	src/common/task.cpp
+	src/common/uart.cpp
+	src/common/session.cpp
+	src/common/usb.cpp
+	src/common/file_descriptor.cpp
+	src/common/forward.cpp
+	src/common/file.cpp
+	src/common/auth.cpp
+	src/common/tcp.cpp
+	src/common/debug.cpp
+	src/common/base.cpp
+	src/common/transfer.cpp
+	src/common/channel.cpp
+	src/host/host_usb.cpp
+	src/host/host_app.cpp
+	src/host/host_forward.cpp
+	src/host/main.cpp
+	src/host/server.cpp
+	src/host/host_uart.cpp
+	src/host/server_for_client.cpp
+	src/host/client.cpp
+	src/host/host_tcp.cpp
+	src/host/translate.cpp
+	src/host/host_unity.cpp
+)
+
+set_property(TARGET ${HDC} PROPERTY CXX_STANDARD 17)
+
+target_link_libraries(${HDC} PRIVATE libboundscheck.a)
+
+set(THREADS_PREFER_PTHREAD_FLAG ON)
+find_package(Threads REQUIRED)
+target_link_libraries(${HDC} PRIVATE Threads::Threads)
+
+target_include_directories(${HDC} PRIVATE libsecurec/include/)
+target_compile_definitions(${HDC} PRIVATE HDC_HOST)
+target_compile_definitions(${HDC} PRIVATE HARMONY_PROJECT)
+target_compile_definitions(${HDC} PRIVATE HDC_SUPPORT_UART)
+
+pkg_check_modules(LIBUSB REQUIRED libusb-1.0)
+target_link_libraries(${HDC} PRIVATE ${LIBUSB_LIBRARIES})
+target_include_directories(${HDC} PRIVATE ${LIBUSB_INCLUDE_DIRS})
+target_compile_options(${HDC} PRIVATE ${LIBUSB_CFLAGS_OTHER})
+
+pkg_check_modules(LIBUV REQUIRED libuv)
+target_link_libraries(${HDC} PRIVATE ${LIBUV_LIBRARIES})
+target_include_directories(${HDC} PRIVATE ${LIBUV_INCLUDE_DIRS})
+target_compile_options(${HDC} PRIVATE ${LIBUV_CFLAGS_OTHER})
+
+pkg_check_modules(LIBSSL REQUIRED libssl)
+target_link_libraries(${HDC} PRIVATE ${LIBSSL_LIBRARIES})
+target_include_directories(${HDC} PRIVATE ${LIBSSL_INCLUDE_DIRS})
+target_compile_options(${HDC} PRIVATE ${LIBSSL_CFLAGS_OTHER})
+
+pkg_check_modules(LIBCRYPTO REQUIRED libcrypto)
+target_link_libraries(${HDC} PRIVATE ${LIBCRYPTO_LIBRARIES})
+target_include_directories(${HDC} PRIVATE ${LIBCRYPTO_INCLUDE_DIRS})
+target_compile_options(${HDC} PRIVATE ${LIBCRYPTO_CFLAGS_OTHER})
+
+pkg_check_modules(LIBLZ4 REQUIRED liblz4)
+target_link_libraries(${HDC} PRIVATE ${LIBLZ4_LIBRARIES})
+target_include_directories(${HDC} PRIVATE ${LIBLZ4_INCLUDE_DIRS})
+target_compile_options(${HDC} PRIVATE ${LIBLZ4_CFLAGS_OTHER})
+
+install(TARGETS ${HDC} DESTINATION bin)
diff --git a/recipes-devtools/hdc/files/libusb-include-path.patch b/recipes-devtools/hdc/files/libusb-include-path.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e77864e8db19a64ba7211c68e47e09de53f2f11c
--- /dev/null
+++ b/recipes-devtools/hdc/files/libusb-include-path.patch
@@ -0,0 +1,22 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+Fix libusb.h include path.
+
+Signed-off-by: Thierry Escande <thierry.escande@huawei.com>
+Upstream-Status: Inappropriate
+
+diff --git a/src/common/common.h b/src/common/common.h
+index 862359e..5e77a6d 100644
+--- a/src/common/common.h
++++ b/src/common/common.h
+@@ -47,7 +47,7 @@ using std::vector;
+ #ifdef HDC_HOST
+ 
+ #ifdef HARMONY_PROJECT
+-#include <libusb/libusb.h>
++#include <libusb.h>
+ #else  // NOT HARMONY_PROJECT
+ #include <libusb-1.0/libusb.h>
+ #endif // END HARMONY_PROJECT
diff --git a/recipes-devtools/hdc/hdc_openharmony-3.1.bb b/recipes-devtools/hdc/hdc_openharmony-3.1.bb
new file mode 100644
index 0000000000000000000000000000000000000000..260fa5769322243a97a47b0ef4a334cd0b8cc5b4
--- /dev/null
+++ b/recipes-devtools/hdc/hdc_openharmony-3.1.bb
@@ -0,0 +1,19 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+SUMMARY = "hdc tool"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a832eda17114b48ae16cda6a500941c2"
+
+inherit pkgconfig cmake
+
+S = "${WORKDIR}/git"
+
+SRC_URI += "git://gitee.com/openharmony/developtools_hdc_standard.git;protocol=https;branch=OpenHarmony-3.1-Release;rev=5304e6ff48d783362d577b8cf1fb1b34e3e451d4"
+SRC_URI += "file://CMakeLists.txt;subdir=${S}"
+SRC_URI += "file://libusb-include-path.patch"
+
+DEPENDS += "libusb1 libuv openssl lz4 libboundscheck"
+
+BBCLASSEXTEND = "native"