Posted in: PC/macOS, TV, Ubuntu/Linux

利用 adb 命令远程启动安卓电视上的 app

之前有篇文章里面写到我用家里的安卓电视搭建了 emby 服务器。

这样子有个问题是:emby server 这个 app 太笨重了。而安卓电视机虽然看着个头很大,配置却很渣,内存才 3GB。因此 emby server 有时候会被系统自动杀掉。这个“有时候”到底是什么时候,说不清,有时每隔几周,有时每隔几天。

如果发现服务不通的时候、人正好在家里,那简单,打开电视机把这个 server 重新运行一下就好了。可是如果那个时候不在家里就尴尬了。

询问了 ChatGPT,对方说了一大堆巴拉巴拉表示安卓电视机不适合搭建服务器,应该用台式电脑或者 NAS 等类似设备。但目前没这个条件。其实我也不需要保证它 7天*24小时都正常在线,只需要找到一个办法、万一断线的时候也能够远程重启就可以了。这个办法找到了,就是 adb 命令。

在电脑上(macOS)进行 adb 远程操作

android 官方提供 macOS 版本的 adb 命令行工具。第一次操作时需要人在家里直接对电视机操作,以后就不用了。

  1. 在电视机上打开“开发者选项”(具体步骤略,AI 直接能搜到)
  2. 在 macOS 电脑上,利用 adb 通过 IP 地址连接到电视机(具体步骤略,AI 直接能搜到)。这一步很像 SSH 。
  3. 此时电视机上会出现对话框提醒你是否信任该设备,勾选“始终信任这台设备”,然后确定。以后就可以不用特意打开电视机了。
  4. adb shell cmd package resolve-activity --brief com.emby.embyserver 利用这条命令查询 app 启动器的具体路径。此时会输出两行,第二行是 com.emby.embyserver/XXXXXXXXXX.MainActivity,这是下一步要用的内容。
  5. adb shell am start -n com.emby.embyserver/XXXXXXXXXX.MainActivity,就能启动它了。

如果不在家里,则用 WireGuard 翻回家里的内网,就可以正常操作。听说在🇨🇳使用 WireGuard 非常困难(因为 WireGuard 基于 UDP,而🇨🇳特色的运营商会干扰 UDP),这就是润的好处了。

在手机上(iOS)进行 adb 远程操作

手机上且不说没有终端,就算有,也不可能让你安装 adb,怎么办呢?此时就要绕个弯:虽然手机上没有 adb,但是家里的路由器上可以有啊!而手机可以登录到路由器啊。

  1. 在路由器上通过 OpenWrt 自带的包管理系统安装 adb。
  2. 在手机上用浏览器登录 OpenWrt 管理页面,利用里面的 tty 终端窗口即可进行 adb 操作。

Comment (1) on "利用 adb 命令远程启动安卓电视上的 app"

  1. Google Chrome 141.0.0.0 GNU/Linux x64

    可以做了脚本放在openwrt里用crontab定期检测
    如果电视上面的embyserver不在了, 就重新启动

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注