#/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