#!/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=cfb979e07814f37c772d67bda8a722fdfa4e1ccd7121c705b76b87daf841efd9 ;; x86_64|amd64) arch=amd64; expected=ec9b4432e44b0a02525d1384a98975dac93629272fe62c708e0e1c0fcb7f993c ;; *) echo '仅支持 ARM64 / AMD64' >&2; exit 1 ;; esac base=${SCRCPYPROXY_DOWNLOAD_BASE:-https://ny-1s.enzonix.com/bucket-1776-2431/scrcpyproxy/v0.4.1} 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" "$@"