配置H2D文件传输白名单
简介
Device默认开启了H2D(Host to Device)文件传输时的白名单校验功能,对传输文件进行大小、存放目录及权限的校验,仅在白名单列表中的文件才允许使用HDC接口从Host传输到Device。
不同Device加载不同业务包的场景下,开发者需要调用HDC接口将业务包传输到Device,此种场景下,开发者需要参考本章节进行H2D文件传输白名单的配置。
操作步骤
H2D白名单校验文件为Device侧的“/etc/hdcFileTransWhiteList.cfg”文件,您需要在制作Device侧文件系统时修改此文件,文件系统的解压缩及压缩方法可参见定制文件系统,下面仅描述此文件的配置方法。
- 切换到解压后的Device侧文件系统所在目录。
cd /usr/local/filesys_modify/tempdir
- 执行如下命令为白名单校验文件“hdcFileTransWhiteList.cfg”添加写权限。
cd etc
chattr -i hdcFileTransWhiteList.cfg
chmod +w hdcFileTransWhiteList.cfg
- 编辑白名单校验文件“hdcFileTransWhiteList.cfg”,追加需要进行传输的文件的校验规则。
- 请在此文件中追加白名单校验规则,不允许修改文件中预置校验规则,否则会造成系统异常。
- 此文件中校验规则总数不能超过32条(含预置校验规则),多出的校验规则无法生效。
- 为避免文件被误修改,建议修改前先备份此文件。
请在此文件中追加需要进行传输的文件的校验规则,配置格式如下:
<文件名> <文件存储目的路径> <文件名匹配规则> <文件大小上限> <文件数量> <文件传输用户权限>
表1 参数说明 参数
说明
文件名
字母、下划线、数字的组合,不能超过128个字节。
文件存储目的路径
文件名匹配规则
有如下取值,当前请开发者配置为“1”。- 1:代表全字匹配。
- 0:代表部分匹配,部分匹配规则由于较为复杂,当前暂不建议开发者使用。
文件大小的上限
允许传输文件的大小的上限,单位为Byte。
文件的数量
全字匹配模式下,请配置为“1”,表示此条配置规则仅匹配一个文件,即“文件名”字段配置的文件。
文件传输用户权限
是否需要使用root用户进行传输,有以下两种取值:- 1:是,需要使用root用户进行传输。
- 0:否,不要求必须使用root用户进行传输,任意用户都可以。
配置示例:
service.tar.gz /service 1 55428800 1 0
- 取消hdcFileTransWhiteList.cfg文件的写权限。
chmod -w hdcFileTransWhiteList.cfg
chattr +i hdcFileTransWhiteList.cfg
补充说明
开发者也可以通过重命名白名单校验文件(hdcFileTransWhiteList.cfg)的方式关闭H2D的校验功能,但H2D文件传输的白名单校验功能关闭后,从Host传输到Device的文件不会进行任何限制,需要用户自行控制文件数量与大小,否则会存在Device侧内存空间耗尽,导致应用程序申请不到内存的风险。
关闭H2D校验功能的参考步骤如下:
- 切换到解压后的Device侧文件系统所在目录。
cd /usr/local/filesys_modify/tempdir
- 执行如下命令为白名单校验文件“hdcFileTransWhiteList.cfg”添加写权限。
cd etc
chattr -i hdcFileTransWhiteList.cfg
- 重命名白名单校验文件。
mv hdcFileTransWhiteList.cfg hdcFileTransWhiteList.cfg_back