Compare commits
No commits in common. "master" and "v1.0.1" have entirely different histories.
125
README.md
125
README.md
@ -1,3 +1,126 @@
|
||||
# 盒子助手Docker版
|
||||
https://github.com/wukongdaily/tvhelper-docker
|
||||
## 🤔 这是什么?
|
||||
|
||||
该项目可以让你使用电脑、NAS等一切能运行docker的设备变成盒子的ADB安装助手。让你的盒子用起来更加得心应手。<br>
|
||||
另外【OpenWrt版本盒子助手命令行】可以[点击这里直达](https://github.com/wukongdaily/tvhelper)
|
||||
## 💡 特色功能
|
||||
|
||||
- 💻 支持`一键修改安卓原生电视盒子/TV的NTP服务器地址`
|
||||
- 💻 支持`SSH连接 且容器内ADB服务均已准备就绪,无需额外安装`
|
||||
- 🔑 支持`安装装机必备app 尤其是文件管理器和三方市场、图标等`
|
||||
- 🌏 支持`一键批量安装主机上指定目录的全部apk`
|
||||
- 🐋 支持`Docker compose和 docker cli`一键部署
|
||||
- 📕 支持`为国行Sony电视安装时下流行的流媒体应用`
|
||||
- ❓ 兼容`ARMv7/ARM64/x86_64 双平台设备
|
||||
- ❓ 其他功能和特点会持续迭代
|
||||
- MacOS(Apple芯片/Intel芯片)✅
|
||||
- Windows 10/11 ✅
|
||||
- Linux发行版 ✅
|
||||
- NAS系统(群晖、威联通等)✅
|
||||
- 软路由iStoreOS/OpenWrt ✅
|
||||
|
||||
|
||||
## 🚀 快速上手
|
||||
|
||||
### 1. 安装`Docker`和`Docker compose`
|
||||
|
||||
- `Docker`安装教程:[https://docs.docker.com/engine/install/](https://docs.docker.com/engine/install/)
|
||||
- `Docker compose`安装教程:[https://docs.docker.com/compose/install/](https://docs.docker.com/compose/install/)
|
||||
- `个人普通电脑`安装教程:https://docs.docker.com/get-docker/
|
||||
- `docker镜像主页` https://hub.docker.com/repository/docker/wukongdaily/box/tags
|
||||
|
||||
### 2. 下载image
|
||||
|
||||
```bash
|
||||
docker pull wukongdaily/box:latest
|
||||
```
|
||||
|
||||
### 3. 容器系统默认账号密码或环境变量
|
||||
|
||||
- 容器内运行的就是alpine linux系统。
|
||||
- ssh用户名和密码分别是:`root`和`password`
|
||||
- 推荐ssh端口映射到主机端口为2299。<br>
|
||||
> 调用形式举例
|
||||
|
||||
`ssh root@宿主机ip地址 -p 2299`
|
||||
|
||||
> SSH常见错误举例和新手指南详见
|
||||
|
||||
https://github.com/wukongdaily/HowToUseSSH <br>
|
||||
- 容器内的环境变量
|
||||
- `PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/android-sdk/platform-tools`
|
||||
|
||||
|
||||
### 4. 运行
|
||||
- Windows电脑使用-CMD写法,注意不是powershell 且注意💡续行符^后不能有空格。数据目录默认映射到 【我的文档】
|
||||
```bash
|
||||
docker run -d ^
|
||||
--restart unless-stopped ^
|
||||
--name tvhelper ^
|
||||
-p 2299:22 ^
|
||||
-v "%USERPROFILE%\Documents\tvhelper_data:/tvhelper/shells/data" ^
|
||||
-e PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/android-sdk/platform-tools ^
|
||||
wukongdaily/box:latest
|
||||
|
||||
```
|
||||
- Linux 使用下列命令,数据目录默认映射到linux的`/tmp/upload/`下
|
||||
```bash
|
||||
docker run -d \
|
||||
--restart unless-stopped \
|
||||
--name tvhelper \
|
||||
-p 2299:22 \
|
||||
-v "/tmp/upload/tvhelper_data:/tvhelper/shells/data" \
|
||||
-e PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/android-sdk/platform-tools \
|
||||
wukongdaily/box:latest
|
||||
```
|
||||
- macOS苹果电脑写法,数据目录默认映射到mac电脑文稿目录下
|
||||
```bash
|
||||
docker run -d \
|
||||
--restart unless-stopped \
|
||||
--name tvhelper \
|
||||
-p 2299:22 \
|
||||
-v "$HOME/Documents/tvhelper_data:/tvhelper/shells/data" \
|
||||
-e PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/android-sdk/platform-tools \
|
||||
wukongdaily/box:latest
|
||||
```
|
||||
|
||||
- UNRAID 写法,注意容器内的data目录默认映射到 /mnt/user/appdata/,你可以适当修改成别的空间的路径。
|
||||
```bash
|
||||
docker run -d \
|
||||
--name='tvhelper' \
|
||||
--net='bridge' \
|
||||
-e HOST_OS="Unraid" \
|
||||
-e HOST_HOSTNAME="unraid" \
|
||||
-e HOST_CONTAINERNAME="tvhelper" \
|
||||
-e 'PATH'='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/android-sdk/platform-tools' \
|
||||
-l net.unraid.docker.managed=dockerman \
|
||||
-p '2299:22/tcp' \
|
||||
-v '/mnt/user/appdata/':'/tvhelper/shells/data':'rw' 'wukongdaily/box'
|
||||
```
|
||||
|
||||
### 5. 如何导入本地镜像tar
|
||||
- 离线包:https://pan.baidu.com/share/init?surl=lWsaAtuAcwaO_9DtJo0hnA&pwd=1111
|
||||
|
||||
#### Windows 举例
|
||||
```bash
|
||||
docker load < "%USERPROFILE%\Documents\tvhelper-amd64.tar"
|
||||
```
|
||||
|
||||
#### Linux/OpenWrt 举例
|
||||
```bash
|
||||
docker load < /mnt/sata1.3-1/myboxarm.tar
|
||||
```
|
||||
|
||||
### 辅助视频教程⬇️
|
||||
|
||||
[在线教学视频 长视频](https://youtu.be/xAk-3TxeXxQ)
|
||||
|
||||
## 🗂️ 引用项目
|
||||
|
||||
本项目的开发参照了以下项目,感谢这些开源项目的作者:
|
||||
### my-tv
|
||||
https://github.com/lizongying/my-tv
|
||||
### BBLL
|
||||
https://github.com/xiaye13579/BBLL
|
||||
### TVBox
|
||||
https://github.com/takagen99/Box
|
||||
|
BIN
apks/File_Manager_Plus.apk
Executable file
BIN
apks/File_Manager_Plus.apk
Executable file
Binary file not shown.
BIN
apks/TVBox.apk
Normal file
BIN
apks/TVBox.apk
Normal file
Binary file not shown.
20
apks/TVBox.json
Normal file
20
apks/TVBox.json
Normal file
@ -0,0 +1,20 @@
|
||||
{
|
||||
"version": 3,
|
||||
"artifactType": {
|
||||
"type": "APK",
|
||||
"kind": "Directory"
|
||||
},
|
||||
"applicationId": "com.github.tvbox.osc.wk",
|
||||
"variantName": "release",
|
||||
"elements": [
|
||||
{
|
||||
"type": "SINGLE",
|
||||
"filters": [],
|
||||
"attributes": [],
|
||||
"versionCode": 1,
|
||||
"versionName": "编译时间:2024-02-28 11:55",
|
||||
"outputFile": "app-release.apk"
|
||||
}
|
||||
],
|
||||
"elementType": "File"
|
||||
}
|
BIN
apks/bbll.apk
Normal file
BIN
apks/bbll.apk
Normal file
Binary file not shown.
BIN
apks/dangbeimarket.apk
Normal file
BIN
apks/dangbeimarket.apk
Normal file
Binary file not shown.
BIN
apks/downloader.apk
Normal file
BIN
apks/downloader.apk
Normal file
Binary file not shown.
BIN
apks/emotn.apk
Normal file
BIN
apks/emotn.apk
Normal file
Binary file not shown.
BIN
apks/mix.xapk
Normal file
BIN
apks/mix.xapk
Normal file
Binary file not shown.
BIN
apks/mytv.apk
Normal file
BIN
apks/mytv.apk
Normal file
Binary file not shown.
BIN
apks/play-icon.apk
Normal file
BIN
apks/play-icon.apk
Normal file
Binary file not shown.
BIN
apks/subhelp14.apk
Normal file
BIN
apks/subhelp14.apk
Normal file
Binary file not shown.
BIN
apks/youtube.apk
Normal file
BIN
apks/youtube.apk
Normal file
Binary file not shown.
BIN
kodi/resource.language.zh_cn-10.0.64.zip
Normal file
BIN
kodi/resource.language.zh_cn-10.0.64.zip
Normal file
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
# wget -O box.sh https://cafe.cpolar.top/wkdaily/tvhelper-docker/raw/branch/master/shells/box.sh && chmod +x box.sh && ./box.sh
|
||||
# wget -O box.sh https://github.com/wukongdaily/tvhelper-docker/raw/master/shells/box.sh && chmod +x box.sh && ./box.sh
|
||||
#********************************************************
|
||||
source common.sh
|
||||
apk_path="/tvhelper/apks/"
|
||||
@ -150,14 +150,14 @@ install_tvbox() {
|
||||
menu_options=(
|
||||
"连接ADB"
|
||||
"断开ADB"
|
||||
"安装TVBox(编译时间:2024-06-28)"
|
||||
"安装TVBox(编译时间:2024-02-28)"
|
||||
"赞助|打赏"
|
||||
)
|
||||
|
||||
commands=(
|
||||
["连接ADB"]="connect_adb"
|
||||
["断开ADB"]="disconnect_adb"
|
||||
["安装TVBox(编译时间:2024-06-28)"]="install_tvbox"
|
||||
["安装TVBox(编译时间:2024-02-28)"]="install_tvbox"
|
||||
["赞助|打赏"]="sponsor"
|
||||
|
||||
)
|
||||
|
@ -10,6 +10,8 @@ BLUE="\e[96m"
|
||||
sponsor() {
|
||||
echo
|
||||
echo -e "${GREEN}悟空的赞赏码如下⬇${BLUE}"
|
||||
echo -e "${BLUE} https://wkdaily.cpolar.top/01 ${NC}"
|
||||
echo -e "${BLUE} https://gitee.com/wukongdaily/tvhelper-docker/raw/master/shells/image.jpg${NC}"
|
||||
echo
|
||||
qrencode -t ANSIUTF8 'https://gitee.com/wukongdaily/tvhelper-docker/raw/master/shells/image.jpg'
|
||||
echo
|
||||
}
|
BIN
shells/image.jpg
Normal file
BIN
shells/image.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
# wget -O kodi.sh https://cafe.cpolar.top/wkdaily/tvhelper-docker/raw/branch/master/shells/kodi.sh && chmod +x kodi.sh && ./kodi.sh
|
||||
# wget -O kodi.sh https://github.com/wukongdaily/tvhelper-docker/raw/master/shells/kodi.sh && chmod +x kodi.sh && ./kodi.sh
|
||||
|
||||
#********************************************************
|
||||
source common.sh
|
||||
@ -147,39 +147,41 @@ set_kodi_to_chinese() {
|
||||
echo -e "${GREEN}解压中文语言包到本地临时目录...${NC}"
|
||||
unzip -o /tvhelper/kodi/resource.language.zh_cn-10.0.64.zip -d "$TEMP_DIR"
|
||||
|
||||
# 1、推送整个解压后的文件夹到Kodi的Add-ons目录
|
||||
# 推送整个解压后的文件夹到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"
|
||||
|
||||
# 2、上传配置文件——更新
|
||||
adb push /tvhelper/kodi/guisettings.xml $KODI_SETTINGS_PATH
|
||||
echo -e "${GREEN}Kodi的字体和语言设置已更新,正在为您尝试打开KODI,请根据提示完成KODI初始化。${NC}"
|
||||
sleep 2
|
||||
# 先下载配置文件
|
||||
adb pull $KODI_SETTINGS_PATH /tmp/guisettings.xml
|
||||
|
||||
# 使用sed命令更新XML文件中的字体和语言设置
|
||||
sed -i 's|<setting id="lookandfeel.font"[^>]*>.*</setting>|<setting id="lookandfeel.font">Arial</setting>|g' /tmp/guisettings.xml
|
||||
sed -i 's|<setting id="locale.language"[^>]*>.*</setting>|<setting id="locale.language">resource.language.zh_cn</setting>|g' /tmp/guisettings.xml
|
||||
|
||||
# 再上传配置文件——更新
|
||||
adb push /tmp/guisettings.xml $KODI_SETTINGS_PATH
|
||||
|
||||
# 重启Kodi
|
||||
#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
|
||||
|
||||
adb shell am start -a android.intent.action.MAIN -n org.xbmc.kodi/.Main
|
||||
echo -e "${GREEN}Kodi的字体和语言设置已更新。${NC}"
|
||||
}
|
||||
|
||||
# 安装apk
|
||||
install_apk() {
|
||||
local apk_local_path=$1
|
||||
local apk_download_url=$1
|
||||
local package_name=$2
|
||||
local filename=$(basename "$apk_local_path")
|
||||
|
||||
# 检查APK文件是否存在
|
||||
if [ ! -f "$apk_local_path" ]; then
|
||||
echo -e "${RED}错误: APK文件不存在,请更新docker镜像后重试。${NC}"
|
||||
return 1
|
||||
fi
|
||||
|
||||
local filename=$(basename "$apk_download_url")
|
||||
# 下载APK文件到临时目录
|
||||
wget -O /tmp/$filename "$apk_download_url"
|
||||
if check_adb_connected; then
|
||||
# 卸载旧版本的APK(如果存在)
|
||||
echo -e "${GREEN}正在推送和安装${filename},请耐心等待...${NC}"
|
||||
adb uninstall "$package_name" >/dev/null 2>&1
|
||||
echo -e "${GREEN}正在推送和安装${filename},请耐心等待...${NC}"
|
||||
|
||||
# 模拟安装进度
|
||||
echo -ne "${BLUE}"
|
||||
@ -190,7 +192,7 @@ install_apk() {
|
||||
|
||||
# 保存进度指示进程的PID
|
||||
PROGRESS_PID=$!
|
||||
install_result=$(adb install -r $apk_local_path 2>&1)
|
||||
install_result=$(adb install -r /tmp/$filename 2>&1)
|
||||
|
||||
# 安装完成后,终止进度指示进程
|
||||
kill $PROGRESS_PID
|
||||
@ -200,10 +202,11 @@ 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
|
||||
@ -211,22 +214,22 @@ install_apk() {
|
||||
|
||||
# 安装KODI
|
||||
install_kodi() {
|
||||
install_apk "/tvhelper/kodi/kodi.apk" "org.xbmc.kodi"
|
||||
install_apk "https://mirror.karneval.cz/pub/xbmc/releases/android/arm/kodi-20.4-Nexus-armeabi-v7a.apk" "org.xbmc.kodi"
|
||||
}
|
||||
|
||||
# 菜单
|
||||
menu_options=(
|
||||
"连接ADB"
|
||||
"断开ADB"
|
||||
"安装KODI 20.5 并设置中文"
|
||||
#"设置KODI的语言为简体中文"
|
||||
"安装KODI 20.4"
|
||||
"设置KODI的语言为简体中文"
|
||||
"赞助|打赏"
|
||||
)
|
||||
|
||||
commands=(
|
||||
["连接ADB"]="connect_adb"
|
||||
["断开ADB"]="disconnect_adb"
|
||||
["安装KODI 20.5 并设置中文"]="install_kodi"
|
||||
["安装KODI 20.4"]="install_kodi"
|
||||
["设置KODI的语言为简体中文"]="set_kodi_to_chinese"
|
||||
["赞助|打赏"]="sponsor"
|
||||
)
|
||||
|
@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
# wget -O sony.sh https://cafe.cpolar.top/wkdaily/tvhelper-docker/raw/branch/master/shells/sony.sh && chmod +x sony.sh && ./sony.sh
|
||||
# wget -O sony.sh https://github.com/wukongdaily/tvhelper-docker/raw/master/shells/sony.sh && chmod +x sony.sh && ./sony.sh
|
||||
#********************************************************
|
||||
source common.sh
|
||||
# 定义红色文本
|
||||
@ -259,7 +259,7 @@ menu_options=(
|
||||
"安装Netflix最新版"
|
||||
"安装Apple TV+最新版"
|
||||
"安装Disney+最新版"
|
||||
"安装HBO MAX最新版"
|
||||
"安装HBO GO最新版"
|
||||
"安装myTVSuper最新版"
|
||||
"安装Youtube-FireTV版"
|
||||
"赞助|打赏"
|
||||
@ -271,7 +271,7 @@ commands=(
|
||||
["安装Netflix最新版"]="install_netflix"
|
||||
["安装Disney+最新版"]="install_disney"
|
||||
["安装Youtube-FireTV版"]="install_youtube"
|
||||
["安装HBO MAX最新版"]="install_hbogo"
|
||||
["安装HBO GO最新版"]="install_hbogo"
|
||||
["安装Apple TV+最新版"]="install_appletv"
|
||||
["安装myTVSuper最新版"]="install_mytvsuper"
|
||||
["赞助|打赏"]="sponsor"
|
||||
|
377
shells/tv.sh
377
shells/tv.sh
@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
# wget -O tv.sh https://cafe.cpolar.top/wkdaily/tvhelper-docker/raw/branch/master/shells/tv.sh && chmod +x tv.sh && ./tv.sh
|
||||
# wget -O tv.sh https://github.com/wukongdaily/tvhelper-docker/raw/master/shells/tv.sh && chmod +x tv.sh && ./tv.sh
|
||||
source common.sh
|
||||
apk_path="/tvhelper/apks/"
|
||||
# 定义红色文本
|
||||
@ -13,24 +13,6 @@ 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
|
||||
|
||||
# 设置全局命令 p
|
||||
cp -f "$0" /usr/local/bin/t
|
||||
chmod +x /usr/local/bin/t
|
||||
|
||||
get_docker_version() {
|
||||
VERSION=$(grep -E '^VERSION=' /etc/environment | cut -d '=' -f2)
|
||||
echo $VERSION
|
||||
}
|
||||
|
||||
# 使用get_docker_version函数
|
||||
docker_version=$(get_docker_version)
|
||||
|
||||
show_user_tips() {
|
||||
read -p "按 Enter 键继续..."
|
||||
@ -82,7 +64,7 @@ connect_adb() {
|
||||
last_name=$(head -n 1 "$history_file")
|
||||
# 检查历史中的IP地址是否合法
|
||||
if is_valid_ip "$last_ip"; then
|
||||
echo -e "上次连接的设备是 ${GREEN}${last_name}${NC}IP地址为 ${GREEN}${last_ip}${NC}\n您是否要再次连接到此设备?确认请直接回车,否定输入n再回车[Y/n]"
|
||||
echo -e "${YELLOW}上次连接的设备是 ${last_name},IP地址为 ${last_ip}。\n您是否要再次连接到此设备?确认请回车,否定输入n再回车[Y/n]${NC}"
|
||||
read answer
|
||||
if [[ "$answer" == "N" || "$answer" == "n" ]]; then
|
||||
echo -e "${YELLOW}请手动输入电视盒子的完整IP地址:${NC}"
|
||||
@ -398,12 +380,6 @@ install_dbmarket() {
|
||||
install_apk "${apk_path}dangbeimarket.apk" "com.dangbeimarket"
|
||||
}
|
||||
|
||||
# 安装沙发管家
|
||||
install_shafa() {
|
||||
echo -e "${BLUE}安装过程若出现弹框,请点击详情后选择【仍然安装】即可${NC}"
|
||||
install_apk "${apk_path}sfgj.apk" "com.shafa.market"
|
||||
}
|
||||
|
||||
# 安装网络获取的apk
|
||||
install_web_apk() {
|
||||
local apk_download_url=$1
|
||||
@ -448,7 +424,7 @@ install_web_apk() {
|
||||
# 安装my-tv
|
||||
# release地址、包名、apk命名前缀
|
||||
install_mytv_latest_apk() {
|
||||
echo -e "${BLUE}项目主页:https://github.com/yaoxieyoulei/mytv-android ${NC}"
|
||||
echo -e "${BLUE}项目主页:https://github.com/lizongying/my-tv ${NC}"
|
||||
install_apk "${apk_path}mytv.apk" "com.lizongying.mytv"
|
||||
}
|
||||
|
||||
@ -650,7 +626,7 @@ install_mixapps() {
|
||||
}
|
||||
# 进入KODI助手
|
||||
kodi_helper() {
|
||||
wget -O kodi.sh https://cafe.cpolar.top/wkdaily/tvhelper-docker/raw/branch/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
|
||||
}
|
||||
|
||||
# 安装fire tv版本youtube
|
||||
@ -689,20 +665,71 @@ install_youtube_firetv() {
|
||||
|
||||
# 进入tvbox安装助手
|
||||
enter_tvbox_helper() {
|
||||
wget -O box.sh https://cafe.cpolar.top/wkdaily/tvhelper-docker/raw/branch/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
|
||||
}
|
||||
|
||||
# 进入sony电视助手
|
||||
enter_sonytv() {
|
||||
wget -O sony.sh https://cafe.cpolar.top/wkdaily/tvhelper-docker/raw/branch/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
|
||||
}
|
||||
|
||||
# 更新脚本
|
||||
|
||||
# 菜单
|
||||
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 "正在更新脚本..."
|
||||
# 下载最新的脚本到临时文件
|
||||
wget -O /tmp/script.sh https://cafe.cpolar.top/wkdaily/tvhelper-docker/raw/branch/master/shells/tv.sh
|
||||
wget -O /tmp/script.sh https://gitee.com/wukongdaily/tvhelper-docker/raw/master/shells/tv.sh
|
||||
# 替换当前脚本
|
||||
if [ -f /tmp/script.sh ]; then
|
||||
chmod +x /tmp/script.sh
|
||||
@ -715,288 +742,6 @@ 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应用商店"
|
||||
"安装当贝市场"
|
||||
"安装沙发管家"
|
||||
"安装新版我的电视"
|
||||
"安装BBLL(xiaye13579)"
|
||||
"安装文件管理器+"
|
||||
"安装Downloader"
|
||||
"安装Mix-Apps用于显示全部应用"
|
||||
"返回主菜单"
|
||||
)
|
||||
|
||||
commands_essentials=(
|
||||
["安装电视订阅助手"]="install_subhelper_apk"
|
||||
["安装Emotn Store应用商店"]="install_emotn_store"
|
||||
["安装当贝市场"]="install_dbmarket"
|
||||
["安装新版我的电视"]="install_mytv_latest_apk"
|
||||
["安装BBLL(xiaye13579)"]="install_BBLL_latest_apk"
|
||||
["安装文件管理器+"]="install_file_manager_plus"
|
||||
["安装Downloader"]="install_downloader"
|
||||
["安装Mix-Apps用于显示全部应用"]="install_mixapps"
|
||||
["安装沙发管家"]="install_shafa"
|
||||
)
|
||||
|
||||
# 替换或恢复系统桌面
|
||||
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
|
||||
@ -1036,9 +781,9 @@ show_menu() {
|
||||
mkdir -p /tvhelper/shells/data
|
||||
clear
|
||||
echo "***********************************************************************"
|
||||
echo -e "* ${YELLOW}盒子助手Docker版 (v$(get_docker_version))${NC} "
|
||||
echo -e "* ${YELLOW}盒子助手Docker版 (v1.0.0)${NC} "
|
||||
echo -e "* ${GREEN}base Alpine Linux${NC} "
|
||||
echo -e "* ${RED}请确保电视盒子和Docker宿主机处于${NC}${BLUE}同一网段${NC}\n* ${RED}且电视盒子开启了${NC}${BLUE}USB调试模式(adb开关)${NC} "
|
||||
echo -e "* ${YELLOW}【注意】再次运行 只输入 t 即可 ${NC} "
|
||||
echo "**********************************************************************"
|
||||
echo "$(get_status)"
|
||||
echo "$(get_tvbox_model_name)"
|
||||
|
BIN
sony/appletv/appletv.apk
Normal file
BIN
sony/appletv/appletv.apk
Normal file
Binary file not shown.
BIN
sony/appletv/split_config.armeabi_v7a.apk
Normal file
BIN
sony/appletv/split_config.armeabi_v7a.apk
Normal file
Binary file not shown.
BIN
sony/appletv/split_config.es.apk
Normal file
BIN
sony/appletv/split_config.es.apk
Normal file
Binary file not shown.
BIN
sony/appletv/split_config.xhdpi.apk
Normal file
BIN
sony/appletv/split_config.xhdpi.apk
Normal file
Binary file not shown.
BIN
sony/appletv/split_config.zh.apk
Normal file
BIN
sony/appletv/split_config.zh.apk
Normal file
Binary file not shown.
BIN
sony/disney/disney.apk
Normal file
BIN
sony/disney/disney.apk
Normal file
Binary file not shown.
BIN
sony/disney/split_config.xhdpi.apk
Normal file
BIN
sony/disney/split_config.xhdpi.apk
Normal file
Binary file not shown.
BIN
sony/disney/split_config.zh.apk
Normal file
BIN
sony/disney/split_config.zh.apk
Normal file
Binary file not shown.
BIN
sony/hbogo/hbo-go.apk
Normal file
BIN
sony/hbogo/hbo-go.apk
Normal file
Binary file not shown.
BIN
sony/hbogo/split_config.xhdpi.apk
Normal file
BIN
sony/hbogo/split_config.xhdpi.apk
Normal file
Binary file not shown.
BIN
sony/hbogo/split_config.zh.apk
Normal file
BIN
sony/hbogo/split_config.zh.apk
Normal file
Binary file not shown.
BIN
sony/mytvsuper/mytvsuper.apk
Normal file
BIN
sony/mytvsuper/mytvsuper.apk
Normal file
Binary file not shown.
BIN
sony/mytvsuper/split_config.xhdpi.apk
Normal file
BIN
sony/mytvsuper/split_config.xhdpi.apk
Normal file
Binary file not shown.
BIN
sony/mytvsuper/split_config.zh.apk
Normal file
BIN
sony/mytvsuper/split_config.zh.apk
Normal file
Binary file not shown.
BIN
sony/netflix/netflix.apk
Normal file
BIN
sony/netflix/netflix.apk
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user