OpenHarmony中默认export 添加环境变量
笔者最近遇到一个问题,需要将cpython的环境变量默认添加至OpenHarmony中,每次只能通过export来临时设置。笔者花了一点时间研究,于是将方法分享如下
文章涉及开发环境
OpenHarmony 5.1.0开发环境
分析OpenHarmony已经有的环境变量是如何添加上去的
# env
_=/bin/env
currentslot=1381256773
HOME=/
PULSE_STATE_PATH=/data/data/.pulse_dir/state
UV_THREADPOOL_SIZE=16
TMP=/data/local/mtp_tmp/
PULSE_RUNTIME_PATH=/data/data/.pulse_dir/runtime
TERM=linux
default_boot_device=fe310000.sdhci
bootslots=0
TMPDIR=/data/local/tmp
PATH=/usr/local/bin:/bin:/usr/bin
hardware=rk3568
UBSAN_OPTIONS=print_stacktrace=1:print_module_map=2:log_exe_name=1
DOWNLOAD_CACHE=/data/cache
OHOS_SOCKET_hdcd=12
通过执行env
命令可以发现PULSE_STATE_PATH=/data/data/.pulse_dir/state
这条环境变量很特殊,我们从这里入手。在源码中搜索代码
可以知道5.1.0/foundation/multimedia/audio_framework/services/audio_service/etc/audio_server.cfg中含有"export PULSE_STATE_PATH /data/data/.pulse_dir/state",
可以知道在audio_server中会自动设置PULSE_STATE_PATH 的环境变量
新建cfg开机自启动文件默认添加环境变量
新建python_oh_arm.cfg文件,添加笔者想添加的环境变量。然后讲文件推送到开发板/system/etc/init目录下
{
"import" : [],
"jobs" : [{
"name" : "init",
"cmds" : [
"export PYTHONHOME /system/bin",
"export PYTHONPATH /system/lib/python3.8:/system/lib/python3.8/lib-dynload",
"export LD_LIBRARY_PATH /system/lib/python3.8/lib-dynload",
"export PATH /usr/local/bin:/bin:/usr/bin:/bin/bin:/system/bin/bin",
"start python_oh"
]
}
],
"services" : [{
"name" : "python_oh",
"path" : ["/system/bin/ls"]
}
]
}
效果
笔者添加的环境变量,已经开机默认加入系统中
如果是手动执行,笔者设置的环境变量是
export PYTHONHOME=/system/bin
export PYTHONPATH=/system/lib/python3.8:/system/lib/python3.8/lib-dynload
export LD_LIBRARY_PATH=/system/lib/python3.8/lib-dynload:$LD_LIBRARY_PATH
export PATH=$PATH:/bin/bin
export PATH=$PATH:/system/bin/bin
注意
-
需要注意的是,在cfg添加环境变量,例如
export PYTHONHOME=/system/bin
这一句,需要在cfg中写成export PYTHONHOME /system/bin
。不能有=
,否则不生效 -
在设置
export PATH=$PATH:/bin/bin
和export PATH=$PATH:/system/bin/bin
时,需要在cfg写成export PATH /usr/local/bin:/bin:/usr/bin:/bin/bin:/system/bin/bin
。其中/usr/local/bin:/bin:/usr/bin
是OpenHarmony中原有的。/bin/bin:/system/bin/bin
是笔者追加的
更多推荐
所有评论(0)