diff --git a/apks/ui.apk b/apks/ui.apk
new file mode 100644
index 0000000..908db07
Binary files /dev/null and b/apks/ui.apk differ
diff --git a/kodi/guisettings.xml b/kodi/guisettings.xml
new file mode 100755
index 0000000..1b440e1
--- /dev/null
+++ b/kodi/guisettings.xml
@@ -0,0 +1,530 @@
+
+ true
+ true
+ true
+ true
+ 60
+
+
+
+ false
+ skin.estuary
+ SKINDEFAULT
+ SKINDEFAULT
+ Arial
+ 0
+ 5
+ false
+
+ resource.language.zh_cn
+ DEFAULT
+ English QWERTY
+ English QWERTY
+ USA (12h)
+ default
+ default
+ regional
+ regional
+ regional
+ regional
+ regional
+ regional
+
+ 3
+ true
+ true
+ false
+ 3
+ 0
+ 10000
+ 720
+ 480
+ false
+ false
+ false
+ false
+ 0
+
+ 48
+ false
+ false
+ false
+ false
+ true
+ true
+ true
+ true
+ false
+ false
+ 1
+ false
+
+
+ false
+ true
+ true
+ 0,1,2
+ false
+ false
+ false
+ 1
+ true
+ 0
+ 0
+
+ true
+ false
+ 0
+
+
+
+
+ true
+
+ true
+ true
+ true
+ false
+ false
+ false
+
+ metadata.generic.albums
+ metadata.generic.artists
+ false
+ false
+ 0
+ false
+ false
+
+
+ folder.jpg, cover.jpg, cover.jpeg, thumb.jpg
+ false
+ false
+ [%N. ]%A - %T
+
+
+ true
+ true
+ false
+
+ true
+ true
+ true
+ 14
+ metadata.themoviedb.org.python
+ metadata.tvshows.themoviedb.org.python
+ metadata.local
+
+ -600,-300,-180,-60,-30,-10,10,30,60,180,300,600
+ 750
+ 0
+ false
+ 0
+ 0
+ 0
+ 20
+ true
+ true
+ true
+ true
+ true
+ 0
+ true
+ true
+ true
+ true
+ false
+ -60,-30,-10,10,30,60
+ 750
+ 0
+ true
+
+ 1
+ 89
+ 89
+ false
+ false
+ 0
+
+ 1
+ 0
+ 0
+ true
+
+ %A/%A - %B/[%N. ][%A - ]%T
+ audioencoder.kodi.builtin.aac
+ true
+ 5
+ true
+ false
+ false
+ mediadefault
+ true
+ original
+ false
+ false
+ false
+ 2
+ DEFAULT
+ 42
+ 0
+ FFFFFFFF
+ 100
+ 25
+ FF000000
+ 0
+ 0
+ FF000000
+ 80
+ FF000000
+ 100
+ 15
+ 4.95
+ false
+ 0
+ 0
+ DEFAULT
+ false
+ 0
+ English
+ 0
+
+ true
+ false
+
+
+ true
+ true
+ false
+ false
+ false
+
+ 1
+ 3
+ 2
+ true
+ 120
+ false
+ 3
+ false
+
+
+ true
+ 0
+ 0
+ true
+ 0
+ true
+ false
+ 10
+ 0
+ 120
+ 0
+ 0
+ true
+ true
+ 10
+ true
+ false
+ false
+ 15
+
+ 15
+ false
+ 00:00:00
+ false
+
+ 300
+ false
+ Kodi
+ true
+ 575bde14-911b-484b-9764-35c6d3f86f03
+ false
+ 8080
+ true
+ kodi
+
+
+ webinterface.default
+ true
+ 9777
+ 10
+ 20
+ false
+ 750
+ 25
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+
+ WORKGROUP
+ 0.0.0.0
+ 0
+ 3
+ false
+ true
+ 3
+ 1
+
+ Default
+ 0
+ 17
+ DESKTOP
+ true
+ false
+ 0
+ 60
+ 0
+ false
+ 8
+ false
+ 0
+
+
+ 0
+ 0
+ 0
+ 220
+ 6
+ 0
+
+ false
+ false
+ 0
+ 100
+ 3
+ AUDIOTRACK:AudioTrack (IEC)
+ 1
+ 2
+ 90
+ true
+ false
+ 30
+ 2
+ 48000
+ 1
+ true
+ 1
+ 100
+ resource.uisounds.kodi
+ false
+ AUDIOTRACK:AudioTrack (IEC)
+ true
+ false
+ false
+ false
+ false
+ false
+ true
+ true
+ true
+ true
+ false
+ false
+ false
+ 0
+
+ 8080
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ false
+ 0
+ false
+ false
+ 0
+ false
+
+
+
+ true
+ false
+ 256
+ 2048
+ 2048
+ 4096
+ 256
+ 256
+ 256
+ 2048
+ 2048
+ 4096
+ special://profile/playlists/
+ false
+ true
+
+
+ 720896
+ 1
+ 1
+ 0
+
+
+ 720896
+ 1
+ 1
+ 0
+
+
+ 65536
+ 1
+ 1
+ 0
+
+
+ 65536
+ 1
+ 1
+ 0
+
+
+ 65536
+ 1
+ 1
+ 0
+
+
+ 65536
+ 8
+ 1
+ 0
+
+
+ 720896
+ 1
+ 1
+ 0
+
+
+ 720896
+ 1
+ 1
+ 0
+
+
+ 720896
+ 1
+ 1
+ 0
+
+
+ 65536
+ 1
+ 1
+ 0
+
+
+ 720896
+ 23
+ 1
+ 0
+
+
+ 65536
+ 1
+ 1
+ 0
+
+
+ 65536
+ 1
+ 1
+ 0
+
+
+ 65536
+ 1
+ 1
+ 0
+
+
+ 65536
+ 1
+ 1
+ 0
+
+
+ 65536
+ 1
+ 1
+ 0
+
+
+ 65536
+ 1
+ 1
+ 0
+
+
+
+ 1
+
+ 0
+ true
+
+ 1
+
+
+
+ 1
+ 1
+ 0.000000
+ false
+ 0.000000
+ 0
+ 1.000000
+ 1.000000
+ 0.000000
+ 0.000000
+ true
+ 50.000000
+ 50.000000
+ 20.000000
+ 0.000000
+ 0.000000
+ false
+ 0
+ 0
+ 1
+ 1.000000
+
+
+
+
+ normal
+ 0
+
+
+
+ false
+ false
+
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+ false
+ false
+
+ 0
+
+
+
diff --git a/kodi/kodi.apk b/kodi/kodi.apk
new file mode 100644
index 0000000..32438ed
Binary files /dev/null and b/kodi/kodi.apk differ
diff --git a/shells/box.sh b/shells/box.sh
index 1912707..1f7bd85 100644
--- a/shells/box.sh
+++ b/shells/box.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# wget -O box.sh https://github.com/wukongdaily/tvhelper-docker/raw/master/shells/box.sh && chmod +x box.sh && ./box.sh
+# wget -O box.sh https://gitee.com/wukongdaily/tvhelper-docker/raw/master/shells/box.sh && chmod +x box.sh && ./box.sh
#********************************************************
source common.sh
apk_path="/tvhelper/apks/"
diff --git a/shells/kodi.sh b/shells/kodi.sh
index 15db22e..6ad7394 100644
--- a/shells/kodi.sh
+++ b/shells/kodi.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# wget -O kodi.sh https://github.com/wukongdaily/tvhelper-docker/raw/master/shells/kodi.sh && chmod +x kodi.sh && ./kodi.sh
+# wget -O kodi.sh https://gitee.com/wukongdaily/tvhelper-docker/raw/master/shells/kodi.sh && chmod +x kodi.sh && ./kodi.sh
#********************************************************
source common.sh
@@ -147,41 +147,39 @@ set_kodi_to_chinese() {
echo -e "${GREEN}解压中文语言包到本地临时目录...${NC}"
unzip -o /tvhelper/kodi/resource.language.zh_cn-10.0.64.zip -d "$TEMP_DIR"
- # 推送整个解压后的文件夹到Kodi的Add-ons目录
+ # 1、推送整个解压后的文件夹到Kodi的Add-ons目录
adb push "$TEMP_DIR" "$KODI_ADDONS_PATH"
-
- echo -e "${RED}清理临时文件...${NC}"
- rm -rf "$TEMP_DIR"
-
+
echo -e "${GREEN}中文语言包已安装至KODI,开始配置语言....${NC}"
# 修改guisettings.xml以使用中文语言包
local KODI_SETTINGS_PATH="/sdcard/Android/data/org.xbmc.kodi/files/.kodi/userdata/guisettings.xml"
- # 先下载配置文件
- adb pull $KODI_SETTINGS_PATH /tmp/guisettings.xml
-
- # 使用sed命令更新XML文件中的字体和语言设置
- sed -i 's|]*>.*|Arial|g' /tmp/guisettings.xml
- sed -i 's|]*>.*|resource.language.zh_cn|g' /tmp/guisettings.xml
-
- # 再上传配置文件——更新
- adb push /tmp/guisettings.xml $KODI_SETTINGS_PATH
-
+
+ # 2、上传配置文件——更新
+ adb push /tvhelper/kodi/guisettings.xml $KODI_SETTINGS_PATH
+ echo -e "${GREEN}Kodi的字体和语言设置已更新,正在为您尝试打开KODI,请根据提示完成KODI初始化。${NC}"
+ sleep 2
# 重启Kodi
- adb shell am start -a android.intent.action.MAIN -n org.xbmc.kodi/.Main
- echo -e "${GREEN}Kodi的字体和语言设置已更新。${NC}"
+ #adb shell am start -a android.intent.action.MAIN -n org.xbmc.kodi/.Main
+ adb shell monkey -p org.xbmc.kodi 1 >/dev/null 2>&1
+
}
# 安装apk
install_apk() {
- local apk_download_url=$1
+ local apk_local_path=$1
local package_name=$2
- local filename=$(basename "$apk_download_url")
- # 下载APK文件到临时目录
- wget -O /tmp/$filename "$apk_download_url"
+ local filename=$(basename "$apk_local_path")
+
+ # 检查APK文件是否存在
+ if [ ! -f "$apk_local_path" ]; then
+ echo -e "${RED}错误: APK文件不存在,请更新docker镜像后重试。${NC}"
+ return 1
+ fi
+
if check_adb_connected; then
# 卸载旧版本的APK(如果存在)
- adb uninstall "$package_name" >/dev/null 2>&1
echo -e "${GREEN}正在推送和安装${filename},请耐心等待...${NC}"
+ adb uninstall "$package_name" >/dev/null 2>&1
# 模拟安装进度
echo -ne "${BLUE}"
@@ -192,7 +190,7 @@ install_apk() {
# 保存进度指示进程的PID
PROGRESS_PID=$!
- install_result=$(adb install -r /tmp/$filename 2>&1)
+ install_result=$(adb install -r $apk_local_path 2>&1)
# 安装完成后,终止进度指示进程
kill $PROGRESS_PID
@@ -202,11 +200,10 @@ install_apk() {
# 检查安装结果
if [[ $install_result == *"Success"* ]]; then
echo -e "${GREEN}APK安装成功!请在盒子上查看${NC}"
+ set_kodi_to_chinese
else
echo -e "${RED}APK安装失败:$install_result${NC}"
fi
- rm -rf /tmp/"$filename"
- echo -e "${YELLOW}临时文件/tmp/${filename}已清理${NC}"
else
connect_adb
fi
@@ -214,22 +211,22 @@ install_apk() {
# 安装KODI
install_kodi() {
- install_apk "https://mirror.karneval.cz/pub/xbmc/releases/android/arm/kodi-20.4-Nexus-armeabi-v7a.apk" "org.xbmc.kodi"
+ install_apk "/tvhelper/kodi/kodi.apk" "org.xbmc.kodi"
}
# 菜单
menu_options=(
"连接ADB"
"断开ADB"
- "安装KODI 20.4"
- "设置KODI的语言为简体中文"
+ "安装KODI 20.5 并设置中文"
+ #"设置KODI的语言为简体中文"
"赞助|打赏"
)
commands=(
["连接ADB"]="connect_adb"
["断开ADB"]="disconnect_adb"
- ["安装KODI 20.4"]="install_kodi"
+ ["安装KODI 20.5 并设置中文"]="install_kodi"
["设置KODI的语言为简体中文"]="set_kodi_to_chinese"
["赞助|打赏"]="sponsor"
)
diff --git a/shells/sony.sh b/shells/sony.sh
index ff4e7d7..50398fe 100644
--- a/shells/sony.sh
+++ b/shells/sony.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# wget -O sony.sh https://github.com/wukongdaily/tvhelper-docker/raw/master/shells/sony.sh && chmod +x sony.sh && ./sony.sh
+# wget -O sony.sh https://gitee.com/wukongdaily/tvhelper-docker/raw/master/shells/sony.sh && chmod +x sony.sh && ./sony.sh
#********************************************************
source common.sh
# 定义红色文本
diff --git a/shells/tv.sh b/shells/tv.sh
index 65e7517..d628ca6 100644
--- a/shells/tv.sh
+++ b/shells/tv.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# wget -O tv.sh https://github.com/wukongdaily/tvhelper-docker/raw/master/shells/tv.sh && chmod +x tv.sh && ./tv.sh
+# wget -O tv.sh https://gitee.com/wukongdaily/tvhelper-docker/raw/master/shells/tv.sh && chmod +x tv.sh && ./tv.sh
source common.sh
apk_path="/tvhelper/apks/"
# 定义红色文本
@@ -13,6 +13,30 @@ BLUE="\e[96m"
# 菜单选项数组
declare -a menu_options
declare -A commands
+# 安装原生tv必备菜单
+declare -a item_options
+declare -A commands_essentials
+# 替换或恢复系统桌面
+declare -a tv_model_options
+declare -A tv_model_commands
+
+
+get_docker_version() {
+ # 尝试从 /etc/environment 读取 APP_VERSION
+ if [ -f /etc/environment ]; then
+ source /etc/environment
+ fi
+ if [ -n "$APP_VERSION" ]; then
+ version=$APP_VERSION
+ else
+ # 若 /etc/environment 中的 APP_VERSION 为空,使用默认值
+ version="1.0.2"
+ fi
+ echo $version
+}
+
+# 使用get_docker_version函数
+docker_version=$(get_docker_version)
show_user_tips() {
read -p "按 Enter 键继续..."
@@ -64,7 +88,7 @@ connect_adb() {
last_name=$(head -n 1 "$history_file")
# 检查历史中的IP地址是否合法
if is_valid_ip "$last_ip"; then
- echo -e "${YELLOW}上次连接的设备是 ${last_name},IP地址为 ${last_ip}。\n您是否要再次连接到此设备?确认请回车,否定输入n再回车[Y/n]${NC}"
+ echo -e "上次连接的设备是 ${GREEN}${last_name}${NC}IP地址为 ${GREEN}${last_ip}${NC}\n您是否要再次连接到此设备?确认请直接回车,否定输入n再回车[Y/n]"
read answer
if [[ "$answer" == "N" || "$answer" == "n" ]]; then
echo -e "${YELLOW}请手动输入电视盒子的完整IP地址:${NC}"
@@ -673,58 +697,7 @@ enter_sonytv() {
wget -O sony.sh https://gitee.com/wukongdaily/tvhelper-docker/raw/master/shells/sony.sh && chmod +x sony.sh && ./sony.sh
}
-
-# 菜单
-menu_options=(
- "连接ADB"
- "断开ADB"
- "一键修改电视盒子NTP服务器地址(需重启)"
- "向TV端输入文字(限英文)"
- "为Google TV系统安装Play商店图标"
- "显示Netflix影片码率"
- "模拟菜单键"
- "安装电视订阅助手"
- "安装Emotn Store应用商店"
- "安装当贝市场"
- "安装文件管理器+"
- "安装Downloader"
- "安装my-tv(lizongying)"
- "安装BBLL(xiaye13579)"
- "自定义批量安装data目录下的所有apk"
- #"安装Mix-Apps用于显示全部应用"
- "进入KODI助手"
- #"安装Fire TV版Youtube(免谷歌框架)"
- "进入TVBox安装助手"
- "进入Sony电视助手"
- "更新脚本"
- "赞助|打赏"
-)
-
-commands=(
- ["连接ADB"]="connect_adb"
- ["断开ADB"]="disconnect_adb"
- ["一键修改电视盒子NTP服务器地址(需重启)"]="modify_ntp"
- ["安装电视订阅助手"]="install_subhelper_apk"
- ["安装Emotn Store应用商店"]="install_emotn_store"
- ["安装当贝市场"]="install_dbmarket"
- ["向TV端输入文字(限英文)"]="input_text"
- ["显示Netflix影片码率"]="show_nf_info"
- ["模拟菜单键"]="show_menu_keycode"
- ["为Google TV系统安装Play商店图标"]="show_playstore_icon"
- ["安装my-tv(lizongying)"]="install_mytv_latest_apk"
- ["安装BBLL(xiaye13579)"]="install_BBLL_latest_apk"
- ["安装文件管理器+"]="install_file_manager_plus"
- ["安装Downloader"]="install_downloader"
- ["自定义批量安装data目录下的所有apk"]="install_all_apks"
- ["安装Mix-Apps用于显示全部应用"]="install_mixapps"
- ["进入KODI助手"]="kodi_helper"
- ["安装Fire TV版Youtube(免谷歌框架)"]="install_youtube_firetv"
- ["进入TVBox安装助手"]="enter_tvbox_helper"
- ["赞助|打赏"]="sponsor"
- ["进入Sony电视助手"]="enter_sonytv"
- ["更新脚本"]="update_sh"
-)
-
+# 更新脚本
update_sh() {
break
echo "正在更新脚本..."
@@ -742,6 +715,286 @@ update_sh() {
fi
}
+# 菜单
+menu_options=(
+ "连接ADB"
+ "断开ADB"
+ "安装Android原生TV必备精选Apps"
+ "一键修改NTP(限原生TV,需重启)"
+ "安装Play商店图标(仅google tv使用)"
+ "自定义批量安装data目录下的所有apk"
+ "替换系统桌面"
+ "进入KODI助手"
+ "进入TVBox安装助手"
+ "进入Sony电视助手"
+ "向TV端输入文字(限英文)"
+ "显示Netflix影片码率"
+ "模拟菜单键"
+ "更新脚本"
+ "赞助|打赏"
+)
+
+commands=(
+ ["连接ADB"]="connect_adb"
+ ["断开ADB"]="disconnect_adb"
+ ["安装Android原生TV必备精选Apps"]="android_tv_essentials"
+ ["一键修改NTP(限原生TV,需重启)"]="modify_ntp"
+ ["向TV端输入文字(限英文)"]="input_text"
+ ["显示Netflix影片码率"]="show_nf_info"
+ ["模拟菜单键"]="show_menu_keycode"
+ ["安装Play商店图标(仅google tv使用)"]="show_playstore_icon"
+ ["自定义批量安装data目录下的所有apk"]="install_all_apks"
+ ["进入KODI助手"]="kodi_helper"
+ ["进入TVBox安装助手"]="enter_tvbox_helper"
+ ["进入Sony电视助手"]="enter_sonytv"
+ ["更新脚本"]="update_sh"
+ ["赞助|打赏"]="sponsor"
+ ["替换系统桌面"]="replace_system_ui_menu"
+)
+# 安装原生tv必备apps
+item_options=(
+ "安装电视订阅助手"
+ "安装Emotn Store应用商店"
+ "安装当贝市场"
+ "安装my-tv(lizongying)"
+ "安装BBLL(xiaye13579)"
+ "安装文件管理器+"
+ "安装Downloader"
+ "安装Mix-Apps用于显示全部应用"
+ "返回主菜单"
+)
+
+commands_essentials=(
+ ["安装电视订阅助手"]="install_subhelper_apk"
+ ["安装Emotn Store应用商店"]="install_emotn_store"
+ ["安装当贝市场"]="install_dbmarket"
+ ["安装my-tv(lizongying)"]="install_mytv_latest_apk"
+ ["安装BBLL(xiaye13579)"]="install_BBLL_latest_apk"
+ ["安装文件管理器+"]="install_file_manager_plus"
+ ["安装Downloader"]="install_downloader"
+ ["安装Mix-Apps用于显示全部应用"]="install_mixapps"
+)
+
+# 替换或恢复系统桌面
+tv_model_options=(
+ "替换/恢复 索尼Sony电视系统桌面"
+ "替换/恢复 小米(盒子/电视)系统桌面"
+ "替换/恢复 小米盒子国际版系统桌面"
+ "替换/恢复 GoogleTV系统桌面"
+ "替换/恢复 安卓原生TV系统桌面(原生类型TV通用)"
+ "返回主菜单"
+)
+
+tv_model_commands=(
+ ["替换/恢复 索尼Sony电视系统桌面"]="replace_sony_ui"
+ ["替换/恢复 小米(盒子/电视)系统桌面"]="replace_xiaomi_ui"
+ ["替换/恢复 小米盒子国际版系统桌面"]="replace_xiaomi_global_ui"
+ ["替换/恢复 GoogleTV系统桌面"]="toggle_googletv_system_ui"
+ ["替换/恢复 安卓原生TV系统桌面(原生类型TV通用)"]="replace_normal_androidtv_ui"
+)
+
+# 定义安卓原生TV必备子菜单函数
+android_tv_essentials() {
+ while true; do
+ echo -e "${GREEN}原生TV必备精选Apps:${NC}"
+ for i in "${!item_options[@]}"; do
+ echo " ($((i + 1))) ${item_options[$i]}"
+ done
+
+ echo "请选择一个选项,或按q返回主菜单:"
+ read -r choice
+
+ # 检查输入是否为退出命令
+ if [[ "$choice" == "q" ]]; then
+ break
+ fi
+
+ # 检查输入是否为数字
+ if ! [[ $choice =~ ^[0-9]+$ ]]; then
+ echo -e " ${RED}请输入有效数字!${NC}"
+ continue
+ fi
+
+ # 检查数字是否在有效范围内
+ if [[ $choice -lt 1 ]] || [[ $choice -gt ${#item_options[@]} ]]; then
+ echo -e " ${RED}选项超出范围!${NC}"
+ echo -e " ${YELLOW}请输入 1 到 ${#item_options[@]} 之间的数字。${NC}"
+ continue
+ fi
+
+ # 处理返回主菜单
+ if [[ $choice -eq ${#item_options[@]} ]]; then
+ break
+ fi
+
+ local selected_option="${item_options[$((choice - 1))]}"
+ command_item_run="${commands_essentials["$selected_option"]}"
+
+ # 检查是否存在对应的命令并执行
+ if [ -z "$command_item_run" ]; then
+ echo -e " ${RED}无效选项,请重新选择。${NC}"
+ else
+ eval "$command_item_run"
+ fi
+ done
+}
+
+# 根据品牌替换系统桌面
+replace_system_ui_menu() {
+ local apk_path="/tvhelper/apks/ui.apk"
+ # 检查APK文件是否存在
+ if [ ! -f "$apk_path" ]; then
+ echo -e "${RED}错误: 要替换的桌面APK文件不存在,请更新docker镜像后重试。${NC}"
+ return 1
+ fi
+ while true; do
+ echo -e "${GREEN}目前支持替换桌面的电视盒子或电视品牌如下:${NC}"
+ for i in "${!tv_model_options[@]}"; do
+ echo " ($((i + 1))) ${tv_model_options[$i]}"
+ done
+
+ echo "请选择一个选项,或按q返回主菜单:"
+ read -r choice
+
+ # 检查输入是否为退出命令
+ if [[ "$choice" == "q" ]]; then
+ break
+ fi
+
+ # 检查输入是否为数字
+ if ! [[ $choice =~ ^[0-9]+$ ]]; then
+ echo -e " ${RED}请输入有效数字!${NC}"
+ continue
+ fi
+
+ # 检查数字是否在有效范围内
+ if [[ $choice -lt 1 ]] || [[ $choice -gt ${#tv_model_options[@]} ]]; then
+ echo -e " ${RED}选项超出范围!${NC}"
+ echo -e " ${YELLOW}请输入 1 到 ${#tv_model_options[@]} 之间的数字。${NC}"
+ continue
+ fi
+
+ # 处理返回主菜单
+ if [[ $choice -eq ${#tv_model_options[@]} ]]; then
+ break
+ fi
+
+ local selected_option="${tv_model_options[$((choice - 1))]}"
+ local command_item_run="${tv_model_commands["$selected_option"]}"
+
+ # 检查是否存在对应的命令并执行
+ if [ -z "$command_item_run" ]; then
+ echo -e " ${RED}无效选项,请重新选择。${NC}"
+ else
+ eval "$command_item_run"
+ fi
+ done
+}
+
+replace_xiaomi_ui() {
+ local system_ui_package="com.mitv.tvhome"
+ toggle_system_ui "${system_ui_package}"
+}
+
+replace_xiaomi_global_ui() {
+ local system_ui_package="com.google.android.tvlauncher"
+ toggle_system_ui "${system_ui_package}"
+}
+
+replace_sony_ui() {
+ local system_ui_package="com.dangbei.TVHomeLauncher"
+ toggle_system_ui "${system_ui_package}"
+}
+
+replace_xiaomi_global_ui() {
+ replace_normal_androidtv_ui
+}
+
+replace_normal_androidtv_ui() {
+ local system_ui_package="com.google.android.tvlauncher"
+ toggle_system_ui "${system_ui_package}"
+}
+
+check_emotnui_installed(){
+ local package_name="com.oversea.aslauncher"
+ local apk_path="/tvhelper/apks/ui.apk"
+
+ # 检查APK文件是否存在
+ if [ ! -f "$apk_path" ]; then
+ echo -e "${RED}错误: APK文件不存在,请更新docker镜像后重试,确保docker镜像版本 >= 1.0.3${NC}"
+ return 1
+ fi
+
+ # 检查 com.oversea.aslauncher 是否已安装
+ if ! adb shell pm list packages | grep -q "$package_name"; then
+ echo -e "${GREEN}EmotnUI 未安装,开始安装...请稍后${NC}"
+ # 安装 com.oversea.aslauncher 应用
+ if adb install -r "$apk_path" >/dev/null 2>&1; then
+ echo -e "${GREEN}第三方桌面安装成功${NC}"
+ else
+ echo -e "${RED}应用安装失败,请检查APK文件路径和设备连接状态。若apk不存在请更新docker镜像。${NC}"
+ return
+ fi
+ else
+ echo -e "${GREEN}第三方桌面EmotnUI已安装。${NC}"
+ fi
+}
+
+toggle_googletv_system_ui() {
+ local system_ui_package="com.google.android.apps.tv.launcherx"
+ local system_setup_package="com.google.android.tungsten.setupwraith"
+ #判断emotnui是否安装
+ check_emotnui_installed
+
+ # 检查系统桌面是否已被禁用
+ if adb shell pm list packages -d | grep -q "$system_ui_package"; then
+ # 若已被禁用,则启用系统桌面
+ if adb shell pm enable "$system_ui_package" >/dev/null 2>&1 && adb shell pm enable "$system_setup_package" >/dev/null 2>&1; then
+ echo -e "${GREEN}恭喜您,您的系统桌面又回来啦! 请按HOME键确认。${NC}"
+ adb shell input keyevent KEYCODE_HOME
+ else
+ echo -e "${RED}启用系统桌面或其他应用失败,请检查设备连接状态和权限。${NC}"
+ fi
+
+ else
+ # 若未被禁用,则禁用系统桌面
+ if adb shell pm disable-user --user 0 "$system_ui_package" >/dev/null 2>&1 &&
+ adb shell pm disable-user --user 0 "$system_setup_package" >/dev/null 2>&1; then
+ echo -e "${GREEN}恭喜您,新桌面替换成功。点击HOME键 查看新桌面哦。${NC}"
+ adb shell input keyevent KEYCODE_HOME
+ else
+ echo -e "${RED}禁用系统桌面失败,请检查设备连接状态和权限。${NC}"
+ fi
+
+ fi
+}
+
+# 替换或恢复系统桌面
+toggle_system_ui() {
+ local system_ui_package=$1
+ #判断emotnui是否安装
+ check_emotnui_installed
+
+ # 检查系统桌面是否已被禁用
+ if adb shell pm list packages -d | grep -q "$system_ui_package"; then
+ # 若已被禁用,则启用系统桌面
+ if adb shell pm enable "$system_ui_package" >/dev/null 2>&1; then
+ echo -e "${GREEN}恭喜您,您的系统桌面又回来啦! 请按HOME键确认。${NC}"
+ adb shell input keyevent KEYCODE_HOME
+ else
+ echo -e "${RED}启用系统桌面失败,请检查设备连接状态和权限。${NC}"
+ fi
+ else
+ # 若未被禁用,则禁用系统桌面
+ if adb shell pm disable-user --user 0 "$system_ui_package" >/dev/null 2>&1; then
+ echo -e "${GREEN}恭喜您,新桌面替换成功。点击HOME键 查看新桌面哦。${NC}"
+ adb shell input keyevent KEYCODE_HOME
+ else
+ echo -e "${RED}禁用系统桌面失败,请检查设备连接状态和权限。${NC}"
+ fi
+ fi
+}
+
# 处理菜单
handle_choice() {
local choice=$1
@@ -781,7 +1034,7 @@ show_menu() {
mkdir -p /tvhelper/shells/data
clear
echo "***********************************************************************"
- echo -e "* ${YELLOW}盒子助手Docker版 (v1.0.0)${NC} "
+ echo -e "* ${YELLOW}盒子助手Docker版 (v${docker_version})${NC} "
echo -e "* ${GREEN}base Alpine Linux${NC} "
echo -e "* ${RED}请确保电视盒子和Docker宿主机处于${NC}${BLUE}同一网段${NC}\n* ${RED}且电视盒子开启了${NC}${BLUE}USB调试模式(adb开关)${NC} "
echo "**********************************************************************"