Chromium框架HarmonyOS开发指导
一、引言
1.1 欢迎使用Chromium
欢迎您关注并使用HarmonyOS Chromium!Chromium是一个开源浏览器项目,旨在为所有用户构建更安全、更快、更稳定的网络体验。它是 Google Chrome及其他许多浏览器(如Microsoft Edge、Opera)的基础。Chromium对HarmonyOS平台进行了适配,可助力开发者在HarmonyOS上更高效、更稳定地构建应用。
1.2 本篇文档目的
本文档旨在向开发者清晰地传达以下关键信息:
1. Chromium在HarmonyOS上的支持状态。
2. 提供快速上手和深入使用Chromium的开发指导。
3. 建议在使用Chromium开发前,仔细阅读本文档。
二、支持声明
2.1 支持确认
Chromium框架已获得HarmonyOS生态合作伙伴的支持,当前Chromium框架HarmonyOS版本已开源,欢迎访问[Chromium分支]进行使用,对应分支为pc_chromium_132,仓库配置说明可参考OH官方文档进行学习。
2.2 开箱即用
开发者现在可以在HarmonyOS 5.0上放心地集成和使用Chromium HarmonyOS版本进行项目开发。该框架已深度适配平台环境,并在HarmonyOS 5.0环境中经过严格测试与验证,确保核心功能的稳定运行和兼容性。
2.3 持续维护和演进
Chromium HarmonyOS版本已于2025年6月在OH社区上正式开源,后续更新计划正在规划中,我们将持续投入资源对Chroimum HarmonyOS版本进行维护、升级和优化,及时修复问题,并根据平台发展和开发者反馈引入新特性,确保其长期的生命力和竞争力。
2.4 推荐使用
Chromium作为开源的浏览器内核项目,不仅支撑了Google Chrome、Microsoft Edge等主流浏览器,其模块化设计和强大的底层能力也使其成为开发特定类型桌面应用、嵌入式系统和工具的理想选择。以下场景推荐使用Chromium进行开发:
(1)开发一个全新的浏览器(或浏览器变体)。
(2)构建高度定制化、安全关键型的嵌入式或信息亭(Kiosk)系统。
直接使用纯Chromium源码开发是一个非常特殊且高门槛的选择,通常只适用于极少数特定场景。对于绝大多数应用开发,建议优先考虑基于成熟框架(如Electron、CEF等)。
2.5 编译环境
操作系统:Ubuntu 22.04 磁盘空间:大于100G 内存:大于32G CPU架构:x86_64
三、Chormium开发指导
3.1 Repo配置
运行如下脚本,下载并安装Gitee Repo工具,点击可查看Gitee帮助中心。
mkdir -p ~/bin
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=~/bin/:$PATH
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
运行后无报错,即表明安装成功。

3.2 代码拉取
repo init -u https://gitcode.com/openharmony-tpc/manifest.git -b pc_chromium_132 -m chromium.xml --no-repo-verify

repo sync -c

repo forall -c 'git lfs pull'
个别大文件因为已不存在无法拉取,但必要文件已拉取,不影响后续构建。
3.3 内核代码构建
Chromium依赖安装(首次构建),执行构建脚本,构建chrome_main_web。
sudo ./src/build/install-build-deps.sh --no-chromeos-fonts
build.sh -t chrome_main_web
执行上述命令后,若无问题,则会开始进行构建。

3.4 HAP工程验证
3.4.1 拷贝目录
将./src/ohos/app/ohos_hap目录拷贝到本地。

3.4.2 拷贝动态库
将`./src/out/musl_64`目录下的`libadapter.so`、`libchrome_main_web.so`,以及`./src/ohos_sdk/openharmony/native/llvm/lib/aarch64-linux-ohos`目录下`libc++_shared.so`动态库拷贝到本地hap工程`./chromium/libs/arm64-v8a`目录下。

3.4.3 拷贝资源文件
将`./src/out/musl_64`目录下`resources.pak`、`chrome_100_percent.pak`、`chrome_200_percent.pak`、`icudtl.dat`、`snapshot_blob.bin`、`v8_context_snapshot.bin`、`locales`拷贝到本地hap工程`./web_engine/src/main/resources/resfile`目录下。

