更新 shells/tv.sh
This commit is contained in:
parent
432fa95a6d
commit
8f3be438a1
69
shells/tv.sh
69
shells/tv.sh
@ -314,12 +314,12 @@ install_apk() {
|
||||
install_all_apks() {
|
||||
if check_adb_connected; then
|
||||
# 获取/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[@]}
|
||||
|
||||
# 检查是否有APK文件
|
||||
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
|
||||
fi
|
||||
|
||||
@ -607,6 +607,61 @@ 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}"
|
||||
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
|
||||
install_mixapps() {
|
||||
local xapk_local_path="${apk_path}mix.xapk"
|
||||
@ -722,7 +777,8 @@ menu_options=(
|
||||
"安装Android原生TV必备精选Apps(含子菜单)"
|
||||
"一键修改NTP(限原生TV,需重启)"
|
||||
"安装Play商店图标(仅google tv使用)"
|
||||
"自定义批量安装data目录下的所有apk"
|
||||
"批量安装映射目录下的所有apk"
|
||||
"批量安装映射目录下的所有xapk(适合流媒体app)"
|
||||
"替换系统桌面"
|
||||
"进入KODI助手"
|
||||
"进入TVBox安装助手"
|
||||
@ -743,7 +799,8 @@ commands=(
|
||||
["显示Netflix影片码率"]="show_nf_info"
|
||||
["模拟菜单键"]="show_menu_keycode"
|
||||
["安装Play商店图标(仅google tv使用)"]="show_playstore_icon"
|
||||
["自定义批量安装data目录下的所有apk"]="install_all_apks"
|
||||
["批量安装映射目录下的所有apk"]="install_all_apks"
|
||||
["批量安装映射目录下的所有xapk(适合流媒体app)"]="do_install_all_xapks"
|
||||
["进入KODI助手"]="kodi_helper"
|
||||
["进入TVBox安装助手"]="enter_tvbox_helper"
|
||||
["进入Sony电视助手"]="enter_sonytv"
|
||||
@ -917,7 +974,7 @@ replace_normal_androidtv_ui() {
|
||||
toggle_system_ui "${system_ui_package}"
|
||||
}
|
||||
|
||||
check_emotnui_installed(){
|
||||
check_emotnui_installed() {
|
||||
local package_name="com.oversea.aslauncher"
|
||||
local apk_path="/tvhelper/apks/ui.apk"
|
||||
|
||||
@ -1033,7 +1090,7 @@ handle_choice() {
|
||||
}
|
||||
|
||||
show_menu() {
|
||||
mkdir -p /tvhelper/shells/data
|
||||
mkdir -p ${DATA_DIR}
|
||||
clear
|
||||
echo "***********************************************************************"
|
||||
echo -e "* ${YELLOW}盒子助手Docker版 (v$(get_docker_version))${NC} "
|
||||
|
Loading…
x
Reference in New Issue
Block a user