From d1d57bdc9fb25d794ccecab13f01722e022c5984 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=82=9F=E7=A9=BA=E7=9A=84=E6=97=A5=E5=B8=B8=E9=95=9C?= =?UTF-8?q?=E5=83=8F=E4=BB=93=E5=BA=93?= Date: Mon, 9 Jun 2025 10:30:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20shells/sony.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shells/sony.sh | 114 ++++++++++++++++++++++++------------------------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/shells/sony.sh b/shells/sony.sh index 7aa63de..71a5e26 100644 --- a/shells/sony.sh +++ b/shells/sony.sh @@ -118,12 +118,6 @@ install_netflix() { install_app_bundle $app_name_dir } -# 安装Disney+ -install_disney() { - local app_name_dir="disney" - install_app_bundle $app_name_dir -} - # 安装Fire TV版本Youtube install_youtube() { local apk_local_path="/tvhelper/apks/youtube.apk" @@ -157,32 +151,23 @@ install_youtube() { fi } -# 安装HBO GO -install_hbogo() { - local app_name_dir="hbogo" - install_app_bundle $app_name_dir +# 安装Disney+ +install_disney() { + install_xapk "/tvhelper/sony/disney/disney.xapk" +} + +# 安装MAX +install_max() { + install_xapk "/tvhelper/sony/max/max.xapk" } # 安装appletv+ install_appletv() { - local app_name_dir="appletv" - install_app_bundle $app_name_dir + install_xapk "/tvhelper/sony/appletv/appletv.xapk" } # 安装mytvsuper install_mytvsuper() { - local app_name_dir="mytvsuper" - install_app_bundle $app_name_dir -} - -# 下载单独apk -# 保存在/tmp/应用名称的文件夹下 -download_apk() { - local apk_download_url=$1 - local app_name_dir=$2 - local filename=$(basename "$apk_download_url") - # 下载APK文件到临时目录 - mkdir -p "/tmp/${app_name_dir}" - wget -O "/tmp/${app_name_dir}/${filename}" "$apk_download_url" + install_xapk "/tvhelper/sony/mytvsuper/mytvsuper.xapk" } # 根据文件夹名称,安装文件夹中全部apk @@ -218,40 +203,49 @@ install_app_bundle() { fi } -# 安装apk -install_apk() { - local apk_local_path=$1 - if check_adb_connected; then - echo -e "${GREEN}正在推送和安装apk,请耐心等待...${NC}" +# 根据xapk路径 安装单个xapk +# disney.xapk、appletv.xapk +install_xapk() { + local xapk_local_path="$1" + local xapkname=$(basename "$xapk_local_path") + local timestamp=$(date +%H%M%S) # 比如 142315 表示 14:23:15 + local extract_to="/tmp/xapks/${timestamp}" + mkdir -p "$extract_to" - # 模拟安装进度 - echo -ne "${BLUE}" - while true; do - echo -n ".." - sleep 1 - done & - - # 保存进度指示进程的PID - PROGRESS_PID=$! - install_result=$(adb install -r $apk_local_path 2>&1) - - # 安装完成后,终止进度指示进程 - kill $PROGRESS_PID - wait $PROGRESS_PID 2>/dev/null - echo -e "${NC}\n" - - # 检查安装结果 - if [[ $install_result == *"Success"* ]]; then - echo -e "${GREEN}APK安装成功!请在盒子上查看${NC}" - else - echo -e "${RED}APK安装失败:$install_result${NC}" - fi + if unzip -o "$xapk_local_path" -d "$extract_to"; then + echo "XAPK文件解压成功: $xapkname" else - connect_adb + echo "XAPK文件解压失败: $xapkname" + return 1 + fi + + apk_files=$(find "$extract_to" -type f -name "*.apk") + echo -e "解压后的多个apk:\n$apk_files" + echo -ne "${YELLOW}正在安装: $xapkname${NC} ${GREEN}" + echo + + # 模拟安装进度 + while true; do + echo -n ".." + sleep 1 + done & + PROGRESS_PID=$! + + install_result=$(adb install-multiple $apk_files 2>&1) + + kill $PROGRESS_PID >/dev/null 2>&1 + wait $PROGRESS_PID 2>/dev/null + echo -e "${NC}\n安装结果: $install_result" + + if echo "$install_result" | grep -qi "Success"; then + echo -e "${GREEN} 安装成功: $xapkname ${NC}" + #echo -e "${RED}正在删除临时目录 $extract_to ...${NC}" + rm -rf "$extract_to" + else + echo -e "${RED}安装失败: $xapkname${NC}" fi } - # 菜单 menu_options=( "连接ADB" @@ -271,7 +265,7 @@ commands=( ["安装Netflix最新版"]="install_netflix" ["安装Disney+最新版"]="install_disney" ["安装Youtube-FireTV版"]="install_youtube" - ["安装HBO MAX最新版"]="install_hbogo" + ["安装HBO MAX最新版"]="install_max" ["安装Apple TV+最新版"]="install_appletv" ["安装myTVSuper最新版"]="install_mytvsuper" ["赞助|打赏"]="sponsor" @@ -312,12 +306,18 @@ handle_choice() { eval "$command_to_run" } +get_docker_version() { + VERSION=$(grep -E '^VERSION=' /etc/environment | cut -d '=' -f2) + echo $VERSION +} + show_menu() { - current_date=$(date +%Y%m%d) clear echo "***********************************************************************" - echo -e "* ${YELLOW}Sony电视专用助手Docker版 (${current_date})${NC} " + echo -e "* ${YELLOW}Sony电视专用助手Docker版 (v$(get_docker_version))${NC} " echo -e "* ${RED}请确保电视盒子和Docker宿主机处于${NC}${BLUE}同一网段${NC}\n* ${RED}且电视盒子开启了${NC}${BLUE}USB调试模式(adb开关)${NC} " + echo "* 如果这些流媒体软件不是最新版 " + echo "* 请到apkpure.com下载xapk后 使用首页的批量安装XAPK功能自行安装 " echo "* Developed by @wukongdaily " echo "**********************************************************************" echo