openhardwarelab · 面向普通用户/开发者。约 30–60 分钟。
用一台吃灰的安卓机顶盒 + 一个 USB 摄像头,做成:直播 + 循环录像 + 手机远程看 + 移动侦测/告警。
getprop ro.product.cpu.abi # arm64 / armeabi-v7a getprop ro.build.version.release; getprop ro.build.version.sdk cat /proc/meminfo; df -k
记下:架构 / 安卓版本 / 内存 / 分区(决定后面能不能装、swap 放哪个分区)。
盒子开 ADB 调试 → 电脑:
adb connect 192.168.1.100:5555 # 换成你的盒子 IP adb devices
连不上就按你盒子的说明(有的在「运维调试」里,可能弹随机码)。串口(TTL)是备用生命线。
摄像机服务用 Python3 + ffmpeg,建议放在盒子的 Linux chroot 里跑:
1. 准备一个 Ubuntu 根文件系统镜像,放到盒子 /sdcard/linux.img。
2. losetup + mount 挂到 /data/linux。
3. 在子系统里装依赖:
`sh
apt-get update
apt-get install -y python3 python3-pip ffmpeg openssh-server ntfs-3g
# 要用「物体识别」再加: pip3 install onnxruntime
`
详细见 开发者资料/系统改造手册.md 的「Linux 子系统」。
一键(电脑上,切到安装文件目录):
./一键安装.sh 192.168.1.100
手动:把安装文件里的脚本推进子系统:
adb push 摄像机服务.py /data/linux/root/cam.py adb push 监控守护.py /data/linux/root/monitor.py adb push 物体识别.py /data/linux/root/det.py # 可选 adb push 画面检测.py /data/linux/root/look.py adb push 局域网互传.py /data/linux/root/transfer.py adb push 系统工具服务.py /data/linux/root/boxctl.py
http://<盒子IP>:8891/ → 看到直播画面。3-开机自启.sh 开机拉起(见第 8 步)。桌面.apk(已改为开机直进监控画面)后,开机就直接是监控界面,不再先进桌面;设置都在监控页面里(点格子进单路页可设录像/清晰度/识别)。页面能做什么:
/mnt/sdcard/cctv,30 秒一段,空间不足自动覆盖最旧。 💾 录像盘[标签] 总/已用/空闲 · 已录N段 ≈ 时长 · 可再录 ≈ 时长。
http://<盒子IP>:8891/。/root/tunnel.url。/root/cam.set 里改。1. 把 3-开机自启.sh 放到 /data/startlinux.sh,4-开机兜底.sh 放到 /data/bootfix.sh。
2. 在盒子 init 里加一行:
`sh
sh /data/startlinux.sh &
`
3. 重启复查:子系统已挂、cam/monitor/look/transfer/boxctl 都在跑、盒子开机直接进入监控画面(不再进桌面)。
兜底脚本会处理「开机卡在升级弹窗」的情况,并确保监控画面在前台(不再拉桌面图标)。
http://<盒子IP>:8891/ 看直播与回放。人/车… 就记事件 + 存告警图。用 物体识别.py + 识别模型-yolov8n_416.onnx。/root/alert.cfg 填你的通知服务(ntfy / Bark / 服务号…),命中目标即推送(含告警图直链)。—— openhardwarelab