打包文档4-目录需要写入权限的游戏打包

0 .打包原理

可以打包游戏目录需要写权限的程序基于以下事实:
1. linux允许连续的符号连接。
2. 符号连接记录了目录文件或目录的名称,可以是相对目录,也可以是绝对目录。
3. appimage的默认挂载目录是/tmp/.mount{游戏文件hash值}。
4. 不管是文件系统中的shell,还是打包入AppImage的shell,都可以通过$HOME变量找到玩家系统的家目录。

工作原理:
1. 把游戏中需要写权限的文件(包括目录),替换为执行相对目录 /tmp/{文件名}的符号连接。这时候符号连接因为没有源文件,这个符号连接是broken的,无法使用。
2. 在游戏启动脚本中,建立 /tmp/{文件名} 的符号连接,指向$HOME下的文件(这个文件可以在脚本中自由控制),这样就建立了一个有游戏中需要写权限的文件,指向/tmp/{文件名},然后又指向了$HOME/[自己指定的目录结构]/{文件名}这样一个两级符号连接,对游戏内文件的操作(读取写入)都变成了$HOME下的操作。
3. 在启动脚本中启动游戏,游戏退出后,删除/tmp下的中间级符号连接做好清理工作。

符号连接的形式如下

游戏中文件 指向   /tmp/{文件}  指向 $HOME/[自定义目录]/{文件}

说明: 这一步操作要在启动脚本中进行,使用shell可以拿到执行用户的$home目录

1.查找游戏修改了哪些所在目录的文件

修改find-local-data-and-files.sh脚本,进行配置。运行脚本启动游戏,启动游戏后,在游戏中使用尽量多的功能,然后退出游戏。这样游戏所修改的目录和文件被保存到 local-data-files 修改的目录保存到 local-data-dires 中

2.创建软链接

修改build-readlink.sh脚本,进行配置。运行脚本创建软链接。

3.制作启动脚本

下载 start.sh,放在游戏根目录内,按照实际情况添加游戏名,测试运行,即可。

4.打包

继续打包为AppImage即可。

注:点击“下载游戏”,即可下载所有三个脚本。

版本说明 下载量 日期 容量 下载
脚本下载18-03-09null下载
共1个文件 ... ... ... ...
  • 还没有任何评论,你来说两句吧

  • 你需要先登录才能发表评论
    投递游戏
    • 购买/源码:购买/clone
    • 创建作者:github_supermanmsc
    • 添加时间:2017-11-22
    • 修改者:Lichengq
    • 更新时间:2018-05-9
    • 游戏标签:
    • 运行配置