#!/usr/bin/env bash set -Eeuo pipefail umask 077 [[ $(id -u) == 0 ]] || { echo '请使用 sudo bash 运行安装脚本' >&2; exit 1; } [[ $(uname -s) == Linux ]] || { echo '仅支持 Linux' >&2; exit 1; } case "$(uname -m)" in aarch64|arm64) arch=arm64; expected=3638609ae0ba5c065b476bf90193e1bdf237bfdb38cbefcd4d2657cfc34f7f44 ;; x86_64|amd64) arch=amd64; expected=00297c2d08eea61623fc8f893ea1a1ac2facfdae82c262c7b243584d1fbc8ef9 ;; *) echo '仅支持 ARM64 / AMD64' >&2; exit 1 ;; esac base=${SCRCPYPROXY_DOWNLOAD_BASE:-https://github.com/OffroadOps/scrcpyproxy/releases/download/v0.4.0} temp_dir=$(mktemp -d /tmp/scrcpyproxy-download.XXXXXX) cleanup() { case "$temp_dir" in /tmp/scrcpyproxy-download.*) rm -rf -- "$temp_dir" ;; esac; } trap cleanup EXIT echo "正在下载 scrcpyproxy linux-$arch(包含两个内核和路由数据)…" if ! curl --fail --location --retry 5 --retry-delay 3 --connect-timeout 15 --max-time 900 "$base/scrcpyproxy-linux-$arch.tar.gz" -o "$temp_dir/package.tar.gz"; then echo '下载失败。私有仓库需先在有权限的电脑下载安装包,再复制 .run 文件离线安装。也可设置 SCRCPYPROXY_DOWNLOAD_BASE 为自己的镜像地址。' >&2 exit 1 fi echo "$expected $temp_dir/package.tar.gz" | sha256sum -c - mkdir "$temp_dir/package" tar -xzf "$temp_dir/package.tar.gz" -C "$temp_dir/package" --no-same-owner bash "$temp_dir/package/install-local.sh" "$@"