harmony 鸿蒙DeviceInfo Adaptation

  • 2023-06-24
  • 浏览 (579)

DeviceInfo Adaptation

DeviceInfo parameters and mapping APIs

Parameter API Description
const.product.devicetype const char* GetDeviceType(void) Obtains the device type.
const.product.manufacturer const char* GetManufacture(void) Obtains the device manufacturer.
const.product.brand const char* GetBrand(void) Obtains the device brand.
const.product.name const char* GetMarketName(void) Obtains the device marketing name.
const.build.product const char* GetProductSeries(void) Obtains the device series name.
const.product.model const char* GetProductModel(void) Obtains the device authentication model.
const.software.model const char* GetSoftwareModel(void) Obtains the device software model.
const.product.hardwareversion const char* GetHardwareModel(void) Obtains the device hardware model.
const.product.hardwareprofile const char* GetHardwareProfile(void) Obtains the device hardware profile.
ohos.boot.sn const char* GetSerial(void) Obtains the serial number (SN) of the device.
const.product.software.version const char* GetDisplayVersion(void) Obtains the software version visible to users.
const.product.bootloader.version const char* GetBootloaderVersion(void) Obtains the bootloader version of the device.
const.product.udid int GetDevUdid(char *udid, int size) Obtains the UDID of the device through DeviceInfo or through calculation if the attempt to obtain the UDID through DeviceInfo fails.
const char *AclGetSerial(void); Obtains the SN of the device (with ACL check).
int AclGetDevUdid(char *udid, int size); Obtains the UDID of the device (with ACL check).

DeviceInfo Source

Adaptation of OHOS Fixed-value Parameters

  • OHOS fixed-value parameters:
  const.ohos.version.security_patch
  const.ohos.releasetype
  const.ohos.apiversion
  const.ohos.fullname
  • Description of adaptation:

OHOS fixed-value parameters are filled by the OHOS and do not need to be adapted by vendors. Currently, these parameters are defined in the /base/startup/init/services/etc/param/ohos_const/ohos.para file.

Adaptation of Vendor Fixed-value Parameters

  • Vendor fixed-value parameters:
  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
  ... ...

  • Description of adaptation:

Adapt parameters in the vendor directory based on actual requirements.

(1) Take RK3568 as an example for standard-system devices. Adapt parameters in the /vendor/hihope/rk3568/etc/para/hardware_rk3568.para file and install the file to the specified directory.

   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) For mini- and small-system devices, adapt parameters in the respective hals/utils/sys_param/vendor.para file. For example:

```
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"
... ...
```

Adaptation of Vendor Dynamic-value Parameters

  • Currently, three ways are provided to obtain vendor dynamic-value parameters: cmdline, macro definition, and BUILD.gn definition.

    1. cmdline: Values that are read from cmdline include ohos.boot.hardware, ohos.boot.bootslots, and ohos.boot.sn. The way to obtain ohos.boot.sn differs according to the system type as follows:

(1) For standard-system devices: ohos.boot.sn is read from cmdline (generated by U-Boot). If the SN is obtained, the value is directly read; if the file path is obtained, the value is read from the file. If the preceding attempt fails, the value is read from the default SN files; that is, /sys/block/mmcblk0/device/cid and /proc/bootdevice/cid.

(2) For mini- and small-system devices: These devices may come with their own special algorithms. Therefore, HalGetSerial() can be used to obtain the SN from the hal_sys_param.c file in the hals/utils/sys_param directory.

  1. Macro definition: Obtain parameter values by compiling macro definitions. Currently, this mode is available only for mini- and small-system devices. For example:
    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}\"",
  ]
  1. BUILD.gn definition: Obtain parameter values from the /base/startup/init/services/etc/BUILD.gn file. For example:
    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"
  }

Notes

(1) For small-system devices, add the compilation of vendor.para to the hals/utils/sys_param/BUILD.gn file.

  copy("vendor.para") {
    sources = [ "./vendor.para" ]
    outputs = [ "$root_out_dir/vendor/etc/param/vendor.para" ]
  }

(2) For mini-system devices, a file system is not available and therefore, the hal_sys_param.c and vendor.para files are converted into header files and are compiled to the system during compilation.

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Subsystems

harmony 鸿蒙AI Framework Development Guide

harmony 鸿蒙NNRt Access Adaptation

harmony 鸿蒙Application Privilege Configuration

harmony 鸿蒙Development Example

harmony 鸿蒙Setting Up a Development Environment

harmony 鸿蒙Development Guidelines

harmony 鸿蒙Application Framework Overview

harmony 鸿蒙ArkCompiler Development

harmony 鸿蒙Custom Window Title Bar Development

0  赞