Files
padsleep_adb/README.md
T
kushidou 3dc30db3d6 更新 README 文档
- 完善功能特性说明
- 添加安装和使用指南
- 添加配置字段详细说明
- 添加无线 ADB 连接说明
- 添加 TUI 快捷键表格
- 添加文件结构说明
2026-07-10 10:52:06 +08:00

167 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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