3.4.4 签名与权限配置
(1)可以选择自动签名或手动签名方式,点击此处跳转配置调试签名。
(2)权限配置文件位置:ohos_hap\web_engine\src\main\module.json5文件中requestPermissions字段,以下是当前声明的权限及说明,若需要了解更多权限,参考应用权限列表。
|
权限名 |
权限说明 |
必要性 |
|---|---|---|
|
ohos.permission.SYSTEM_FLOAT_WINDOW |
允许应用使用全局悬浮窗的能力。 |
按需申请 |
|
ohos.permission.INTERNET |
允许使用Internet网络。 |
基础权限 |
|
ohos.permission.GET_NETWORK_INFO |
允许应用获取数据网络信息。 |
基础权限 |
|
ohos.permission.ACCESS_CERT_MANAGER |
允许应用进行查询证书及私有凭据等操作。 |
按需申请 |
|
ohos.permission.RUNNING_LOCK |
允许应用获取运行锁,保证应用在后台的持续运行 |
基础权限 |
|
ohos.permission.PRINT |
允许应用获取打印框架的能力。 |
按需申请 |
|
ohos.permission.PREPARE_APP_TERMINATE |
允许应用关闭前执行自定义的预关闭动作。 |
基础权限 |
|
ohos.permission.ACCESS_BIOMETRIC |
允许应用使用生物特征识别能力进行身份认证。 |
按需申请 |
|
ohos.permission.FILE_ACCESS_PERSIST |
允许应用支持持久化访问文件Uri。 |
基础权限 |
|
ohos.permission.PRIVACY_WINDOW |
允许应用将窗口设置为隐私窗口,禁止截屏录屏。 |
按需申请 |
|
ohos.permission.WINDOW_TOPMOST |
允许窗口置顶。 |
按需申请 |
|
ohos.permission.READ_PASTEBOARD |
允许应用读取剪贴板。 |
基础权限 |
|
ohos.permission.READ_WRITE_DOWNLOAD_DIRECTORY |
允许应用访问公共目录下Download目录及子目录,建议与ohos.permission.FILE_ACCESS_PERSIST同时申请。 |
按需申请 |
|
ohos.permission.READ_WRITE_DOCUMENTS_DIRECTORY |
允许应用访问公共目录下Documents目录及子目录,建议与ohos.permission.FILE_ACCESS_PERSIST同时申请。 |
按需申请 |
|
ohos.permission.READ_WRITE_DESKTOP_DIRECTORY |
允许应用访问公共目录下Desktop目录及子目录,建议与ohos.permission.FILE_ACCESS_PERSIST同时申请。 |
按需申请 |
|
ohos.permission.LOCATION |
允许应用获取设备位置信息。 |
按需申请 |
|
ohos.permission.APPROXIMATELY_LOCATION |
允许应用获取设备模糊位置信息。 |
按需申请 |
|
ohos.permission.LOCATION_IN_BACKGROUND |
允许应用在后台运行时获取设备位置信息。 |
按需申请 |
|
ohos.permission.MICROPHONE |
允许应用使用麦克风。 |
按需申请 |
|
ohos.permission.CAMERA |
允许应用使用相机。 |
按需申请 |
|
ohos.permission.ACCESS_BLUETOOTH |
允许应用接入蓝牙并使用蓝牙能力,例如配对、连接外围设备等。 |
按需申请 |
|
ohos.permission.CUSTOM_SCREEN_CAPTURE |
允许应用截取屏幕内容。 |
按需申请 |
点击查看权限:申请应用权限,权限申请邮件内容示例如下:请根据实际需要的授权申请权限,示例内容仅供参考。

Chromium中需要ACL签名的权限包括(如果未申请到证书导致签名未通过,可以暂时将这几个权限注释掉):
"requestPermissions": [
{
"name": "ohos.permission.SYSTEM_FLOAT_WINDOW"
},
//...
{
"name": "ohos.permission.READ_PASTEBOARD",
"reason": "$string:access_pasteboard",
},
//...
{
"name": "ohos.permission.READ_WRITE_DOWNLOAD_DIRECTORY",
"reason": "$string:reason_download",
"usedScene": {
"abilities": [
"FormAbility"
],
"when":"always"
}
},
{
"name": "ohos.permission.READ_WRITE_DOCUMENTS_DIRECTORY",
"reason": "$string:reason_documents",
"usedScene": {
"abilities": [
"FormAbility"
],
"when":"always"
}
},
{
"name": "ohos.permission.READ_WRITE_DESKTOP_DIRECTORY",
"reason": "$string:reason_desktop",
"usedScene": {
"abilities": [
"FormAbility"
],
"when":"always"
}
}
]
3.4.5 构建HAP包
依次点击DevEco Studio菜单【Build】-【Build Hap(s)/App(s)】-【Build Hap(s)】完成HAP包构建,输出路径在./chromium/build/default/outputs/default目录下。签名包为chromium-default-signed.hap,未签名包为chromium-default-unsigned.hap。


3.5 HAP工程运行
3.5.1 hdc工具安装
DevEco Studio中自带hdc,将其配置到环境变量中即可使用,目录为DevEcoStudio\sdk\default\openharmony\toolchains。

3.5.2 hdc安装签名包
在完成上述操作后,即可通过hdc命令安装签名包chromium-default-signed.hap进行验证测试,需要在运行DevEco Studio的系统上打开终端命令行,执行以下命令。
安装:
hdc install chromium-default-signed.hap
启动应用:
hdc shell aa start -a EntryAbility -b com.huawei.ohos_chromium
停止应用:
hdc shell aa force-stop com.huawei.ohos_chromium
卸载:
hdc uninstall com.huawei.ohos_chromium

看到AppMod finish即表示安装成功,可以开始运行。
四、坚盾模式特别说明
4.1 坚盾守护模式
坚盾守护模式是为高安全需求用户设计的系统级安全防护方案。该模式通过实施严格的功能限制,显著增强系统安全性,有效防范针对远程攻击面的各类威胁。在坚盾安全模式下,系统增加了功能限制,需要开发者评估应用在坚盾模式下的可用性。
4.2 启用坚盾守护模式
要启用坚盾守护模式,请按以下路径操作:
(1)进入电脑系统设置。
(2)选择"隐私和安全"选项。
(3)点击"坚盾守护模式"并开启。
4.3 坚盾守护模式下的功能限制
为降低应用受攻击风险,坚盾守护模式将实施以下关键安全限制:
- 全面禁用即时编译(JIT)功能,包括已获取 ACL 权限的应用程序。
- 暂停 WebAssembly 支持(当前版本中 WebAssembly 依赖 JIT 功能实现)。
4.4 应用兼容性评估指南
在坚盾守护模式下运行应用程序时,建议进行以下兼容性检查:
(1)JavaScript 性能评估:
- 测试应用在限制环境中的运行效率。
- 优化可能存在的性能瓶颈。
(2)WebAssembly 兼容性检查:
- 静态代码分析:检查项目中的 WebAssembly 相关API调用,与第三方库的 Wasm 依赖情况。
- 运行时验证:在坚盾守护模式下执行全功能测试。
更多推荐




所有评论(0)