4.0 KiB
4.0 KiB
padsleep_adb
基于树莓派,通过 ADB 控制安卓平板自动亮屏和息屏的守护程序。
功能特性
- 定时控制:根据配置的时间段自动亮屏/息屏
- 超时保护:屏幕亮起超过设定时长且不在亮屏时间段内 → 自动息屏
- 无线 ADB:支持通过 TCP/IP 连接安卓设备(无线调试)
- TUI 管理:提供终端界面工具,方便查看状态和修改配置
- IPC 通信:通过 Unix Socket 与 TUI 工具通信
- 自动重连:无线连接断开后自动尝试重新连接
系统要求
- 树莓派(或其他 Linux 设备)
- Python 3.10+
- ADB (Android Debug Bridge)
- 安卓平板(已开启 USB 调试或无线调试)
安装
1. 安装系统依赖
# Debian/Ubuntu
sudo apt update
sudo apt install adb python3-curses
# 树莓派 OS
sudo apt install adb
2. 安装 Python 依赖
cd padsleep_adb
pip install -r requirements.txt
依赖列表:
adbutils>=2.12.0— Python ADB 库
使用方法
启动守护程序
python padsleep.py
守护程序会自动:
- 加载配置文件
config.json - 检测 ADB 设备
- 启动 IPC 服务(
/tmp/padsleep.sock) - 进入主循环,定期检查屏幕状态
启动 TUI 管理工具
# 新终端窗口
python padsleep_tui.py
TUI 快捷键:
| 按键 | 功能 |
|---|---|
↑/k ↓/j |
选择亮屏时间段 |
A |
新增亮屏时间段 |
E |
编辑选中时间段 |
D |
删除选中时间段 |
S |
选择 ADB 设备 |
W |
无线连接设备 |
R |
刷新状态 |
L |
重载守护进程配置 |
F |
强制息屏 |
N |
强制亮屏 |
T |
重新连接守护进程 |
H |
显示帮助 |
Q |
退出 |
配置说明
配置文件 config.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 中设置:
{
"adb_wireless_host": "192.168.1.100",
"adb_wireless_port": 5555,
"adb_wireless_auto_connect": true
}
方式二:TUI 手动连接
- 启动 TUI 工具
- 按
W键 - 输入 IP 地址和端口
- 确认连接
开启安卓设备无线调试
- 连接 USB,执行
adb tcpip 5555 - 或在设备上:设置 → 开发者选项 → 无线调试 → 开启
连接优先级
程序采用 USB 优先 策略:
- 首先尝试 USB 连接
- 如果 USB 不可用且配置了无线,尝试无线连接
- 无线连接断开后自动重连(最多 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