uengine-runner/uengine-installer

158 lines
7.1 KiB
Plaintext
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#/bin/bash
# 判断安装条件
CheckEnv(){
# 检测是不是 Deepin
lsb_release -i | grep -i deepin
if [[ $? == 0 ]]; then
zenity --error --no-wrap '--text=您的系统无法安装 UEngine原因此脚本不支持 Deepin'
exit
fi
# 检测是不是 UOS
lsb_release -i | grep -i uos
if [[ $? == 0 ]]; then
zenity --error --no-wrap '--text=您的系统无法安装 UEngine原因此脚本不支持 UOS'
exit
fi
# 检测架构
if [[ `arch` != "x86_64" ]]; then
zenity --error --no-wrap '--text=您的系统无法安装 UEngine原因暂不支持非 X86 架构'
exit
fi
# 检测内核
sudo modprobe binder_linux
lsmod | grep -e binder_linux
if [[ $? != 0 ]] && [[ -f /dev/binder ]] && [[ -f /dev/binderfs ]]; then
zenity --error --no-wrap '--text=您的系统无法安装 UEngine原因当前内核不支持 binder 模块,请安装支持 binder 模块的 Linux 内核'
exit
fi
# 检测 dtk 版本
aptDtkVersion=`apt show libdtkcore5 | grep Version`
newestDtkVersion=`echo ${aptDtkVersion##*Version: }`
echo 当前 apt 源最新的 dtk 版本:$newestDtkVersion
#kernel=`uname -r`
python3 "${programPath}/CompareVersion.py" "${newestDtkVersion}" "5.5"
if [[ $? != 0 ]]; then
zenity --error --no-wrap "--text=提示:您当前的 dtk 版本过老,请更新 dtk 版本后再试(版本需要大于等于 5.5),可以从 http://dtk.gfdgdxi.top 获取编译好的 dtk"
exit
fi
#exit
}
programPath=$(cd $(dirname $0); pwd)
# 先判断是否符合安装条件
CheckEnv
echo 1
#exit
# 在 Shenmo 制作的脚本的基础上进行了修改,修复在 Wayland 下运行错误和无法安装程序的问题
# 建议在 Ubuntu 22.04 及以上版本安装,最好在此之前先安装星火应用商店并将系统和星火应用商店更新到最新版本
#is_tar_checked="0"
rm -rf /tmp/uengine
# 不再从网盘下载,直接从 Gitlink 拉取安装包
#until [ "$is_tar_checked" = "1" ];do
#echo "请拖入uengine.tar.xz并回车确认,可在 https://cowtransfer.com/s/44656ada129e42 下载获取。"
#read tar_path
mkdir -p /tmp/uengine
# 区分是下载 Root 镜像还是普通镜像
if [[ $1 == "SuperSU" ]]; then
aria2c -x 16 -s 16 -d /tmp/uengine -o uenginetar.xz https://sourceforge.net/projects/uengine-runner/files/UEngine/uengine2.1.2.2007-supersu.tar.xz/download
else
aria2c -x 16 -s 16 -d /tmp/uengine -o uenginetar.xz https://sourceforge.net/projects/uengine-runner/files/UEngine/uengine2.1.2.2010.tar.xz/download
fi
tar_path="/tmp/uengine/uenginetar.xz"
tar_path=`echo "$tar_path" | sed $'s/\'//g'`
# 忽略md5校验
#echo "路径为 $tar_path"
#tar_md5sum=`md5sum $tar_path`
#tar_md5sum=`echo ${tar_md5sum%%/*}`
# 忽略 md5 校验
#if [ "$tar_md5sum" = "5668b6bb54d28406e527989348126982" ];then
#is_tar_checked="1"
#else
#echo $tar_md5sum
#echo "md5完整性检查失败请检查是否是这个文件"
#sleep 3
#reset
#fi
#done
#echo "完整性检查通过开始部署。部署过程会需要root权限完成后会要求重启。请注意不要在安装过程中安装或卸载其他软件"
echo "开始部署。部署过程会需要root权限完成后会要求重启。请注意不要在安装过程中安装或卸载其他软件"
cd /tmp
tar -xf "$tar_path"
if [[ $? != 0 ]]; then
echo 解压错误,无法继续
zenity --error --no-wrap '--text=安装错误,原因:资源解压失败!'
exit 1
fi
# 移除包内旧版的run_daemon.sh如果有的话
aria2c -x 16 -s 16 -d /tmp -o run_daemon.sh http://uengine-runner.gfdgdxi.top/shell/run_daemon.sh
if [[ $? == 0 ]]; then
# 如果下载成功,就使用下载好的 run_daemon.sh
if [[ -f /tmp/run_daemon.sh ]]; then
rm -rfv /tmp/uengine/run_daemon.sh
mv -v /tmp/run_daemon.sh /tmp/uengine/run_daemon.sh
fi
fi
# 拷贝到每个用户目录
for username in $(ls /home)
do
echo /home/$username
sudo mkdir -p /home/$username/uengine
sudo mkdir -p /home/$username/uengine-launch
sudo cp /tmp/uengine/run_daemon.sh /home/$username/uengine-launch
# 赋予可执行权限
sudo chmod +x /home/$username/uengine-launch/run_daemon.sh
#cp /tmp/uengine/launch_uengine.sh $username/uengine-launch
done
# 单独拷贝一份到 /usr/bin 下以做到每次开机自动化调用
sudo cp /tmp/uengine/run_daemon.sh /usr/bin/uengine-loading-ubuntu
sudo chmod 755 /usr/bin/uengine-loading-ubuntu
#mkdir -p $HOME/uengine
#mkdir -p $HOME/uengine-launch
#cp /tmp/uengine/run_daemon.sh $HOME/uengine-launch
#cp /tmp/uengine/launch_uengine.sh $HOME/uengine-launch
cd /tmp/uengine
# 刷新 APT 依赖防止出现问题
sudo apt update
/tmp/uengine/install.sh
# 安装所需依赖
sudo apt install -y libkf5globalaccel5 libqt5multimedia5 libqt5sensors5 libegl1-mesa-dev
# 启动内核 binder 模块
sudo modprobe binder_linux
sudo mkdir /dev/binderfs
sudo mount -t binder binder /dev/binderfs
# 用于修复 UEngine 在 Ubuntu 无法安装 APK 的问题
sudo mkdir -p /var/lib/uengine
sudo ln -s /data/uengine/data/data/ /var/lib/uengine/data
# 拷贝快捷方式
cd `dirname $0`
sudo cp uengine-loading-ubuntu.desktop /usr/share/applications
sudo cp uengine-loading-ubuntu.desktop /etc/xdg/autostart
sudo chmod 755 /etc/xdg/autostart/uengine-loading-ubuntu.desktop
# 检测最后安装是否成功
which uengine
if [[ $? != 0 ]]; then
# 安装失败
sudo rm /usr/share/applications/uengine-loading-ubuntu.desktop
sudo rm /etc/xdg/autostart/uengine-loading-ubuntu.desktop
sudo rm /usr/bin/uengine-loading-ubuntu
for username in $(ls /home)
do
echo /home/$username
sudo rm /home/$username/uengine-launch/run_daemon.sh
done
zenity --error --no-wrap '--text=抱歉UEngine 安装失败,已移除安装时进行的修改'
exit
fi
# 拷贝 binder loader
sudo cp "${programPath}/LoadingBinder/load.sh" /usr/bin/uengine-loading-binder -v
sudo chmod 777 -Rv /usr/bin/uengine-loading-binder
sudo cp "${programPath}/pkexec/com.deepin.pkexec.binder.loader.policy" /usr/share/polkit-1/actions/ -v
# echo "重启后在$HOME/uengine-launch执行launch_uengine.sh即可打开uengine守护进程。随后即可安装和使用安卓应用"
# 这里直接运行 run_daemon.sh运行 launch_uengine.sh 好像不行
echo "现在可以在$HOME/uengine-launch执行run_daemon.sh或在启动器手动运行或执行命令uengine-loading-ubuntu即可打开uengine守护进程。随后即可安装和使用安卓应用。"
echo "你需要在每次启动安卓应用之前打开这个脚本。打开后可安全关闭。"
echo "不过一般情况下会自动开启,无需手动启动。"
echo "推荐重启后再使用此 Android 环境。"
zenity --info --no-wrap "--text=安装完成!\n现在可以在$HOME/uengine-launch执行run_daemon.sh或在启动器手动运行\n或执行命令uengine-loading-ubuntu即可打开uengine守护进程。随后即可安装和使用安卓应用。\n你需要在每次启动安卓应用之前打开这个脚本。打开后可安全关闭。\n不过一般情况下会自动开启无需手动启动。\n推荐重启后再使用此 Android 环境。"
read