这个readme介绍assets文件夹中文件的制作方式。
assets.zip中的文件:
- Xserver XSDL, pulseaudio相关文件。直接从Xserver XSDL的apk中的lib解包获得,并还原了名称。
- Tmoe Linux, debian包来源,制作了容器文件xa*
- getifaddrs_bridge_server,见下面的介绍和getifaddrs_bridge子文件夹
jniLibs中的文件
除libexec_pulseaudio.so(pulseaudio可执行文件)来自Xserver XSDL的apk外,所有文件均通过termux-packages构建。见这个修改后的仓库
运行scripts/generate-bootstraps.sh即可获得bootstraps压缩包,其中会包含busybox、proot、tar、virglrenderer的可执行文件和依赖库。将可执行文件全部重命名为libexec_xxx.so的格式,将依赖库全部抹去版本号,放到jniLibs/arm64-v8a。
运行build-package.sh proot,可在output文件夹找到loader和loader32,重命名为libproot-loader.so和libproot-loader32.so,放到jniLibs/arm64-v8a。
patch.tar.gz中的文件:
extra/getifaddrs_bridge_client_lib.so:
在安卓13以上的系统中,proot容器无权使用默认的getifaddrs,而这个库包含了一个getifaddrs实现。
linux在需要数据时,使用socket通知位于安卓的getifaddrs_bridge_server,让getifaddrs_bridge_server执行getifaddrs函数,并将结构体数据序列化后发送回linux端,这边接收数据并反序列化还原成指针结构体。简单来说就是用安卓的getifaddrs代替linux的getifaddrs。
源码和编译信息在getifaddrs_bridge文件夹查看。
extra/install-hangover, extra/install-hangover-stable:
这些是用于Windows应用支持的Hangover安装脚本。
extra/chn_fonts.reg:
修复wine显示方块字的注册表文件。
extra/libvulkan_freedreno.so, extra/freedreno_icd.aarch64.json:
extra/cmatrix
快捷指令的彩蛋。原本放在容器里,但显然放这里更为合适
extra/tiny_virtual_mic
麦克风客户端。实现见tiny_virtual_mic.c
caj, edraw
这些分别是cajviewer,亿图图示的补丁
- 亿图图示补丁的库文件是在小小电脑上下载了Qt对应版本源码后编译得到的;
- 编译进行了两次,第一次直接编译,可以得到Gui和Widgets两个库。第二次编译带上XcbQpa,虽然会编译失败,但在这之前就可以得到XcbQpa的库。
font
小赖字体用于修复wine的方块字 其他字体用于避免wps报字体缺失的错误