鸿蒙OpenHarmony【系统参数】子系统init启动引导组件

概述

功能简介

OHOS系统参数为各系统服务提供简单易用的键值对访问接口,使得各个系统服务可以通过各自的系统参数来进行业务功能的配置。

系统参数定义

每个子系统定义各自模块的系统参数,包括系统参数名称、默认值以及系统参数的权限访问信息。

系统参数定义文件
  • 系统参数定义文件后缀名为".para" ,其格式示例如下:

    const.product.name=OHOS-PRODUCT
    const.os.version.api=26
    const.telephony.enable=false|true
    
系统参数名(key)定义
  • 系统参数命名格式

    系统参数名称采用点分格式,由多段组成,每一段可以由字母、数字、下划线组成,总长度不超过96字节;系统参数名称分为两类:

    系统参数名称

    类别 名称 示例 说明
    参数名称 Parameter Name const.product.name 完整的系统参数名称,末尾不是"."。
    参数目录 Parameter Directory const.**. 以"."结尾,标识相同前缀的所有系统参数集合。
  • 系统参数类型

    系统参数一共分为三大类:

    系统参数分类

    类别 前缀 说明
    常量 const. 常量参数,一旦赋值后续不会再变更;值最大长度为4096字节(包括结束符)。
    可写 其它 可写参数,重启后丢失,值最大长度96字节(包括结束符)。
    可持久化 persist. 可写并可持久化保存参数,重启后不会丢失,值最大长度96字节(包括结束符)。

    每个系统参数名称总体格式如下:

    [ const | persist ].$sub_system.$desc
    java
    

    $sub_system为子系统或模块的名称。

    $desc为子系统或模块下参数的描述字符,可以为点分格式进行分级描述。

系统参数值(value)定义
  • 系统参数的赋值分为三大类:

系统参数赋值方式

类别 示例 说明
字符串 const.product.name=OHOS-PRODUCT 多行字符串需要通过引号扩起来。
数字 const.os.version.api=26 数字不需要。
布尔 const.telephony.enable=false 布尔型的可以为0,1,false,true。

系统参数权限设置

系统参数支持DAC和MAC访问控制。

默认权限

系统参数没有定义任何DAC,MAC权限时,其默认权限为:

[DAC] User [DAC] Group [DAC] UGO [MAC] SELinux Label
root root 775 default_param

Other进程对默认权限参数的访问行为列举如下:

操作 系统Native进程 系统应用进程 三方应用进程
get 允许 允许 允许
watch 允许 允许 允许
set 不允许 不允许 不允许
DAC访问控制权限设置
  • 系统参数DAC访问控制定义文件

    当前系统参数的访问权限控制通过自主访问控制(Discretionary Access Control)方式管理,访问权限定义文件后缀名为".para.dac" ,init下的文件路径为/base/startup/init/services/etc/param/ohos.para.dac,具体定义内容示例如下:

    const.product.              = root:root:0775
    persist.init.               = root:root:0775
    startup.appspawn.           = root:root:0750
    startup.uevent.             = ueventd:ueventd:0775
    

    如上所示,可以为相同前缀的所有系统参数定义一类访问权限信息,DAC信息通过":"分三段来描述,分别为参数的user,group以及UGO规则信息。

    UGO规则信息每一位的定义如下:

    图1 UGO规则信息

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

MAC访问控制权限设置
  • 添加selinux标签

    为系统参数添加selinux标签,首先需要在文件/base/security/selinux_adapter/sepolicy/base/public/parameter.te中定义标签,例如:

    type servicectrl_param, parameter_attr
    java
    

    标签定义完成后,在文件/base/security/selinux_adapter/sepolicy/base/public/parameter_contexts中添加和标签关联的系统参数前缀,这里以前缀ohos.servicectrl.为例:

    ohos.servicectrl.           u:object_r:servicectrl_param:s0
    java
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值