更新 shells/tv.sh

This commit is contained in:
悟空的日常镜像仓库 2025-06-08 19:05:47 +08:00
parent 432fa95a6d
commit 8f3be438a1

View File

@ -314,12 +314,12 @@ install_apk() {
install_all_apks() { install_all_apks() {
if check_adb_connected; then if check_adb_connected; then
# 获取/tmp/upload目录下的apk文件列表 # 获取/tmp/upload目录下的apk文件列表
apk_files=($(ls /tvhelper/shells/data/*.apk 2>/dev/null)) apk_files=($(ls ${DATA_DIR}/*.apk 2>/dev/null))
total_files=${#apk_files[@]} total_files=${#apk_files[@]}
# 检查是否有APK文件 # 检查是否有APK文件
if [ "$total_files" -eq "0" ]; then if [ "$total_files" -eq "0" ]; then
echo -e "${RED}/tvhelper/shells/data/ 目录下不包含任何apk文件,请先拷贝apk文件到此目录.${NC}" echo -e "${RED}${DATA_DIR}/ 目录下不包含任何apk文件,请先拷贝apk文件到此目录.${NC}"
return 1 return 1
fi fi
@ -607,6 +607,61 @@ get_tvbox_timezone() {
fi 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}"
mkdir -p "$extract_to"
if unzip -o "$xapk_local_path" -d "$extract_to"; then
echo "XAPK文件解压成功: $xapkname"
else
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}正在删除临时文件...${NC}"
rm -rf "$extract_to"
else
echo -e "${RED}安装失败: $xapkname${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 # 安装mix apps 用于显示全部app
install_mixapps() { install_mixapps() {
local xapk_local_path="${apk_path}mix.xapk" local xapk_local_path="${apk_path}mix.xapk"
@ -722,7 +777,8 @@ menu_options=(
"安装Android原生TV必备精选Apps(含子菜单)" "安装Android原生TV必备精选Apps(含子菜单)"
"一键修改NTP(限原生TV,需重启)" "一键修改NTP(限原生TV,需重启)"
"安装Play商店图标(仅google tv使用)" "安装Play商店图标(仅google tv使用)"
"自定义批量安装data目录下的所有apk" "批量安装映射目录下的所有apk"
"批量安装映射目录下的所有xapk(适合流媒体app)"
"替换系统桌面" "替换系统桌面"
"进入KODI助手" "进入KODI助手"
"进入TVBox安装助手" "进入TVBox安装助手"
@ -743,7 +799,8 @@ commands=(
["显示Netflix影片码率"]="show_nf_info" ["显示Netflix影片码率"]="show_nf_info"
["模拟菜单键"]="show_menu_keycode" ["模拟菜单键"]="show_menu_keycode"
["安装Play商店图标(仅google tv使用)"]="show_playstore_icon" ["安装Play商店图标(仅google tv使用)"]="show_playstore_icon"
["自定义批量安装data目录下的所有apk"]="install_all_apks" ["批量安装映射目录下的所有apk"]="install_all_apks"
["批量安装映射目录下的所有xapk(适合流媒体app)"]="do_install_all_xapks"
["进入KODI助手"]="kodi_helper" ["进入KODI助手"]="kodi_helper"
["进入TVBox安装助手"]="enter_tvbox_helper" ["进入TVBox安装助手"]="enter_tvbox_helper"
["进入Sony电视助手"]="enter_sonytv" ["进入Sony电视助手"]="enter_sonytv"
@ -917,7 +974,7 @@ replace_normal_androidtv_ui() {
toggle_system_ui "${system_ui_package}" toggle_system_ui "${system_ui_package}"
} }
check_emotnui_installed(){ check_emotnui_installed() {
local package_name="com.oversea.aslauncher" local package_name="com.oversea.aslauncher"
local apk_path="/tvhelper/apks/ui.apk" local apk_path="/tvhelper/apks/ui.apk"
@ -1033,7 +1090,7 @@ handle_choice() {
} }
show_menu() { show_menu() {
mkdir -p /tvhelper/shells/data mkdir -p ${DATA_DIR}
clear clear
echo "***********************************************************************" echo "***********************************************************************"
echo -e "* ${YELLOW}盒子助手Docker版 (v$(get_docker_version))${NC} " echo -e "* ${YELLOW}盒子助手Docker版 (v$(get_docker_version))${NC} "