安全子系统提供网络设备连接、认证鉴权等功能,依赖mbedtls实现硬件随机数以及联网功能。
由于每个厂商芯片硬件与实现硬件随机数的方式不同,须要适配硬件随机数接口。
移植指导
OpenHarmony提供了mbedtls的开源三方库,路径为“//third_party/mbedtls”。此库中提供了“mbedtls_platform_entropy_poll”、“mbedtls_hardclock_poll”、“mbedtls_havege_poll”、“mbedtls_hardware_poll”等几种产生随机数的方式。厂商须要根据芯片适配“mbedtls_hardware_poll”方式。
移植实例
- “config.json”添加文件系统。 路径:“vendor/MyVendorCompany/MyProduct/config.json”
修改如下:
- {
- "subsystem": "security",
- "components": [
- { "component": "hichainsdk", "features":[] },
- { "component": "huks", "features":[]}
- ]
- },
复制代码 - 配置宏,打开硬件随机数接口相关代码。 根据mbedtls的编译文件可以看出,配置宏的位置在"MBEDTLS_CONFIG_FILE=<../port/config/config_liteos_m.h>"文件中。
路径:“third_party/mbedtls/BUILD.gn”
- if (ohos_kernel_type == "liteos_m") {
- defines += [
- "__unix__",
- "MBEDTLS_CONFIG_FILE=<../port/config/config_liteos_m.h>",
- ]
- }
复制代码 根据代码我们可以看出须要配置“MBEDTLS_NO_PLATFORM_ENTROPY”、“MBEDTLS_ENTROPY_HARDWARE_ALT”两个宏,才能编译硬件随机数的相关代码。
路径:“third_party/mbedtls/library/entropy.c”
- #if !defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES)
- #if !defined(MBEDTLS_NO_PLATFORM_ENTROPY)
- mbedtls_entropy_add_source( ctx, mbedtls_platform_entropy_poll, NULL,
- MBEDTLS_ENTROPY_MIN_PLATFORM,
- MBEDTLS_ENTROPY_SOURCE_STRONG );
- #endif
- ......
- #if defined(MBEDTLS_ENTROPY_HARDWARE_ALT)
- mbedtls_entropy_add_source( ctx, mbedtls_hardware_poll, NULL,
- MBEDTLS_ENTROPY_MIN_HARDWARE,
- MBEDTLS_ENTROPY_SOURCE_STRONG );
- #endif
- ......
- #endif /* MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES */
- }
复制代码 - 适配硬件随机数接口 接口定义如下:
路径:“third_party/mbedtls/include/mbedtls/entropy_poll.h”
- int mbedtls_hardware_poll( void *data,unsigned char *output, size_t len, size_t *olen );
复制代码 表1 安全子系统配置项
配置项意义disable_huks_binary是否编译HUKS源码。
(1) 默认值: false,不编译HUKS源码。
(2) 其他值: true,编译HUKS源码。disable_authenticate是否须要裁剪hichain认证功能。
(1) 默认值: true,不裁剪。
(2) 其他值: false,裁剪hichain认证功能。huks_use_lite_storage是否采用轻量化存储方案。无文件系统、仅有flash存储的设备,可采用轻量化存储方案。
(1) 默认值: true,使用轻量化存储。
(2) 其他值: false,不使用轻量化存储。huks_use_hardware_root_key是否使用硬件根密钥。设备存在硬件根密钥能力时,须要根据自身能力适配硬件根密钥方案;HUKS提供的RKC方案仅为模拟实现。
(1) 默认值:false,默认值,默认无硬件根密钥。
(2) 其他值:true,设备具有硬件根密钥相关能力时,应自行适配。huks_config_file是否使用HUKS默认配置文件。
(1) 默认值:"":使用HUKS默认配置文件hks_config.h。
(2) 其他文件:产品可在HUKS支持能力集合中自行选择所要支持的特性。
阐明: 在添加安全子系统时,可直接通过配置feature来选择安全子系统特性。
- {
- "subsystem": "security",
- "components": [
- { "component": "hichainsdk", "features":[] },
- { "component": "huks", "features":
- [
- "disable_huks_binary = false",
- "disable_authenticate = false"
- ]
- }
- ]
- },
复制代码 最后
有很多小搭档不知道学习哪些鸿蒙开辟技术?不知道须要重点把握哪些鸿蒙应用开辟知识点?而且学习时频仍踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有须要的。
这份鸿蒙(HarmonyOS NEXT)资料包罗了鸿蒙开辟必把握的焦点知识要点,内容包罗了(ArkTS、ArkUI开辟组件、Stage模子、多端摆设、分布式应用开辟、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开辟、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。
希望这一份鸿蒙学习资料能够给大家带来帮助,有须要的小搭档自行领取,限时开源,先到先得~无套路领取!!
获取这份完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料
鸿蒙(HarmonyOS NEXT)最新学习路线
- HarmonOS就业必备技能
- HarmonOS多媒体技术
有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布条记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开辟入门教学视频,内容包罗:ArkTS、ArkUI、Web开辟、应用模子、资源分类…等知识点。
获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料
《鸿蒙 (OpenHarmony)开辟入门教学视频》
《鸿蒙生态应用开辟V2.0白皮书》
《鸿蒙 (OpenHarmony)开辟基础到实战手册》
OpenHarmony北向、南向开辟环境搭建
《鸿蒙开辟基础》
- ArkTS语言
- 安装DevEco Studio
- 运用你的第一个ArkTS应用
- ArkUI声明式UI开辟
- .……
《鸿蒙开辟进阶》
- Stage模子入门
- 网络管理
- 数据管理
- 电话服务
- 分布式应用开辟
- 关照与窗口管理
- 多媒体技术
- 安全技能
- 任务管理
- WebGL
- 国际化开辟
- 应用测试
- DFX面向未来计划
- 鸿蒙系统移植和裁剪定制
- ……
《鸿蒙进阶实战》
- ArkTS实践
- UIAbility应用
- 网络案例
- ……
获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料
总结
总的来说,华为鸿蒙不再兼容安卓,对中年步伐员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的期间中立于不败之地。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |