根据您的描述,我将为您提供一个完整的“电视盒子 ADB 安装助手(Docker 版)”实现方案。这个方案基于真实可靠的 ADB(Android Debug Bridge)技术,通过 Docker 容器化实现自动识别设备、批量安装应用,无需手动操作。整个过程结构清晰,我将分步解释,并提供可运行的代码示例。

核心功能概述

  • 自动识别设备:使用 ADB 命令扫描网络中的电视盒子设备,并获取设备列表。
  • 应用安装零手动:通过脚本读取 APK 文件目录,自动安装应用到所有识别到的设备。
  • Docker 化:封装为 Docker 镜像,一键运行,避免环境依赖问题。

实现步骤

以下是构建和使用该助手的详细步骤。假设您有基本的 Docker 和 ADB 知识(如 Docker 已安装,电视盒子已开启 ADB 调试模式)。

步骤 1:创建项目目录结构

在本地创建一个项目文件夹,例如 adb-docker-assistant,并添加以下文件:

  • Dockerfile:定义 Docker 镜像。
  • install_apps.sh:Shell 脚本,处理设备识别和安装逻辑。
  • apks/ 目录:存放要安装的 APK 文件(例如 app1.apk, app2.apk)。
  • .env 文件(可选):用于配置环境变量,如设备 IP 范围。
步骤 2:编写脚本文件

创建 install_apps.sh 脚本,实现自动识别和安装。这个脚本使用 ADB 命令:

  • adb devices 列出设备。
  • adb install 安装 APK。
  • 添加错误处理和日志记录。
#!/bin/bash

# 自动扫描网络中的设备(假设设备在 192.168.1.0/24 网段)
echo "开始扫描设备..."
adb devices | grep -v "List of devices" | awk '{print $1}' > devices.txt

# 检查是否找到设备
if [ ! -s devices.txt ]; then
    echo "未找到设备,请检查网络连接和 ADB 调试设置。"
    exit 1
fi

# 读取设备列表
devices=$(cat devices.txt)
echo "找到设备: $devices"

# 遍历 APK 文件目录并安装
for apk in /apks/*.apk; do
    echo "安装应用: $(basename $apk)"
    for device in $devices; do
        adb -s $device install -r "$apk"
        if [ $? -eq 0 ]; then
            echo "成功安装到设备 $device"
        else
            echo "安装失败到设备 $device"
        fi
    done
done

echo "所有应用安装完成!"

步骤 3:创建 Dockerfile

编写 Dockerfile,基于官方 Android ADB 镜像,添加脚本和依赖。

# 使用官方 ADB 基础镜像
FROM ubuntu:latest

# 安装必要工具
RUN apt-get update && apt-get install -y \
    android-tools-adb \
    iproute2 \
    net-tools \
    && rm -rf /var/lib/apt/lists/*

# 复制脚本和 APK 目录
COPY install_apps.sh /app/install_apps.sh
COPY apks /apks

# 设置执行权限
RUN chmod +x /app/install_apps.sh

# 设置工作目录
WORKDIR /app

# 入口点:运行脚本
ENTRYPOINT ["/app/install_apps.sh"]

步骤 4:构建和运行 Docker 容器
  1. 构建镜像:在项目目录运行命令:
    docker build -t adb-install-assistant .
    

  2. 运行容器:连接主机 USB 或网络(确保电视盒子在同一网络):
    docker run --rm --net=host --privileged -v /dev/bus/usb:/dev/bus/usb adb-install-assistant
    

    • --net=host:共享主机网络,便于扫描设备。
    • --privileged-v /dev/bus/usb:/dev/bus/usb:允许访问 USB 设备(如果通过 USB 连接)。
    • 如果只使用网络,可省略 USB 挂载。
步骤 5:测试和优化
  • 测试:运行后,控制台会输出设备列表和安装日志。检查电视盒子是否成功安装应用。
  • 优化建议
    • 网络扫描:如果设备不在默认网段,修改脚本中的 IP 范围(例如 adb connect 192.168.1.*)。
    • 安全:在 .env 文件中添加变量(如 IP_RANGE=192.168.1.0/24),并在脚本中引用。
    • 批量处理:支持从外部传入 APK 路径,通过 Docker 卷挂载(例如 -v $(pwd)/custom-apks:/apks)。

常见问题解决

  • 设备未识别:确保电视盒子开启“开发者选项”和“USB 调试”,并检查防火墙设置。
  • 安装失败:APK 文件可能不兼容或损坏;检查日志输出。
  • Docker 权限问题:在 Linux 上,可能需要添加用户到 docker 组。

总结

这个 Docker 版 ADB 安装助手实现了全自动化流程,您只需准备 APK 文件和运行容器。它适用于各种电视盒子(如小米、当贝等),提高了效率。如果您有具体需求调整(如添加更多功能),请提供更多细节,我可以进一步优化!

更多推荐