OpenHW Lab · 约 40–60 分钟 · 适用 魔百盒 HG680-R(MStar 平台 / Android 4.4.4)。
getprop ro.product.model # HG680-R getprop ro.board.platform # clippers getprop ro.build.version.release # 4.4.4
盒子里(串口)先起 adbd:
setprop service.adb.tcp.port 5555 start adbd
电脑 adb connect <盒子IP>:5555。若显示 offline/unauthorized(本 ROM 会),把电脑公钥写进盒子:
# 串口里(可 root):把 ~/.android/adbkey.pub 的内容分块写入 su 0 sh -c "mkdir -p /data/misc/adb" su 0 sh -c "echo -n '<公钥前半段>' > /data/misc/adb/adb_keys" su 0 sh -c "echo -n '<公钥后半段>' >> /data/misc/adb/adb_keys" su 0 sh -c "echo >> /data/misc/adb/adb_keys" # 结尾换行 su 0 setprop ctl.restart adbd
⚠️ 本机su 0 <cmd>可用;su -c "长串"不行。
cd install ./一键安装.sh <盒子IP>
adb push install/桌面.apk /data/local/tmp/desk.apk adb shell 'pm install -r /data/local/tmp/desk.apk' adb shell 'am start -n com.openhwlab.desktop/.MainActivity' adb shell 'pm disable com.fiberhome.iptv' # 禁运营商桌面(可 pm enable 还原)
桌面图标双击打开;含 浏览器/当贝市场/当贝投屏/电视直播/回收站/设置… 等。
装 armv7 的 Firefox 68 多语言(org.mozilla.firefox)后,写桌面UA配置:
P=$(adb shell 'ls -d /data/data/org.mozilla.firefox/files/mozilla/*/ | head -1') # profile目录
adb push install/firefox-user.js ${P}user.js
adb shell 'am force-stop org.mozilla.firefox' # 重启生效
adb shell 'pm disable com.android.browser' # 否则点链接弹选择框
firefox-user.js 里含:Windows 桌面 UA、desktopWidth=1280、关字体膨胀、DPR=1、单标签、主页=百度、关会话恢复。
adb push install/1-系统瘦身.sh /data/瘦身.sh; adb shell 'sh /data/瘦身.sh' adb push install/2-内存扩容.sh /data/扩容.sh; adb shell 'sh /data/扩容.sh'
建 Ubuntu 20.04 armhf 子系统到 /data/linux(chroot,盒子能上网可直接 apt):
# 解包 ubuntu-base-20.04.5-base-armhf.tar.gz 到 /data/linux;挂 proc/sys/dev # 子系统内: apt-get install -y --no-install-recommends python3 (互传用) # 二维码库(可选): pip install qrcodegen adb push install/5-局域网互传.py /data/linux/root/transfer.py adb push install/6-系统工具服务.py /data/linux/root/boxctl.py
钩到 /system/bin/opt/etc/init.fhservice.sh(开机执行)→ 调 /data/startlinux.sh:
adb push install/开机自启-盒子.sh /data/startlinux.sh adb shell 'chmod 755 /data/startlinux.sh' adb shell 'mount -o remount,rw /system' adb shell '[ -f /system/bin/opt/etc/init.fhservice.sh.bak ] || busybox cp /system/bin/opt/etc/init.fhservice.sh /system/bin/opt/etc/init.fhservice.sh.bak' adb shell 'echo "sh /data/startlinux.sh >/dev/null 2>&1 &" >> /system/bin/opt/etc/init.fhservice.sh'
/data/startlinux.sh:等 sys.boot_completed=1 → 挂子系统 → start-stop-daemon 起 transfer/boxctl → swap → setprop ctl.restart adbd(带 5555 端口)。
本 ROM 系统指针是"手"、且指针处有白圈。刷入本目录已改好的 framework-res.patched.apk:
adb shell 'mount -o remount,rw /system' adb shell 'cp /system/framework/framework-res.apk /data/fwres.bak' # 备份 adb push install/framework-res.patched.apk /system/framework/framework-res.apk adb shell 'chmod 644 /system/framework/framework-res.apk; reboot'
改动:res/drawable-hdpi/pointer_arrow.png→箭头;res/drawable-xhdpi/pointer_spot_{hover,touch,anchor}.png→透明。
⚠️ 改核心包有风险(本次实测开机正常);还原:cp /data/fwres.bak /system/framework/framework-res.apk 后重启。
adb shell 'reboot'
# 等 ~2 分钟
ping <盒子IP>
adb connect <盒子IP>:5555; adb shell 'dumpsys window windows | busybox grep mCurrentFocus' # 桌面
curl -s -o /dev/null -w '%{http_code}\n' http://<盒子IP>:8890/ # 200
http://<盒子IP>:8890/。pm disable com.android.browser。—— OpenHW Lab · 智能硬件开放实验室 · hi@openhwlab.com