Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
b016e4ba
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b016e4ba
编写于
12月 26, 2022
作者:
C
chengjinsong2
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加deviceInfo的适配说明
Signed-off-by:
N
chengjinsong2
<
chengjinsong2@huawei.com
>
上级
13f1d527
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
158 addition
and
0 deletion
+158
-0
zh-cn/device-dev/subsystems/subsys-boot-init-deviceInfo.md
zh-cn/device-dev/subsystems/subsys-boot-init-deviceInfo.md
+158
-0
未找到文件。
zh-cn/device-dev/subsystems/subsys-boot-init-deviceInfo.md
0 → 100644
浏览文件 @
b016e4ba
# DeviceInfo适配说明
## 启动子系统设备信息说明
| 系统参数 | 接口名 | 描述 |
|----------|------- |------|
| 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目录下适配。
(1)L2以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"
}
```
(2)L0与L1 在产品对应的 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中定义。
1、cmdline 中读取的值有:ohos.boot.hardware, ohos.boot.bootslots, ohos.boot.sn等,其中ohos.boot.sn的获取略有不同,具体如下:
(1)L2 Serial从参数ohos.boot.sn读取,ohos.boot.sn 参数值的获取方式:首先从cmdline (由uboot生成)获取,如果获取到的是sn值则直接读取,若获取的是文件路径,则从文件中读取;当获取不到时从默认的Sn文件读取,默认文件为:/sys/block/mmcblk0/device/cid;/proc/bootdevice/cid。
(2)L0 和 L1的 Serial各产品在实现过程中可能有自己特殊的算法,因此我们支持在hals/utils/sys_param目录下hal_sys_param.c文件中通过HalGetSerial()接口自定算法来获取Serial。
2、编译宏定义的形式获取参数,目前主要在L0 和 L1中用到,例如:
```
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}\"",
]
```
3、在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"
}
```
#### 特别说明:
(1) L1的产品需要在hals/utils/sys_param/BUILD.gn中添加vendor.para的编译,具体如下:
```
copy("vendor.para") {
sources = [ "./vendor.para" ]
outputs = [ "$root_out_dir/vendor/etc/param/vendor.para" ]
}
```
(2) L0的由于没有文件系统,在编译时会把hal_sys_param.c和vendor.para文件转化为头文件,编译时直接编译到系统中。
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录