环境与全局环境
XXTouch Elite 的运行时根目录为 /usr/local/xxtouch
,其中包含了所有的配置文件、守护进程日志、内置及第三方的 Lua 扩展等。
XXTouch Elite 的用户根目录为 /var/mobile/Media/1ferver
,你开发的脚本、输出的日志和数据、所依赖的资源和配置文件,都应该放置在此目录下。你可以在 utils.paths
表中获取这些路径:
utils.paths
{
MEDIA_UID = 501,
MEDIA_GID = 501,
MEDIA_ROOT = "/var/mobile/Media/1ferver", -- 用户根目录
MEDIA_LUA_DIR = "/var/mobile/Media/1ferver/lua", -- 用户脚本根目录
MEDIA_LUA_SCRIPTS_DIR = "/var/mobile/Media/1ferver/lua/scripts", -- 用户脚本目录
MEDIA_BIN_DIR = "/var/mobile/Media/1ferver/bin", -- *可执行文件目录
MEDIA_LIB_DIR = "/var/mobile/Media/1ferver/lib", -- *动态库目录
MEDIA_LOG_DIR = "/var/mobile/Media/1ferver/log", -- 日志目录
MEDIA_CONF_DIR = "/var/mobile/Media/1ferver/conf", -- *配置文件目录
MEDIA_WEB_DIR = "/var/mobile/Media/1ferver/web", -- Web 静态资源目录
MEDIA_IMG_DIR = "/var/mobile/Media/1ferver/img", -- 图片目录
MEDIA_RES_DIR = "/var/mobile/Media/1ferver/res", -- 资源目录
MEDIA_CACHES_DIR = "/var/mobile/Media/1ferver/caches", -- 缓存目录
MEDIA_SNIPPETS_DIR = "/var/mobile/Media/1ferver/snippets", -- 代码片段目录
MEDIA_UICFG_DIR = "/var/mobile/Media/1ferver/uicfg", -- UI 配置目录
MEDIA_TESSDATA_DIR = "/var/mobile/Media/1ferver/tessdata", -- Tesseract 数据目录
LOG_SYS = "/var/mobile/Media/1ferver/log/sys.log", -- 系统日志
LOG_LAUNCHER_OUTPUT = "/var/mobile/Media/1ferver/log/script_output.log", -- 脚本输出日志
LOG_LAUNCHER_ERROR = "/var/mobile/Media/1ferver/log/script_error.log", -- 脚本错误日志
}
危险
- 你不应该篡改、删除运行时根目录下的任何内容。
- 你不应该篡改、删除用户根目录下带
*
号的子目录(可执行文件目录、动态库目录和配置文件目录)。
权限及所有者
XXTouch Elite 脚本进程由 root
用户启动。所以,你在脚本中创建的文件,其默认所有者为 root
。
所有写入应用容器或用户根目录的文件,都应当设置为 rw-r--r--
的权限,即 0644
;所有创建在应用容器或用户根目录当中的子目录,都应当设置为 rwxr-xr-x
,即 0755
。并且应当设置为 mobile
所有者和 mobile
所属组,即 501
。为保证效率,XXTouch Elite 不会帮你做这些事。你应当使用 luaposix
库来设置文件的权限及所有者:
local posix = require("posix")
local unistd = require("posix.unistd")
local my_path = utils.paths.MEDIA_LUA_DIR .. "/cloud_cc.lua"
nLog(posix.chmod(my_path, "rw-r--r--"))
nLog(unistd.chown(my_path,
utils.paths.MEDIA_UID,
utils.paths.MEDIA_GID))
警告
- 不正确的文件系统权限或所有者可能会导致你的脚本无法正常运行、应用闪退、操作系统异常等诸多问题。