启动子系统设备信息说明
系统参数 | 接口名 | 描述 |
---|---|---|
const.product.devicetype | const char* GetDeviceType(void) | 返回当前设备类型 |
const.product.manufacturer | const char* GetManufacture(void) | 返回当前设备生产厂家信息 |
const.product.brand | const char* GetBrand(void) | 返回当前设备品牌信息 |
const.product.name | const char* GetMarketName(void) | 返回当前设备传播名 |
const.build.product | const char* GetProductSeries(void) | 返回当前设备产品系列名 |
const.product.model | const char* GetProductModel(void) | 返回当前设备认证型号 |
const.software.model | const char* GetSoftwareModel(void) | 返回当前设备内部软件子型号 |
const.product.hardwareversion | const char* GetHardwareModel(void) | 返回当前设备硬件版本号 |
const.product.hardwareprofile | const char* GetHardwareProfile(void) | 返回当前设备硬件profile |
ohos.boot.sn | const char* GetSerial(void) | 返回当前设备序列号(SN号) |
const.product.software.version | const char* GetDisplayVersion(void) | 返回当前设备用户可见的软件版本号 |
const.product.bootloader.version | const char* GetBootloaderVersion(void) | 返回当前设备Bootloader版本号 |
const.product.udid | int GetDevUdid(char *udid, int size) | 获取设备udid(先通过参数获取,获取失败通过计算获取) |
const char *AclGetSerial(void); | 返回当前设备序列号(SN号)(带访问权限检查) | |
int AclGetDevUdid(char *udid, int size); | 获取设备udid(带访问权限检查) |
设备信息来源
OHOS 固定值参数的适配
-
OHOS 固定值参数:
const.ohos.version.security_patch const.ohos.releasetype const.ohos.apiversion const.ohos.fullname
-
适配说明:
OHOS 固定值参数由OHOS系统填充,厂商不能也不需适配,目前这部分参数主要定义在文件中。
/base/startup/init/services/etc/param/ohos_const/ohos.para
厂商固定值参数的适配:
-
厂商固定值参数:
const.product.devicetype const.product.manufacturer const.product.brand const.product.name const.build.product const.product.model const.software.model const.product.hardwareversion const.product.hardwareprofile const.product.software.version const.product.bootloader.version const.build.characteristics ... ...
-
适配说明:
由各产品根据自身情况在vendor目录下适配。
-
标准系统以RK3568为例,在中适配,并安装到指定目录。
/vendor/hihope/rk3568/etc/para/hardware_rk3568.para
ohos_prebuilt_etc("para_for_chip_prod") { source = "./para/hardware_rk3568.para" install_images = [ chip_prod_base_dir ] relative_install_dir = "para" part_name = "product_rk3568" }
-
轻量系统与小型系统在产品对应的文件中配置。例如:
hals/utils/sys_param/vendor.para
const.product.manufacturer=Talkweb const.product.brand=Talkweb const.product.name=Niobe const.build.product=Niobe const.product.model=Niobe407 const.software.model="2.0.0" const.product.hardwareversion="1.0.0" const.product.hardwareprofile="RAM:192K,ROM:1M,ETH:true" ... ...
-
厂商动态参数的适配
厂商动态值参数,目前有三种获取形式:cmdline读取,编译宏定义,在BUILD.gn中定义。
-
cmdline中读取的值有:ohos.boot.hardware、ohos.boot.bootslots、ohos.boot.sn等,其中ohos.boot.sn的获取略有不同,具体如下:
-
标准系统的Serial从参数ohos.boot.sn读取。
ohos.boot.sn参数值的获取方式:首先从cmdline(由uboot生成)获取,如果获取到的是sn值则直接读取,若获取的是文件路径,则从文件中读取;当获取不到时从默认的Sn文件读取,默认文件为:。
/sys/block/mmcblk0/device/cid;/proc/bootdevice/cid
-
轻量系统与小型系统的Serial各产品在实现过程中可能有自己特殊的算法,因此OpenHarmony支持在目录下hal_sys_param.c文件中通过HalGetSerial()接口自定算法来获取Serial。
hals/utils/sys_param
-
-
编译宏定义的形式获取参数,目前主要在轻量系统与小型系统中用到,例如:
defines = [ "INCREMENTAL_VERSION=\"${ohos_version}\"", "BUILD_TYPE=\"${ohos_build_type}\"", "BUILD_USER=\"${ohos_build_user}\"", "BUILD_TIME=\"${ohos_build_time}\"", "BUILD_HOST=\"${ohos_build_host}\"", "BUILD_ROOTHASH=\"${ohos_build_roothash}\"", ]
-
在BUILD.gn中定义,可参考文件,例如:
/base/startup/init/services/etc/BUILD.gn
if (target_cpu == "arm64") { extra_paras += [ "const.product.cpu.abilist=arm64-v8a" ] } if (build_variant == "user") { extra_paras += [ "const.secure=1", "const.debuggable=0", ] } else if (build_variant == "root") { extra_paras += [ "const.secure=0", "const.debuggable=1", ] } if (device_type != "default") { extra_paras += [ "const.product.devicetype=${device_type}", "const.build.characteristics=${device_type}", ] } module_install_dir = "etc/param"
特别说明:
-
小型系统的产品需要在中添加vendor.para的编译,具体如下:
hals/utils/sys_param/BUILD.gn
copy("vendor.para") { sources = [ "./vendor.para" ] outputs = [ "$root_out_dir/vendor/etc/param/vendor.para" ] }
-
轻量系统的产品由于没有文件系统,在编译时会把hal_sys_param.c和vendor.para文件转化为头文件,编译时直接编译到系统中。
最后
有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有必要的。
这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。
希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!
如果你是一名有经验的资深Android移动开发、Java开发、前端开发、对鸿蒙感兴趣以及转行人员,可以直接领取这份资料
获取这份完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料
鸿蒙(HarmonyOS NEXT)最新学习路线
-
HarmonOS基础技能
- HarmonOS就业必备技能
- HarmonOS多媒体技术
- 鸿蒙NaPi组件进阶
- 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学习资料
总结
总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。