# padsleep_adb 基于树莓派,通过 ADB 控制安卓平板自动亮屏和息屏的守护程序。 ## 功能特性 - **定时控制**:根据配置的时间段自动亮屏/息屏 - **超时保护**:屏幕亮起超过设定时长且不在亮屏时间段内 → 自动息屏 - **无线 ADB**:支持通过 TCP/IP 连接安卓设备(无线调试) - **TUI 管理**:提供终端界面工具,方便查看状态和修改配置 - **IPC 通信**:通过 Unix Socket 与 TUI 工具通信 - **自动重连**:无线连接断开后自动尝试重新连接 ## 系统要求 - 树莓派(或其他 Linux 设备) - Python 3.10+ - ADB (Android Debug Bridge) - 安卓平板(已开启 USB 调试或无线调试) ## 安装 ### 1. 安装系统依赖 ```bash # Debian/Ubuntu sudo apt update sudo apt install adb python3-curses # 树莓派 OS sudo apt install adb ``` ### 2. 安装 Python 依赖 ```bash cd padsleep_adb pip install -r requirements.txt ``` 依赖列表: - `adbutils>=2.12.0` — Python ADB 库 ## 使用方法 ### 启动守护程序 ```bash python padsleep.py ``` 守护程序会自动: 1. 加载配置文件 `config.json` 2. 检测 ADB 设备 3. 启动 IPC 服务(`/tmp/padsleep.sock`) 4. 进入主循环,定期检查屏幕状态 ### 启动 TUI 管理工具 ```bash # 新终端窗口 python padsleep_tui.py ``` TUI 快捷键: | 按键 | 功能 | |------|------| | `↑/k` `↓/j` | 选择亮屏时间段 | | `A` | 新增亮屏时间段 | | `E` | 编辑选中时间段 | | `D` | 删除选中时间段 | | `S` | 选择 ADB 设备 | | `W` | 无线连接设备 | | `R` | 刷新状态 | | `L` | 重载守护进程配置 | | `F` | 强制息屏 | | `N` | 强制亮屏 | | `T` | 重新连接守护进程 | | `H` | 显示帮助 | | `Q` | 退出 | ## 配置说明 配置文件 `config.json` 示例: ```json { "screen_on_periods": [ {"start": "08:00", "end": "22:00"} ], "check_interval_seconds": 30, "auto_sleep_delay_minutes": 5, "adb_device_serial": "", "adb_wireless_host": "", "adb_wireless_port": 5555, "adb_wireless_auto_connect": false } ``` ### 字段说明 | 字段 | 类型 | 默认值 | 说明 | |------|------|--------|------| | `screen_on_periods` | array | `[{"start":"08:00","end":"22:00"}]` | 亮屏时间段列表,支持跨天(如 22:00~08:00) | | `check_interval_seconds` | int | `30` | 检查间隔(秒) | | `auto_sleep_delay_minutes` | int | `5` | 非亮屏时段屏幕亮起多久后自动息屏(分钟) | | `adb_device_serial` | string | `""` | 指定 USB 设备 serial,空表示自动选择第一个 | | `adb_wireless_host` | string | `""` | 无线设备 IP 地址,空表示不使用无线连接 | | `adb_wireless_port` | int | `5555` | 无线设备端口 | | `adb_wireless_auto_connect` | bool | `false` | 启动时是否自动连接无线设备 | ## 无线 ADB 连接 ### 方式一:配置文件预设 在 `config.json` 中设置: ```json { "adb_wireless_host": "192.168.1.100", "adb_wireless_port": 5555, "adb_wireless_auto_connect": true } ``` ### 方式二:TUI 手动连接 1. 启动 TUI 工具 2. 按 `W` 键 3. 输入 IP 地址和端口 4. 确认连接 ### 开启安卓设备无线调试 1. 连接 USB,执行 `adb tcpip 5555` 2. 或在设备上:设置 → 开发者选项 → 无线调试 → 开启 ### 连接优先级 程序采用 **USB 优先** 策略: 1. 首先尝试 USB 连接 2. 如果 USB 不可用且配置了无线,尝试无线连接 3. 无线连接断开后自动重连(最多 3 次) ## 文件结构 ``` padsleep_adb/ ├── padsleep.py # 守护程序主程序 ├── padsleep_tui.py # TUI 管理工具 ├── config.json # 配置文件(首次运行自动生成) ├── requirements.txt # Python 依赖 └── README.md # 本文档 ``` ## 开发说明 - 在 Windows 上开发,在树莓派上运行 - 使用 `adbutils` 库与 ADB Server 通信 - IPC 使用 Unix Socket + JSON 行协议 - TUI 使用 Python `curses` 库 ## 许可证 MIT License