Skip to content

About

Precompiled OpenHarmony/HarmonyOS libcurl, BoringSSL and zlib dependency SDKs for ech_http

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

libechhttp-ohos-build

为 ech_http 提供 OpenHarmony / HarmonyOS 预编译依赖 SDK。大型依赖在本仓库 CI 中编译,消费方下载经过 SHA-256 校验的 固定版本 SDK,本地只编译自己的 C++ 胶水代码。

支持目标:ohos-arm64、ohos-x64。

SDK 内容与构建基线

每个 ZIP 包含四个静态库(curl、ssl、crypto、zlib)、匹配的头文件、 cmake/EchHttpDeps.cmake、第三方许可证,以及记录来源提交、编译器、SDK 版本和 逐文件 SHA-256 的 metadata.json。BoringSSL 没有稳定 ABI,必须使用同包头文件。 最终链接由消费方的 OHOS 工具链提供静态 C++ 运行库。

dependencies.json 固定 curl/zlib 源码摘要、BoringSSL 提交、SDK 版本和发布版本。 首版使用 HarmonyOS native SDK 26.0.0.105 / API 26,来自命令行工具 26.0.0.821;不宣称已验证更低 API 的兼容性。CI 使用 Ubuntu 24.04、Python 3.12、 Go 1.25.1、Clang 和静态 libc++。

启用 HTTP/1.1、ECH、gzip/deflate;关闭其他协议、HTTP/2、HTTP/3、Brotli、 Zstandard 和宿主机 CA 路径。消费方负责提供信任根。使用 PIC、隐藏符号, 关闭汇编以保持现有各平台依赖配置一致。

构建与验证

需要 Python >=3.12、Git、Go、CMake >=3.22、Ninja 和上述固定版本的 native SDK。

export OHOS_NDK_HOME=/absolute/path/to/openharmony/native
python test_build.py
python build.py --target ohos-arm64
python build.py --target ohos-x64

产物位于 dist/。构建检查 ECH/zlib 配置、依赖链接、打包后的 CMake 消费方链接、 ELF 架构和动态依赖。目标库仅允许依赖 libc.so,不额外引入 TLS、zlib 或 C++ 动态库。源码下载缓存与生成目录分开,依赖、SDK 或配置变化时重新编译。

CI 对 main 推送、PR 和手动运行构建两个架构,再合并并核验完整 SDK 集。 CI 仅有只读权限,不会自动创建或覆盖 Release。verified-sdks 产物包含 两个 ZIP、各自的摘要文件和 SHA256SUMS。

发布

使用维护者已登录的 GitHub CLI,发布已通过 CI 的确切提交:

gh api user --jq .login
git rev-parse HEAD
gh run view RUN_ID --json conclusion,headSha
gh run download RUN_ID --name verified-sdks --dir dist
python verify_release.py v0.1.0 --commit FULL_COMMIT_SHA
gh release create v0.1.0 dist/* --target FULL_COMMIT_SHA --title v0.1.0 --notes-file RELEASE_NOTES.md

下载产物时使用空的 dist/;确认运行成功且提交与待发布提交一致。发布前再次核验 归档摘要、每个文件摘要、依赖版本、SDK 版本和来源提交。已有 Release 不允许覆盖; 每次重建或修改依赖/工具链都应提升版本,并更新消费方的 URL 和 SHA-256 固定值。

验证范围

本仓库 CI 只做交叉编译、链接、包内容和 ELF 检查,不执行鸿蒙目标代码。 探针含 ECH 和 gzip 校验代码,但构建成功不等于这些行为已在目标设备运行。 ech_http 的签名 HAP 真机验证范围见其 平台验证记录; x64 仍需真机验证。

构建框架参考 ech-research/libechhttp-android-build(MIT,Predidit), 保留原版权声明。上游依赖保留各自许可证,随 SDK 一同发布。

About

Precompiled OpenHarmony/HarmonyOS libcurl, BoringSSL and zlib dependency SDKs for ech_http

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages