2026-04-22 · architecture / opensource
【开源许可与版权工程】木兰许可证与国产开源许可
深入解读木兰宽松许可证 v2(OSI 认证)与木兰公共许可证 v2(弱 Copyleft)的条款:专利明示授权、中英双语法律效力、中国管辖条款;openEuler、openGauss、OpenHarmony、PaddlePaddle 的使用情况;以及与 Apache 2.0 的对比选择建议。































2019 年 8 月,华为在开发者大会上发布 HarmonyOS,彼时华为正处于美国实体清单的巨大压力之下,“备胎”叙事使这一操作系统引发广泛关注。2020 年 9 月,华为将操作系统的开源版本——OpenHarmony——捐赠给刚刚成立的开放原子开源基金会。
这一系列动作在技术社区产生了截然不同的解读:有人认为这是真正意义上的开源治理探索,有人认为这不过是换一种形式的”华为主导”。本文从工程角度分析 OpenHarmony 的许可证结构、开放原子基金会的治理机制、商标归属与 Fork 权利,以及这套模式与 Android/AOSP 的本质差异。
OpenHarmony 生态治理架构
开放原子开源基金会 OpenAtom Foundation · 2020 年 6 月 · 民政部登记
OpenHarmony Apache 2.0 为主
openEuler GPL/MulanPSL v2
MindSpore Apache 2.0
OpenGauss MulanPSL v2
龙蜥 Anolis OS GPL/MulanPSL v2
HarmonyOS NEXT 与 OpenHarmony 的关系
OpenHarmony(开源版) 开放原子基金会持有商标 Apache 2.0 为主 · 社区 PMC 治理 · 任何人可 Fork HarmonyOS NEXT 是其商业发行版
HarmonyOS NEXT(纯血鸿蒙,2024) 华为商业版 · 不含 AOSP 代码 HarmonyOS 商标由华为持有 闭源应用层 + OpenHarmony 开源底座
对比 Android/AOSP:Google 持有 Android 商标,AOSP 由 Google 主导但名义上开放;OpenHarmony 商标在开放原子,但华为贡献量最大2019 年 5 月,美国商务部将华为列入实体清单,直接导致 Google 暂停向华为提供 Android GMS(Google Mobile Services)授权。华为随即对外宣布,其早已准备了”备胎”操作系统方案——HarmonyOS(鸿蒙操作系统)。
2019 年 8 月 9 日,华为在开发者大会上正式发布 HarmonyOS,宣称这是一个”面向全场景的分布式操作系统”,支持手机、平板、穿戴、车载、智慧屏等多种终端。
从技术路线看,早期 HarmonyOS(1.x 和 2.x 版本)的手机部分在底层仍包含大量 AOSP 代码,并非从零构建的”纯血”系统。华为官方对此的解释是,AOSP 部分属于”兼容层”,上层架构(特别是分布式能力)是自研的。
2020 年 6 月 11 日,开放原子开源基金会(OpenAtom Foundation)在北京正式成立,经民政部登记注册为社会服务机构(非营利性)。这是中国第一个专注于开源软件的基金会,初始理事成员包括华为、阿里、腾讯、百度、浪潮、360、招商银行等企业。
基金会的定位是”支持、孵化、推广开源项目”,其模式参考了 Apache 软件基金会(ASF)和 Linux 基金会的部分治理经验,但结合了中国的社会组织注册要求。
2020 年 9 月,OpenHarmony 作为开放原子基金会的首批捐赠项目正式进入基金会托管。随后,openEuler(华为,2021 年 11 月)、龙蜥 Anolis OS(阿里,2021 年)、OpenGauss(华为,2021 年)、MindSpore(华为,2021 年)等项目陆续捐赠进入基金会。
基金会的官方治理层级包括:
开放原子基金会的治理模型部分借鉴了 ASF 和 Linux 基金会的经验,但在组织形式上做了中国化调整。下面按层级逐一梳理。
理事会是基金会的最高决策机构,负责整体战略、预算分配、重大对外合作、基金会章程修订以及秘书长人选等事务。理事会的构成方式是按”赞助企业—理事席位”对应,赞助级别越高(白金、黄金、白银等),获得理事席位的概率越大。
初始公开披露的理事成员单位包括:
从构成可以看出,理事会并非以个人身份选举,而是以”赞助企业代表”身份存在,这一点与 ASF 理事会(Board of Directors)以”个人成员选举”的模式有本质差别。ASF 的 Board 九名成员全部由 Apache Members 投票选出,不与公司席位绑定;开放原子基金会的理事会更接近 Linux 基金会的”企业会员制”。
TOC 负责跨项目的技术协调、项目孵化评审、毕业评审、技术标准和最佳实践的制定,是基金会技术侧的核心机构。职责主要包括:
TOC 成员通常由各项目 PMC 主席、资深技术贡献者以及受邀的独立技术专家组成,任期制。TOC 下设若干工作组,针对特定议题(如安全、合规、知识产权)开展专项工作。
每个进入基金会的项目都设有独立的 PMC,负责项目级决策:
PMC 成员的选举规则因项目而异,但基金会鼓励各项目建立”多元化要求”——即单一公司占比不宜超过某个阈值(通常为 50% 或 2/3),以避免项目事实上被单一企业控制。这一机制借鉴了 ASF 的 “Apache Way”,但在执行层面,多数基金会旗下项目仍处于”捐赠方主导”阶段。
SIG 是项目内部的专项小组,聚焦某一子模块或技术方向。以 OpenHarmony 为例,常见的 SIG 包括:
SIG 的设立、合并、解散由 PMC 决定。SIG 内部设有 Chair 角色负责协调,其决策结果需提交 PMC 审批后生效。
| 层级 | 开放原子基金会 | Apache 软件基金会(ASF) |
|---|---|---|
| 最高决策 | 理事会(企业赞助席位) | Board of Directors(9 名个人,成员投票选出) |
| 技术协调 | TOC(跨项目技术监督) | VP(执行官,各管一块事务)+ 无独立 TOC |
| 项目治理 | 项目 PMC(项目管理委员会) | Project PMC(项目管理委员会) |
| 项目提交权 | Committer(由 PMC 提名) | Committer(由 PMC 提名) |
| 子模块 | SIG(特别兴趣小组) | 通常没有正式 SIG,由 Committer 协作 |
| 基金会成员 | 企业赞助会员 | Apache Members(个人,曾长期做贡献者中选举) |
二者的根本差异在于“个人 vs 企业”的治理基调:ASF 以个人成员选举 Board、以 Committer 个人身份参与决策;开放原子基金会以企业赞助席位决定理事会构成,个人贡献者通过项目 PMC 晋升通道参与治理。这一差异决定了两种基金会面对”单一公司主导项目”问题时的处理方式和力度不同。
开放原子基金会自 2020 年成立以来,陆续接纳了多个主流中国开源项目的捐赠。下表整理了公开信息中可查的主要项目:
| 时间 | 项目 | 捐赠方 | 许可证 | 说明 |
|---|---|---|---|---|
| 2020 年 9 月 | OpenHarmony | 华为 | Apache 2.0 为主(含 MulanPSL v2、GPLv2、MIT、BSD) | 分布式操作系统,基金会首批捐赠 |
| 2021 年 | MindSpore | 华为 | Apache 2.0 | AI 计算框架,面向昇腾芯片优化 |
| 2021 年 | OpenGauss | 华为 | MulanPSL v2 | 关系型数据库,基于 PostgreSQL 11 |
| 2021 年 | 龙蜥 Anolis OS | 阿里巴巴 | GPLv2 / MulanPSL v2 | 云原生服务器操作系统 |
| 2021 年 11 月 | openEuler | 华为 | GPLv2 / MulanPSL v2 | 企业级服务器操作系统 |
| 2022 年 | TDengine | 涛思数据(TAOS Data) | AGPLv3(服务端)/ MIT(客户端) | 时序数据库 |
| 2022 年 | OpenAnolis | 阿里 | GPLv2 / MulanPSL v2 | Anolis 的上游社区 |
| 2022 年 | XuperChain | 百度 | Apache 2.0 | 区块链底层框架 |
| 2022 年 | TencentOS Tiny | 腾讯 | BSD 3-Clause | IoT 物联网操作系统 |
| 2023 年 | KubeEdge | 华为 | Apache 2.0 | 边缘计算框架(同时是 CNCF 毕业项目) |
| 2023 年 | SOFAStack 部分组件 | 蚂蚁集团 | Apache 2.0 | 金融级分布式中间件族 |
| 2023 年 | OpenKylin | 麒麟软件等 | GPLv3 / MulanPSL v2 | 中国桌面 Linux 发行版 |
上述时间与项目范围以基金会公开披露为准,部分项目的”捐赠”在法律形式上是版权转让,部分则是”商标/治理权的转让”,代码版权仍保留在原贡献者处,具体以各项目协议为准。
OpenHarmony 代码仓库采用多协议并存的许可证结构,主体遵循以下规则:
| 代码类别 | 许可证 | 说明 |
|---|---|---|
| OpenHarmony 自研核心组件 | Apache License 2.0 | 包括内核适配层、分布式框架、子系统接口等 |
| 部分第三方组件 | MIT、BSD-2/3-Clause | 依照上游来源继承 |
| 少量自研工具与组件 | Mulan PSL v2 | 开放原子基金会推荐的”国产”开源协议 |
| Linux 内核部分 | GPLv2 | LiteOS Cortex-A 和 Linux 内核的相关组件 |
具体到代码仓库,OpenHarmony 在
Gitee(openharmony
组织)维护了约数百个代码仓,每个仓库的根目录下有
LICENSE 文件。官方文档中提供了许可证合规说明,开发者在集成前应检查具体组件的许可证。
OpenHarmony 主体采用 Apache 2.0 有清晰的工程理由:
部分 OpenHarmony 的工具和少量组件采用木兰宽松许可证(第 2 版,Mulan PSL v2)。Mulan PSL v2 是中国开源云联盟(COSCL)主导开发的许可证,在 OSI(开源倡议组织)于 2021 年获得批准,是第一个获得 OSI 认可的中文许可证。
Mulan PSL v2 在功能上与 Apache 2.0 类似,包含专利授权条款,采用中英双语文本,中文文本具有同等法律效力。详细分析见本系列第 09 篇。
OpenHarmony 对于集成 Linux 内核的设备,相关内核模块遵循 GPLv2。根据 Linux 内核的 syscall exception 惯例,用户态应用程序(ArkTS/Java 应用)通过系统调用接口访问内核,不被认为是内核的”衍生作品”,因此不触发 GPLv2 的 Copyleft 要求。
但需要注意:任何需要加载到内核地址空间的内核模块(如自定义驱动),在 GPLv2 的标准解释下,通常需要以 GPLv2 兼容的许可证发布。OEM 厂商在开发专有驱动时,应特别注意这一边界。
OpenHarmony 在 Gitee 的 openharmony
组织下维护了 200
多个代码仓库,横跨内核适配、系统服务、应用框架、测试工具、文档等领域。按许可证类型的大致分布(基于公开仓库抽样观察,具体以各仓库
LICENSE 文件为准):
| 许可证类型 | 占比(估算) | 典型代码仓 |
|---|---|---|
| Apache License 2.0 | 约 70%+ | 分布式软总线、ArkUI、ArkCompiler、应用框架、系统服务 |
| GPLv2 | 约 10% | Linux 内核适配相关仓、部分驱动 |
| MIT / BSD-2 / BSD-3-Clause | 约 10% | 第三方上游组件(lwIP、mbedTLS、cJSON 等的适配) |
| Mulan PSL v2 | 少量 | 部分自研工具、编译脚本、文档 |
| LGPL / 其他 | 零星 | 少数第三方库适配 |
推荐的检查方式:
https://gitee.com/openharmony/<仓库名>/blob/master/LICENSE
打开每个代码仓的 LICENSE 文件;部分仓库可能使用
NOTICE 或 LICENSE.txt
作为补充。bundle.json /
ohos.build:OpenHarmony
的构建系统在每个模块根目录下通常有构建配置文件,其中会声明当前模块依赖的其他组件,可用于追溯许可证依赖关系。以下几类代码仓通常涉及 GPLv2,OEM 团队在集成或修改时需注意 Copyleft 义务:
kernel/linux-5.10、kernel/linux-6.x
等分支仓库;对专有驱动而言,如果驱动以内核模块(LKM)形式加载,通常需要采用 GPLv2 兼容许可证;若要规避 GPLv2,可考虑将驱动实现在用户态(例如通过 UIO、VFIO、FUSE、libusb 等用户态框架),或通过 HDI(Hardware Driver Interface)抽象层进行隔离——HDI 的合规模式将在第六节展开。
OpenHarmony 与 AOSP 在许可证选择上的逻辑高度相似,但在若干细节上各有差异:
| 代码类别 | OpenHarmony | AOSP(Android Open Source Project) |
|---|---|---|
| 核心框架(应用框架、系统服务) | Apache 2.0 | Apache 2.0 |
| 内核 | GPLv2(Linux)/ BSD-3(LiteOS-A/M) | GPLv2(Linux) |
| C 库 | Apache 2.0(musl-libc 变体 / OpenHarmony libc) | Apache 2.0(Bionic) |
| JavaScript / 脚本运行时 | Apache 2.0(ArkTS/ArkCompiler/QuickJS 分支) | 无(V8/SpiderMonkey 不在 AOSP 主线) |
| 原生基础库 | Apache 2.0 为主 | Apache 2.0 为主,部分 LGPL |
| 工具链(编译器、调试器) | Apache 2.0 + GPL(GCC/Binutils) | Apache 2.0 + GPL(GCC/Binutils) |
| 分布式能力 | Apache 2.0(OpenHarmony 特有) | 无对应模块 |
| 图形栈 | Apache 2.0(ArkUI、自研合成器) | Apache 2.0(SurfaceFlinger 等) |
| 蓝牙 / Wi-Fi 协议栈 | Apache 2.0(基于上游协议栈移植) | Apache 2.0(基于 BlueDroid 等) |
两者共同选择 Apache 2.0 作为主体许可证的原因一致:专利授权明确、对 OEM 商用友好、允许闭源衍生。差异主要体现在:
OpenHarmony 的少部分自研组件、以及旗下姊妹项目(openEuler、OpenGauss)使用 Mulan PSL v2。工程和法务团队在实操中,经常需要回答”MulanPSL v2 和 Apache 2.0 相比,日常合规动作是否有差异”。
| 条款类别 | Apache 2.0 | Mulan PSL v2 |
|---|---|---|
| 授权范围 | 版权 + 专利 | 版权 + 专利 |
| 专利授权是否显式 | 是(第 3 条) | 是(第 2 条) |
| 分发时是否保留许可证全文 | 是 | 是 |
| 修改声明 | 显著通知修改(第 4 条 b) | 需在被修改文件中添加修改声明 |
| NOTICE 文件处理 | 强制传递(第 4 条 d) | 无对应 NOTICE 机制 |
| 商标授权 | 默认不授权(第 6 条) | 默认不授权 |
| 专利反诉条款 | 是(第 3 条末段) | 是 |
| 担保否认 | 是 | 是 |
| 责任限制 | 是 | 是 |
| 语言文本 | 英文 | 中英双语,中文具有同等法律效力 |
| OSI 批准 | 是(2004) | 是(2020) |
| SPDX 标识符 | Apache-2.0 |
MulanPSL-2.0 |
对集成方的工程含义:
代码示例:一个典型的 Mulan PSL v2 文件头应包含:
/*
* Copyright (c) 2024 XYZ Corporation. All rights reserved.
*
* XYZ is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the
* Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF
* ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
* NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
*/对比 Apache 2.0 的标准文件头:
/*
* Copyright (c) 2024 XYZ Corporation. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/两者在工程实操中几乎可以”对等处理”,区别主要在 NOTICE 文件处理和文本语言层面。
根据开放原子基金会的官方说明,“OpenHarmony”商标由开放原子开源基金会持有,而非华为。这一设计参考了 ASF 持有 Apache 商标的模式。
实际含义:
与 OpenHarmony 不同,“HarmonyOS”和”鸿蒙”商标由华为持有。这是华为商业版本的品牌,与开放原子基金会持有 OpenHarmony 商标相互独立。
这一双轨商标结构反映了华为的战略安排:将底层开源生态(OpenHarmony)置于中立的基金会治理下,同时保留商业发行版(HarmonyOS)的品牌控制权——这与 Red Hat 持有 RHEL 商标同时向 CentOS 捐赠基础设施的模式有相似之处。
OpenHarmony 的主体代码采用 Apache 2.0,任何组织或个人均可 Fork,并以任意名称(不得使用 OpenHarmony 商标)发布衍生版本。已知的基于 OpenHarmony 的商业发行版或衍生版包括:
| 维度 | OpenHarmony / 开放原子 | Android / AOSP / Google |
|---|---|---|
| 商标持有者 | 开放原子基金会(OpenHarmony)/ 华为(HarmonyOS) | Google(Android) |
| 代码主控方 | 华为(最大贡献者,实际主导 PMC) | Google(实际主导 AOSP) |
| 代码托管 | Gitee(开放原子基金会) | AOSP / Android Review(Google) |
| 主体许可证 | Apache 2.0 | Apache 2.0(上层) + GPL/LGPL(内核/库) |
| GMS/HMS 属性 | HarmonyOS NEXT 中的 HMS Core(华为闭源) | GMS(Google 闭源,AOSP 之外) |
| 基金会独立性 | 开放原子基金会(政府登记 NGO) | 无独立基金会(Google 直管) |
| 社区贡献准入 | PMC 审查,华为占主导 | Google 审查,实际门槛较高 |
| CLA 要求 | 需要签署开放原子 CLA | 需要签署 Google CLA |
AOSP 模式下,Google 既是商标持有者,也是代码托管方,还是主要决策者,三权高度集中;OpenHarmony 在名义上做了商标和代码托管的分离,但由于华为在项目中的绝对贡献量,PMC 的实际决策权仍然高度向华为集中。
在工程和市场实践中,“OpenHarmony” 商标使用的边界有若干常见场景,列举如下以供参考:
对这类模糊地带,建议在商业上线前取得开放原子基金会的商标使用许可书面文件,避免事后争议。
MindSpore 是华为于 2020 年 3 月开源的 AI 计算框架,2021 年捐赠给开放原子基金会。采用 Apache 2.0 许可证。
主要特点: - 支持全场景训练与推理,面向昇腾(Ascend)NPU 有专项优化 - 与 TensorFlow/PyTorch 的主要差异在于其自动并行(Auto Parallel)和”图算融合”的编译优化路线 - 已进入 Gitee 开放原子组织,社区贡献包含华为外的高校和企业成员
在协议层面,MindSpore 使用 Apache 2.0,商用无限制。但其硬件加速的最优效果依赖昇腾芯片(华为商业产品),这在架构上形成了与 NVIDIA CUDA/PyTorch 类似的”软件开源、硬件生态半封闭”的商业模式。
OpenGauss 是华为于 2020 年 6 月开源的关系型数据库,基于 PostgreSQL 11 进行了大量优化(存储引擎、NUMA 调优、主从复制、安全增强)。2021 年捐赠给开放原子基金会。
许可证:MulanPSL v2
衍生版本:华为推出了基于 OpenGauss 的商业版本 GaussDB,在华为云上提供服务。多家国内数据库厂商(如云和恩墨的 MogDB)也基于 OpenGauss 构建了各自的商业版。
TDengine 由涛思数据(TAOS Data)开发,是一个专为时序数据优化的数据库。2022 年在开放原子基金会孵化。核心代码采用 AGPL v3(服务端),客户端 SDK 采用 MIT。
TDengine 选择 AGPL v3 的动机与 MongoDB 早期选择相似:防止云厂商在不回馈社区的情况下将其作为服务提供。关于 AGPL 对云厂商的影响,详见本系列第 08 篇。
dubbo-go 是 Apache Dubbo 的 Go 语言实现,由 Apache 软件基金会孵化,不在开放原子基金会旗下。这里提及是为了说明:不是所有知名中国开源项目都归属于开放原子基金会,Apache 基金会(Dubbo、ShardingSphere、SkyWalking、APISIX 等)和 CNCF(Argo、Chaos Mesh 等)仍然是中国公司项目出海的重要路径。
与 Apache 软件基金会的”孵化器(Incubator)“类似,开放原子基金会设有项目孵化流程。项目进入基金会后需要:
与 ASF 相比,开放原子基金会在社区多元化要求上的执行力度目前仍处于早期阶段,多个项目的 PMC 成员仍以捐赠方(如华为、阿里)的员工为主。
开放原子基金会对捐赠项目设有”孵化—毕业—长期维护—归档”的完整生命周期设计:
这一机制的意义在于,为项目的整个生命周期——包括其衰退阶段——提供了规范化的处理路径,避免代码与贡献记录的突然丢失。
开放原子基金会并不是中国开源项目走向国际化的唯一路径。为了更准确地评估”托管于开放原子”在工程上的含义,有必要对比中国公司选择不同基金会的典型案例。
以下几个项目由中国公司或社区发起,选择了 Apache 软件基金会(ASF)作为托管方:
这些项目选择 ASF 而非开放原子基金会的典型动因:
云原生领域的中国项目大多选择 CNCF(Cloud Native Computing Foundation,归属 Linux 基金会):
CNCF 的路线选择对应的工程含义:
下表对比两种孵化器在关键维度上的差异:
| 维度 | 开放原子基金会孵化器 | Apache 软件基金会孵化器 |
|---|---|---|
| 成立时间 | 2020 年基金会成立同步启动 | 2002 年启动 |
| 孵化时间 | 通常 1–2 年 | 通常 1–3 年,部分项目更长 |
| 毕业标准 | PMC 多元化、代码质量审查、社区活跃度 | 严格遵循 Apache Way、多家独立贡献方、三次以上成功发布 |
| 许可证要求 | 宽松(Apache 2.0、MulanPSL v2、MIT、BSD 等均可) | 严格(项目代码必须 Apache 2.0;依赖须通过 Category A 审查) |
| 中立性要求 | 鼓励多元化,执行力度处于早期 | 刚性要求:单一公司占比上限、Diversity 报告、IP Clearance |
| 法律框架 | 中国《民法典》、《社会团体登记管理条例》等 | 美国特拉华州非营利法人法,IRS 501(c)(3)税务认定 |
| 出口合规 | 不受美国 EAR/OFAC 约束 | 受美国 EAR/OFAC 约束 |
| 版权处理 | 可保留原始版权,或授权基金会;CLA 模板化 | ICLA + CCLA 双签;代码版权归 ASF |
| 社区规范执行 | Code of Conduct 以基金会章程为准,执行中 | 成熟的 CoC 与 PMC 自治流程 |
| 退出机制 | 孵化失败可退出,资源由 TOC 回收 | 孵化失败退出(Retirement),代码存档到 Attic |
选择哪一个基金会,并非纯技术问题,而是项目方对目标市场、地缘环境、合作伙伴等综合考量的结果。对同一家公司(如华为)而言,同时向开放原子(OpenHarmony、openEuler)、ASF(通过员工贡献 Apache 项目)、CNCF(KubeEdge、Volcano)三处投资,本身就是一种风险对冲策略。
本节从工程实操角度,梳理基于 OpenHarmony 构建商业产品时需要关注的合规要点。
Apache 2.0 许可证对 Fork 的处理非常宽松:
但即便 Apache 2.0 不强制回馈,基于长期工程可维护性考虑,OEM 厂商通常采用”部分回馈”策略:
即便代码可以自由 Fork,商标使用仍受限:
Apache 2.0 对代码修改的要求:
OpenHarmony 上运行的 Linux 内核遵循 GPLv2。GPLv2 对内核模块(Loadable Kernel Module, LKM)的解释,在社区长期以来形成了相对稳定的实践:
OEM 若需保留专有驱动代码不开源,常见的工程路径有:
OpenHarmony 设计了一层 HDI(Hardware Driver Interface) 抽象,用于隔离上层系统服务与具体硬件驱动。HDI 的工程意图在于:
这一设计在工程上类似 Android 的 HAL(Hardware Abstraction Layer),其 HIDL/AIDL 机制也用于将 GPL 内核与 Apache 2.0 用户态隔离。HAL/HDI 模式是规避 GPL 传染的主流工程实践。
一个典型的 HDI IDL 接口定义示意(以摄像头驱动为例):
package ohos.hdi.camera.v1_0;
interface ICameraHost {
GetCameraIds([out] String[] cameraIds);
GetCameraAbility([in] String cameraId, [out] CameraAbility ability);
OpenCamera([in] String cameraId,
[in] ICameraDeviceCallback callback,
[out] ICameraDevice device);
SetCallback([in] ICameraHostCallback callback);
}
上述接口通过 OpenHarmony 的 HDF(Hardware Driver Foundation)框架在用户态暴露。其 接口使用方(上层系统服务、应用) 链接的是 Apache 2.0 许可证下的 stub 代码;接口实现方(OEM 驱动) 可以选择:
这样的分层使得 OEM 可以在不触发 GPLv2 传染的前提下,将主要的专有算法(ISP、AI 图像增强、降噪算法等)保留在用户态闭源。
下面提供一份决策树式的合规检查清单,供 OEM 工程和法务团队在量产前执行:
下面是已公开的基于 OpenHarmony 的商业发行版或衍生系统案例:
华为 2024 年正式发布的”纯血鸿蒙”。底层基于 OpenHarmony 内核和系统框架,华为在其上叠加了闭源的 HMS Core、华为自有系统 UI、华为应用市场、华为账号体系等商业组件。
许可证方面:
荣耀在从华为独立后,持续演进自有的 MagicOS。早期版本保留了 Android 兼容性(对应 HarmonyOS 2.x 的双栈策略),新版本向 OpenHarmony 底座迁移。荣耀作为 OpenHarmony 社区成员之一,部分代码回馈到社区。
基于 OpenHarmony LiteOS 的 IoT 产品在以下类目中已有规模化部署:
面向金融、政务、教育等行业的定制版本,通常由集成商基于 OpenHarmony 底座开发:
这些行业定制版的合规重点在于:国家行业标准(如金融行业 JR/T 系列、政务信息化相关规范)与 OpenHarmony 原生能力之间的适配,以及对”信创目录”的入围情况。
HarmonyOS 1.x(2019–2020)主要部署于 IoT 设备,手机版基于 Android 改造。HarmonyOS 2.x(2021)在手机上正式发布,底层包含 AOSP 兼容层,Android 应用可直接运行。
华为官方的表述是 HarmonyOS 不等于 Android,并声称 Harmony 内核(LiteOS 或 Linux)与 Android 不同;但第三方技术分析(如 Android 开发者 Emil Lundmark 的解包报告,2021 年)指出 HarmonyOS 2.x 的手机版本包含大量 AOSP 组件,其差异化主要体现在分布式能力的应用层。
2024 年发布的 HarmonyOS NEXT(被媒体称为”纯血鸿蒙”)对架构进行了重大调整:
从许可证角度,HarmonyOS NEXT 的底座(基于 OpenHarmony)使用 Apache 2.0;华为在此基础上叠加的闭源应用层(HMS Core、系统 UI、部分系统服务)属于商业闭源软件,符合 Apache 2.0 允许衍生商业闭源产品的规定。
对于非华为的 OEM 厂商,基于 OpenHarmony 开发商业系统是合法且可行的。已有案例包括:
HarmonyOS NEXT 的应用分发通道由华为掌控:
与 Android/AOSP 相比,HarmonyOS NEXT 的”纯血”路线下,华为掌握了从操作系统到分发到支付的完整闭环。对应用开发者来说,这是一把双刃剑:
HarmonyOS NEXT 的”开源底座 + 商业上层”架构,在边界上大致可以这样划分:
| 组件类别 | 归属 | 开源与否 |
|---|---|---|
| 内核(Linux / LiteOS) | OpenHarmony 社区 | 开源(GPLv2 / BSD-3) |
| 系统服务(SystemAbility) | OpenHarmony 社区 | 开源(Apache 2.0) |
| ArkUI / ArkTS 运行时 | OpenHarmony 社区 | 开源(Apache 2.0) |
| HDI / HDF 驱动框架 | OpenHarmony 社区 | 开源(Apache 2.0) |
| 分布式软总线 | OpenHarmony 社区 | 开源(Apache 2.0) |
| HMS Core(推送 / 地图 / 支付 / 账号) | 华为 | 闭源 |
| 华为应用市场 | 华为 | 闭源 |
| 华为账号体系 | 华为 | 闭源 |
| Huawei Ability Gallery | 华为 | 闭源 |
| 华为负一屏 / 智慧助手 | 华为 | 闭源 |
| 主题 / 桌面 / 图库等 UX 层 | 华为 | 闭源 |
这个分层与 Google 的 “AOSP + GMS” 分层高度类似:上层的商业组件是真正的盈利与差异化所在,下层的开源底座保证了生态的最低可用性与兼容性。
| 维度 | 开放原子开源基金会 | Apache 软件基金会 | Linux 基金会 |
|---|---|---|---|
| 注册地 | 中国北京(民政部登记) | 美国特拉华州(501(c)(3) 非营利) | 美国(501(c)(6) 非营利) |
| 版权归属政策 | 项目可保留原始版权,或授权基金会持有 | ASF 持有贡献代码版权(通过 ICLA/CCLA) | 无统一政策,项目自行决定 |
| 商标政策 | 基金会持有项目商标(如 OpenHarmony) | ASF 持有 Apache 商标 | LF 持有注册商标,授权项目使用 |
| CLA 机制 | 有(基金会统一 CLA) | 有(ICLA + CCLA) | 项目各自执行(DCO 或 CLA) |
| 出口合规 | 中国法规下运营,无 EAR/OFAC 约束 | 受美国出口管制法规(EAR)约束 | 受美国出口管制法规(EAR)约束 |
| 项目多元化要求 | 要求推动 PMC 多元化(执行力度早期阶段) | 严格要求”Apache Way”,公司垄断可能导致孵化失败 | 较宽松,侧重代码贡献多样性 |
开放原子基金会注册于中国,不受美国出口管制法规(EAR、ITAR)的直接约束。这对于某些被实体清单列入的中国企业(如华为)有重要意义:
这也是华为选择在国内基金会托管 OpenHarmony 而非直接向 ASF 捐赠的重要背景之一。出海合规的详细分析见本系列第 19 篇。
对于中国工程团队,选择基于开放原子基金会项目与基于 Apache/Linux 基金会项目的工程含义差异:
| 场景 | 开放原子项目(OpenHarmony 等) | Apache/Linux 基金会项目 |
|---|---|---|
| 国内信创合规 | 更容易通过信创认证 | 不属于信创范畴 |
| 出海应用 | 可能在某些市场受到关注(地缘因素) | 中立性更好,国际合作更顺畅 |
| 社区贡献透明度 | PMC 以中国企业为主,流程透明度逐渐提升 | ASF 成熟的 “Apache Way”,治理透明度高 |
| 长期维护可持续性 | 依赖开放原子生态和国内企业投入 | 国际社区,维护多样性更高 |
| 专利风险 | Apache 2.0 包含专利授权,但基金会本身无专利防御基金 | Apache 2.0 含专利授权,某些基金会有专利防御机制 |
即便在合同与许可证层面,开放原子、ASF、Linux 基金会的运作机制可以相互对应,在公众与行业认知上仍存在若干显著差异:
对项目创始者而言,选择基金会时应同时考虑法律、治理、品牌三层面的因素。对使用者和集成商而言,同样应把”基金会托管”这一事实与”项目治理质量”做合理区分——基金会托管是必要条件,不是充分条件。
开放原子基金会作为 2020 年才成立的年轻基金会,其可持续性仍需要观察下列指标:
这些指标需要 5–10 年的长周期观察,才能给出可靠评估。短期内,开放原子基金会的实际可用性,主要取决于其旗下核心项目(OpenHarmony、openEuler)的工程质量与生态活跃度。
OpenHarmony 代码分散在 Gitee
上的数百个代码仓库中,不同仓库的许可证类型有差异(Apache
2.0、MIT、BSD、MulanPSL v2、GPL)。工程团队在集成
OpenHarmony
组件时,不能假设所有代码都采用同一许可证,需要逐仓检查
LICENSE 文件。
推荐做法:使用 SBOM(软件物料清单)工具对 OpenHarmony 集成的组件进行系统性扫描,SCA 工具链详见本系列第 16 篇。
向开放原子基金会旗下项目(如 OpenHarmony、openEuler)贡献代码,需要签署基金会的 CLA(贡献者许可协议)。CLA 赋予基金会以所有者身份管理贡献代码,包括在未来更换许可证的权利(前提是基金会章程允许)。
工程团队在代表雇主签署 CCLA(企业级 CLA)前,应确认法务部门已审阅 CLA 条款,尤其是版权转让 vs 许可授权的区别。详见本系列第 18 篇。
HarmonyOS NEXT 切断与 Android 的兼容,意味着原有的 Android 应用需要重新以 ArkTS/ArkUI 开发 HarmonyOS 原生版本。对于计划支持 HarmonyOS NEXT 的应用开发团队,这是一个实质性的工程投入。
在协议层面,ArkTS 框架本身属于 OpenHarmony 开源代码(Apache 2.0),但 ArkUI 的某些高级组件和 HMS Core 的 API 属于华为专有技术,开发者在使用前应查阅华为开发者联盟服务条款。
基于 OpenHarmony 构建产品时,若需要加载自定义内核模块(如专有驱动),应确保这些模块以 GPLv2 兼容的许可证发布,或采用 LGPL 例外的方式处理。参照 Linux 内核社区的惯例,华为在 OpenHarmony 的内核文档中提供了驱动合规的指引,OEM 团队应在量产前完成法务审查。
若 OEM 或应用开发团队同时向 OpenHarmony(需要签 OpenAtom CLA)与其他基金会项目(ASF 需签 ICLA/CCLA,CNCF 项目需签 DCO 或 CLA)贡献代码,会出现”同一段代码涉及多份 CLA”的情况。典型场景如:
合规上需要注意:
对于商用硬件产品,OpenHarmony 的 Secure Boot、可信固件、DRM 模块等可能涉及商用组件(如 TEE OS、Widevine/PlayReady 许可等),这些商用组件不属于 OpenHarmony 开源范围,需与相应厂商签订商业授权。
OpenHarmony 的发布节奏:
工程团队常见的坑:
| 场景 | 建议 | 理由 |
|---|---|---|
| 智能家居、IoT、穿戴设备 | 积极评估 | OpenHarmony LiteOS 针对轻量级设备有成熟方案 |
| 中国市场手机/平板(HarmonyOS NEXT 生态) | 需投入 ArkTS 开发 | 华为/荣耀用户群体大,但生态仍处于建设期 |
| 国际市场手机/平板 | 谨慎评估 | HMS Core 在国际市场的替代能力不如 GMS |
| 政企信创应用 | 可考虑 OpenHarmony 方向 | 信创政策加持,但需确认信创目录入选情况 |
| 普通互联网服务(非硬件) | 不适用 | OpenHarmony 是设备操作系统,非服务端方向 |
引用开放原子基金会项目(OpenHarmony、openEuler、OpenGauss 等)前,建议:
LICENSE
文件,确认许可证类型;面向硬件 OEM 厂商(消费电子、IoT、工业设备等)基于 OpenHarmony 构建商业产品时,推荐按下列顺序决策:
对于已有 Android / iOS 应用的团队,是否投入资源支持 HarmonyOS NEXT,是一个需要量化评估的业务决策。推荐按以下框架评估:
| 场景 | 建议 |
|---|---|
| 金融 / 政务 / 运营商类应用,中国市场为主 | 应支持 |
| 头部社交 / 通信 / 内容应用,中国市场为主 | 应支持 |
| 国内中小型工具应用,资源有限 | 观望,优先考虑快应用或 Web |
| 全球化应用,中国市场收入占比 < 10% | 可延后 |
| 重度游戏,渲染栈深度依赖 | 视头部玩家动向再定 |
| 企业内部应用(给员工使用) | 若公司已发 HarmonyOS 设备,则支持;否则不支持 |
本文为工程参考,不构成法律意见。涉及具体法律风险请咨询专业法律顾问。本文所述事件均来自公开报道与公开判决书,如有偏差以官方渠道为准。
上一篇:CentOS 停服与生态重组:Rocky、Alma、openEuler、龙蜥
下一篇:中国开源数据库的协议选择:OceanBase、TiDB、Apache Doris
把当前热点继续串成多页阅读,而不是停在单篇消费。
2026-04-22 · architecture / opensource
深入解读木兰宽松许可证 v2(OSI 认证)与木兰公共许可证 v2(弱 Copyleft)的条款:专利明示授权、中英双语法律效力、中国管辖条款;openEuler、openGauss、OpenHarmony、PaddlePaddle 的使用情况;以及与 Apache 2.0 的对比选择建议。
2026-04-22 · architecture / opensource
OceanBase 选 MulanPubL-2.0,TiDB 选 Apache 2.0,Apache Doris 走基金会路线,StarRocks 从闭源 fork 再开源用 Elastic License 2.0,SequoiaDB 选 SSPL。本文分析中国开源数据库在协议选择背后的工程逻辑、商业动机与云厂商生态策略。
2026-04-22 · architecture / opensource
从 TODO Group 定义出发,拆解 OSPO 的职责矩阵、中国大厂实践(华为、阿里、腾讯、字节跳动)、最小可行 OSPO 模型与成熟度路径,给出不同规模企业的落地方案。
2026-04-22 · architecture / opensource
CLA(贡献者许可协议)与 DCO(开发者起源认证)的完整工程指南:Apache ICLA 逐条解析、DCO 1.1 实操、CNCF 要求、国内 openEuler/OpenHarmony 实践、中国法适用性争议,以及 GitHub Actions 集成模板。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。