更新 shells/tv.sh
This commit is contained in:
93
shells/tv.sh
93
shells/tv.sh
@@ -126,7 +126,7 @@ connect_adb() {
|
||||
echo -e "${YELLOW}请输入设备显示的debug【调试端口号】:(通常位于无线调试这一页)${NC}"
|
||||
read debug_port
|
||||
adb connect "${ip}:${debug_port}"
|
||||
for ((i = 1; i <= 30; i++)); do
|
||||
for ((i = 1; i <= 35; i++)); do
|
||||
device_status=$(adb devices | grep "${debug_port}" | awk '{print $2}')
|
||||
if [[ "$device_status" == "device" ]]; then
|
||||
echo -e "${GREEN}ADB 已成功连接到设备 ${debug_port}${NC}"
|
||||
@@ -139,9 +139,7 @@ connect_adb() {
|
||||
done
|
||||
else
|
||||
# ---------- 安卓13及以下 ----------
|
||||
echo -e "${YELLOW}请输入端口号 [回车默认5555]:${NC}"
|
||||
read port
|
||||
port=${port:-5555}
|
||||
port=5555
|
||||
ip_port="${ip}:${port}"
|
||||
adb connect "${ip_port}"
|
||||
|
||||
@@ -659,31 +657,59 @@ get_tvbox_timezone() {
|
||||
fi
|
||||
}
|
||||
|
||||
# 单个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}"
|
||||
|
||||
|
||||
# ==========================
|
||||
# 批量安装目录中的 APK / XAPK / APKM
|
||||
# ==========================
|
||||
do_install_all_packages() {
|
||||
local supported_exts=("apk" "xapk" "apkm")
|
||||
|
||||
for ext in "${supported_exts[@]}"; do
|
||||
for file in "${DATA_DIR}"/*."$ext"; do
|
||||
if [ -f "$file" ]; then
|
||||
echo -e "\n========== 处理文件: $(basename "$file") =========="
|
||||
install_app_package "$file"
|
||||
fi
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
# 支持xapk/apkm/apk三种格式的安装函数
|
||||
install_app_package() {
|
||||
local file_path="$1"
|
||||
local filename=$(basename "$file_path")
|
||||
local ext="${filename##*.}"
|
||||
|
||||
local timestamp=$(date +%H%M%S)
|
||||
local extract_to="/tmp/app_pkgs/${timestamp}"
|
||||
mkdir -p "$extract_to"
|
||||
|
||||
if unzip -o "$xapk_local_path" -d "$extract_to"; then
|
||||
echo "XAPK文件解压成功: $xapkname"
|
||||
case "$ext" in
|
||||
xapk|apkm)
|
||||
if unzip -o "$file_path" -d "$extract_to"; then
|
||||
echo "$ext 文件解压成功: $filename"
|
||||
else
|
||||
echo "XAPK文件解压失败: $xapkname"
|
||||
echo "$ext 文件解压失败: $filename"
|
||||
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
|
||||
;;
|
||||
apk)
|
||||
apk_files="$file_path"
|
||||
;;
|
||||
*)
|
||||
echo "不支持的文件类型: $ext"
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# 模拟安装进度
|
||||
while true; do
|
||||
echo -n ".."
|
||||
sleep 1
|
||||
done &
|
||||
echo -e "准备安装:\n$apk_files"
|
||||
echo -ne "${YELLOW}正在安装: $filename${NC} ${GREEN}\n"
|
||||
|
||||
# 模拟进度
|
||||
while true; do echo -n ".."; sleep 1; done &
|
||||
PROGRESS_PID=$!
|
||||
|
||||
install_result=$(adb install-multiple $apk_files 2>&1)
|
||||
@@ -693,26 +719,13 @@ install_xapk() {
|
||||
echo -e "${NC}\n安装结果: $install_result"
|
||||
|
||||
if echo "$install_result" | grep -qi "Success"; then
|
||||
echo -e "${GREEN} 安装成功: $xapkname ${NC}"
|
||||
echo -e "${RED}正在删除临时文件...${NC}"
|
||||
echo -e "${GREEN}安装成功: $filename${NC}"
|
||||
rm -rf "$extract_to"
|
||||
else
|
||||
echo -e "${RED}安装失败: $xapkname${NC}"
|
||||
echo -e "${RED}安装失败: $filename${NC}"
|
||||
fi
|
||||
}
|
||||
|
||||
# ==========================
|
||||
# 批量安装目录中的所有XAPK
|
||||
# ==========================
|
||||
do_install_all_xapks() {
|
||||
|
||||
for xapk_file in "${DATA_DIR}"/*.xapk; do
|
||||
if [ -f "$xapk_file" ]; then
|
||||
echo -e "\n========== 处理文件: $(basename "$xapk_file") =========="
|
||||
install_xapk "$xapk_file"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# 安装mix apps 用于显示全部app
|
||||
install_mixapps() {
|
||||
@@ -829,8 +842,7 @@ menu_options=(
|
||||
"安装Android原生TV必备精选Apps(含子菜单)"
|
||||
"一键修改NTP(限原生TV,需重启)"
|
||||
"安装Play商店图标(仅google tv使用)"
|
||||
"安装映射目录下的所有apk"
|
||||
"安装映射目录下的所有xapk(适合流媒体app)"
|
||||
"一键安装/data目录下所有apk/xapk/apkm (适合流媒体app)"
|
||||
"替换系统桌面"
|
||||
"进入KODI助手"
|
||||
"进入TVBox安装助手"
|
||||
@@ -851,8 +863,7 @@ commands=(
|
||||
["显示Netflix影片码率"]="show_nf_info"
|
||||
["模拟菜单键"]="show_menu_keycode"
|
||||
["安装Play商店图标(仅google tv使用)"]="show_playstore_icon"
|
||||
["安装映射目录下的所有apk"]="install_all_apks"
|
||||
["安装映射目录下的所有xapk(适合流媒体app)"]="do_install_all_xapks"
|
||||
["一键安装/data目录下所有apk/xapk/apkm (适合流媒体app)"]="do_install_all_packages"
|
||||
["进入KODI助手"]="kodi_helper"
|
||||
["进入TVBox安装助手"]="enter_tvbox_helper"
|
||||
["进入Sony电视助手"]="enter_sonytv"
|
||||
|
Reference in New Issue
Block a user