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 + true + true + false + true + true + 0,1,2 + false + false + false + 1 + true + 0 + 0 + + true + false + 0 + + + + + true + 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 + false + 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 + 5 + true + 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 + + false + 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 + 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 "**********************************************************************"