配置H2D文件传输白名单

简介

Device默认开启了H2D(Host to Device)文件传输时的白名单校验功能,对传输文件进行大小、存放目录及权限的校验,仅在白名单列表中的文件才允许使用HDC接口从Host传输到Device。

不同Device加载不同业务包的场景下,开发者需要调用HDC接口将业务包传输到Device,此种场景下,开发者需要参考本章节进行H2D文件传输白名单的配置。

操作步骤

H2D白名单校验文件为Device侧的“/etc/hdcFileTransWhiteList.cfg”文件,您需要在制作Device侧文件系统时修改此文件,文件系统的解压缩及压缩方法可参见定制文件系统,下面仅描述此文件的配置方法。

  1. 切换到解压后的Device侧文件系统所在目录。

    cd /usr/local/filesys_modify/tempdir

  2. 执行如下命令为白名单校验文件“hdcFileTransWhiteList.cfg”添加写权限。

    cd etc

    chattr -i hdcFileTransWhiteList.cfg

    chmod +w hdcFileTransWhiteList.cfg

  3. 编辑白名单校验文件“hdcFileTransWhiteList.cfg”,追加需要进行传输的文件的校验规则。

    • 请在此文件中追加白名单校验规则,不允许修改文件中预置校验规则,否则会造成系统异常。
    • 此文件中校验规则总数不能超过32条(含预置校验规则),多出的校验规则无法生效。
    • 为避免文件被误修改,建议修改前先备份此文件。

    请在此文件中追加需要进行传输的文件的校验规则,配置格式如下:

    <文件名> <文件存储目的路径> <文件名匹配规则> <文件大小上限> <文件数量> <文件传输用户权限>

    表1 参数说明

    参数

    说明

    文件名

    字母、下划线、数字的组合,不能超过128个字节。

    文件存储目的路径

    • 配置为“*”,代表存储在Device侧可信路径下。

      默认可信路径为:/home/HwHiAiUser/hdcd/devicex,devicex目录需要根据当前Device设备的id号确定,如果当前Device的设备ID是“0 ”,则为“device0”。

    • 配置为/filepath,代表存储在Device侧“可信路径/filepath”目录下。

      其中filepath需要为已存在的路径,例如配置为“/temp”,则:

      代表目的存储路径为:/home/HwHiAiUser/hdcd/devicex/temp,devicex目录需要根据当前Device设备的id号确定,如果当前Device的设备ID是“0 ”,则为“device0”。

    文件名匹配规则

    有如下取值,当前请开发者配置为“1”。
    • 1:代表全字匹配。
    • 0:代表部分匹配,部分匹配规则由于较为复杂,当前暂不建议开发者使用。

    文件大小的上限

    允许传输文件的大小的上限,单位为Byte。

    文件的数量

    全字匹配模式下,请配置为“1”,表示此条配置规则仅匹配一个文件,即“文件名”字段配置的文件。

    文件传输用户权限

    是否需要使用root用户进行传输,有以下两种取值:
    • 1:是,需要使用root用户进行传输。
    • 0:否,不要求必须使用root用户进行传输,任意用户都可以。

    配置示例:

    service.tar.gz /service 1 55428800 1 0

  4. 取消hdcFileTransWhiteList.cfg文件的写权限。

    chmod -w hdcFileTransWhiteList.cfg

    chattr +i hdcFileTransWhiteList.cfg

补充说明

开发者也可以通过重命名白名单校验文件(hdcFileTransWhiteList.cfg)的方式关闭H2D的校验功能,但H2D文件传输的白名单校验功能关闭后,从Host传输到Device的文件不会进行任何限制,需要用户自行控制文件数量与大小,否则会存在Device侧内存空间耗尽,导致应用程序申请不到内存的风险。

关闭H2D校验功能的参考步骤如下:

  1. 切换到解压后的Device侧文件系统所在目录。

    cd /usr/local/filesys_modify/tempdir

  2. 执行如下命令为白名单校验文件“hdcFileTransWhiteList.cfg”添加写权限。

    cd etc

    chattr -i hdcFileTransWhiteList.cfg

  3. 重命名白名单校验文件。

    mv hdcFileTransWhiteList.cfg hdcFileTransWhiteList.cfg_back