#!/bin/bash echo "正在更新软件包..." sudo apt update sudo apt upgrade -y REPO="AndreRH/hangover" API_URL="https://api.github.com/repos/$REPO/releases/latest" # 获取最新release的版本号并储存在变量中 latest_version=$(wget -qO- $API_URL | grep -oP '"tag_name": "\Khangover-\K([^"]+)' ) # 检查是否成功获取版本号 if [ -z "$latest_version" ]; then echo "无法获取到最新版本号。" exit 1 fi echo "最新版本: $latest_version" hangover_url="https://github.com/AndreRH/hangover/releases/download/hangover-${latest_version}/hangover_${latest_version}_debian12_bookworm_arm64.tar" mirror_sites=( "https://gh.llkk.cc/" "https://github.moeyy.xyz/" "https://mirror.ghproxy.com/" "" ) mkdir -p /tmp/hangover cd /tmp/hangover for mirror in "${mirror_sites[@]}"; do url="${mirror}${hangover_url}" echo "尝试从 $url 下载Hangover..." wget "${url}" -O hangover.tar if [ $? -eq 0 ]; then echo "成功下载Hangover" break fi if [ -z "$mirror" ]; then cd /tmp rm -rf /tmp/hangover echo "下载失败...退出安装..." exit fi done echo "正在安装Hangover..." tar xvf hangover.tar sudo apt install -y ./hangover*.deb if [ $? -ne 0 ]; then cd /tmp rm -rf /tmp/hangover echo "安装失败...退出安装..." exit 1 fi echo "正在初始化Wine..." wineboot --init echo "正在安装DXVK..." tar xvf dxvk-v*.tar.gz mv dxvk-v*/x32/* /home/tiny/.wine/drive_c/windows/syswow64 mv dxvk-v*/arm64ec/* /home/tiny/.wine/drive_c/windows/system32 echo "自动配置 DLL 覆盖..." WINEDLLOVERRIDES="d3d8=n,d3d9=n,d3d10core=n,d3d11=n,dxgi=n" wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v d3d8 /d native /f >/dev/null 2>&1 WINEDLLOVERRIDES="d3d8=n,d3d9=n,d3d10core=n,d3d11=n,dxgi=n" wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v d3d9 /d native /f >/dev/null 2>&1 WINEDLLOVERRIDES="d3d8=n,d3d9=n,d3d10core=n,d3d11=n,dxgi=n" wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v d3d10core /d native /f >/dev/null 2>&1 WINEDLLOVERRIDES="d3d8=n,d3d9=n,d3d10core=n,d3d11=n,dxgi=n" wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v d3d11 /d native /f >/dev/null 2>&1 WINEDLLOVERRIDES="d3d8=n,d3d9=n,d3d10core=n,d3d11=n,dxgi=n" wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v dxgi /d native /f >/dev/null 2>&1 echo "正在修复字体..." regedit "Z:\\home\\tiny\\.local\\share\\tiny\\extra\\chn_fonts.reg" && wine reg delete "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes" /va /f cd /tmp rm -rf /tmp/hangover echo "安装完成"