移植案例与原理 - startup子系统之syspara_lite系统属性部件

系统属性部件syspara_lite负责提供获取与设置操作系统相关的系统属性,包括默认系统属性、OEM厂商系统属性和自定义系统属性。为满足OpenHarmony产品兼容性规范,产品解决方案需要实现获取设备信息的接口,如:产品名、品牌名、厂家名等,同时提供设置/读取系统属性的接口。本文介绍下移植开发板时如何适配系统属性部件syspara_lite,并介绍下相关的运行机制原理。系统属性部件syspara_lite包含系统参数特性syspara_lite和token。系统属性部件syspara_lite定义在build\lite\components\startup.json。源代码目录如下:

base/startup/syspara_lite/    # 系统属性部件
├── frameworks                # 系统属性部件源文件目录
├── hals                      # 系统属性部件硬件抽象层头文件目录
└── interfaces                # 系统属性部件对外接口目录

1、系统参数syspara适配

适配启动恢复子系统startup的syspara_lite部件的一个实例vendor\bestechnic\display_demo\config.json的代码片段如下,⑴处的配置项enable_ohos_startup_syspara_lite_use_posix_file_api设置为true,下文通过分析syspara_lite部件的代码来解释。

  {
  "product_name": "display_demo",
    ......
  "subsystems": [
    {
    ......
    {
      "subsystem": "startup",
      "components": [
        {
          "component": "bootstrap_lite"
        },
        {
          "component": "syspara_lite",
          "features": [
⑴           "enable_ohos_startup_syspara_lite_use_posix_file_api = true"
          ]
        }
      ]
    },
    ......
  ],
  "vendor_adapter_dir": "",
  "product_adapter_dir": "//vendor/bestechnic/display_demo/hals",
    ......
}

我们知道,syspara_lite部件支持获取和设置操作系统的参数,当设置系统参数时,系统参数会最终写到文件中进行持久化保存。在轻量系统中,文件操作相关接口有POSIX接口与HalFiles接口这两套实现。POSIX文件系统接口代码位置kernel\liteos_m\kal\libc\musl\fs.c,HalFiles文件系统接口位置为utils\native\lite\file\src\file_impl_hal\file.c。当对接内核的文件系统,采用POSIX相关的接口时,需要在features字段中需要增加enable_ohos_startup_syspara_lite_use_posix_file_api = true。如果对接HalFiles相关的接口,则无须修改。enable_ohos_startup_syspara_lite_use_posix_file_api默认为false,定义在文件base\startup\syspara_lite\frameworks\parameter\config.gni。我们通过看下编译配置文件来了解下实现的原理机制,打开文件base\startup\syspara_lite\frameworks\parameter\src\BUILD.gn,片段如下。

⑴处解释了上文的配置参数enable_ohos_startup_syspara_lite_use_posix_file_api。⑵处依赖产品解决方案中的适配的sys_param实现代码。ohos_product_adapter_dir是产品解决方案config.json中的配置项,该配置项一遍设置为"hals"。sys_param实现代码文件的路径一遍为"hals/utils/sys_paramn/hal_sys_param.c",并且同级目录的BUILD.gn文件中的静态库名称必须为hal_sysparam。⑶处表示如果需要使用安全函数,则需要配置项enable_ohos

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值