远程安卓盒子N1安装APP-远程查看机顶盒屏幕画面等
实测远程协助安卓电视盒子,远程控制机顶盒(远程控制安卓电视),远程协助给家人的机顶盒安装APP(包括删除、管理APP等),远程操作N1电视盒子
有什么用
远程控制机顶盒,给老人的智能安卓机顶盒(或者安卓电视)安装IPTV类APP
远程给家人的机顶盒安装APP,远程操作N1电视盒子
充当遥控器,实现遥控器的绝大多数功能
远程协助操作安卓电视盒子
怎么用
步骤
(前提是你已经可以配置了路由器的远程,我已经用frps和frpc远程穿透连接起来,再使用了NPM反代出路由器的WEB控制页面,这样一顿操作,后续实现会丝滑许多)
-
激活N1安卓电视盒子,开机,或者按机顶盒的遥控器
- 在路由器中找到安卓盒子(或者安卓电视)的IP地址
- 检测是否激活设备的办法,ping 盒子的IP,如果已经ping通,请跳过这步
-
设置远程FRP服务器(服务端)
- 具体参见文章:Docker搭建FRP内网穿透服务,如果已有frps服务器可用,请跳过这步
-
设置受控端机顶盒所在的路由器上的frpc客户端
- 具体参见文章:Docker搭建FRP内网穿透服务>设置应用4
-
adb连接命令 adb connect 192.168.6.216:5555
- 检测是否connect就用: adb devices 看是否列出设备IP以及端口
-
[可选]adb安装命令 adb -s 192.168.6.216:5555 install ***.apk
实例安装perfect player(注意:如果apk文件和路径复杂的话用双引号包裹)
adb -s 192.168.6.216:5555 install "~/Downloads/com.niklabs.pp_1.6.0.1-60105_minAPI16(arm64-v8a)(nodpi)_apkmirror.com.apk"
-
远程查看屏幕并控制 scrcpy --tcpip=192.168.6.216:5555
- 具体参见文章:安卓手机投屏至电脑, 电脑显示和控制安卓手机, 手机电脑同屏软件Scrcpy
- 控制的目标是用鼠标和键盘操作机顶盒或电视,鼠标点击打开APP,点击设置,键盘输入IPTV直播源
- [可选]其他任何可以用遥控器在本地操作的动作
相关内容
实现方法
现实问题
- 要解决机顶盒连接二楼旁路由器,而远程协助的手机连接的是一楼的主路由
- 如何知道悟空遥控是开放了什么端口?
- 这样打开才能正常扫描到机顶盒的
这个问题无解了,思路要换掉(无法使用悟空遥控的思路)
远程控制手机的原理一样,但难度更大一点,太多安全设置成为远程协助的障碍,无法有效帮助到家里的老人。
步骤/方法/曲折过程
[可选步骤]使用QtScrcpy, 来激活设备的步骤
- 在QtScrcpy中设置,无线192.168.6.216,端口5555,点击“无线连接”
- 左侧的列表中出现,比如:Phone-192.168.6.216:5555; 应该是有adb run 一个命令;具体是什么?
- adb run AdbProcessImpl::out:connected to 192.168.6.216:5555
- 其实就是对应adb命令:adb connect 192.168.6.216:5555
- 点击:安装sndcpy
- 点击:启动服务
- 左侧的列表中出现,比如:Phone-192.168.6.216:5555; 应该是有adb run 一个命令;具体是什么?
- 在Terminal中输入scrcpy -e
- 之前的adb devices(显示列表是空的), 新增加的设备就是上一步连接好的设备(会显示IP:端口)
原来N1机顶盒(安卓)也可以使用scrcpy -e 来连接,从而进行远程控制;我说的是:从Mac电脑(其他的平台也一样)上远程控制机顶盒的页面,可以设置机顶盒的APP,这样避免老人需要使用遥控器来控制(进行复杂的操作,比如:配置DIYP的源地址,本身在遥控器上操控虚拟键盘按来按去就很费劲)
缺点/瑕疵
-
声音没有传输过来,不过没关系,又不是远程用来看电视的;话说回来,可以把这个N1做成服务,让用户可以远程连接来看IPTV和电影等等。
-
原来是因为盒子Adndroid的版本太旧问题
[server] INFO: Device: [Phicomm] Phicomm p230 (Android 7.1.2) [server] WARN: Audio disabled: it is not supported before Android 11 INFO: Renderer: metal WARN: Demuxer 'audio': stream explicitly disabled by the device
-
-
无法使用盒子遥控器上面的菜单按键,只能是左键单击
- 不碍事,也够用了;只是不能远程设置某个APP开机自动启动罢了
下一步 frp映射/穿透
下一步就是前提设置中的:frp映射出5555来,配置frpc客户端;也成为穿透
面临在padavan中无法找到机顶盒的IP,不在WIFI里面里面(因为是使用网线连接的),如何找到N1盒子的IP?
通过padavan的UI查询:网络信息 > 流量监控https://k2pzl.carlzeng.top:4443/Main_BWMon.asp
找到了服务器上frps的192.168.6.116:6006, frpc映射至192.168.123.189:5555
到路由器上DHCP把机顶盒的IP绑定MAC,这样以后盒子的IP不会变frpc运行在路由器上面总能找到正确的盒子IP(定位准确)。
这样scrcpy -e
就会显示两个客户端了!
scrcpy -e
scrcpy 2.1.1 <https://github.com/Genymobile/scrcpy>
ERROR: Multiple (2) ADB devices over TCP/IP:
ERROR: --> (tcpip) 192.168.6.116:6006 device p230
ERROR: --> (tcpip) 192.168.6.216:5555 device p230
ERROR: Select a device via -s (--serial), -d (--select-usb) or -e (--select-tcpip)
ERROR: Server connection failed
#手动指定连接到那一个adb 5555 客户端(即便是被frp映射过的也一样)
scrcpy --tcpip=192.168.6.116:6006
下一步 scrcpy的远程控制
如何通过scrcpy的远程控制,给N1安卓电视盒子安装APP
理论上adb命令,可以轻松执行这个安装APP的目标(好像我之前写过方法:苹果电脑M1上唯一可用的安卓模拟器-CarlZeng)
- 把要安装的APP,放在电脑本地的一个目录(假设~/Downloads)
- 用命令adb install /*.apk
- 具体过程:
- adb devices
List of devices attached
192.168.6.116:6006 offline
192.168.6.216:5555 device
#怎么手动选一个devices中的device?
- adb install /Users/carlzeng/Downloads/DIYP影音经典版.apk
adb: more than one device/emulator
Use the -s option BEFORE the command to specify the device, for example:
adb -s 192.168.232.2:5555 <command>
- adb -s 7f1c864e shell
#这样的话,可以获得这个Android安卓设备的shell执行权限
#这个参数的内容和scrcpy是一样的,只是指定参数的方式一点点不一样罢了
- adb -s 192.168.6.216:5555 install /Users/carlzeng/Downloads/DIYP影音经典版.apk
Performing Streamed Install
adb: failed to install /Users/carlzeng/Downloads/DIYP影音经典版.apk: Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install com.player.diyp2020 without first uninstalling.]
- adb -s 192.168.6.216:5555 install /Users/carlzeng/Downloads/Love\ TV\ 20231127/Love\ TV\ 简约版.apk
这样就可以安装好安卓N1盒子上面的APP了
打开前面一步的scrcpy --tcpip=192.168.6.116:6006进行远程控制画面,进去设置一下DIYP的源(老人控制遥控很有难度的)
以后需要安装APP更新,换源等等,远程就能做到了,老人再也不用担心无法看电视。
祝你好运
[按需]删除盒子上APP
有两种方法:
- 可视的方案是打开scrcpy,设置里面,有应用的选项,点击进去,在点卸载即可。
- 命令的方式
- adb -s 192.168.6.216:5555 shell pm list packages
- 根据上一步的package名称使用 adb -s 192.168.6.216:5555 uninstall com.github.tvbox.osc.tk
- adb -s 192.168.6.216:5555 uninstall com.fongmi.android.tv
故障与解决
frp映射穿透过来的ssh服务,无法连接上去
ssh admin@192.168.6.116 -p 6008
Unable to negotiate with 192.168.6.116 port 6008: no matching key exchange method found. Their offer: diffie-hellman
-group14-sha1,diffie-hellman-group1-sha1,kexguess2@matt.ucc.asn.au
修改了 ~/.ssh/config后
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers 3des-cbc
修改之后错误变成:
Unable to negotiate with 192.168.6.116 port 6008: no matching host key type found. Their offer: ssh-rsa,ssh-dss
最后使用了解决办法:
ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa root@192.168.6.116 -p 6008
#K2P SSH默认密码admin
这个SSH错误的灵感来源:I get the error "no matching host key type found. Their offer: ssh-rsa" when trying to connect with SSH
K2P使用的SSH密码是默认的admin(和WEB页面登录的密码不一样),好危险的后门行为(建议默认关闭K2P设备的SSH服务)
adb shell 关机
adb -s 192.168.6.216:5555 shell
进入shell以后
关机:reboot -p
关机以后无法使用网络唤醒了,小伙伴有没有办法?
重启:reboot
K2P原版与刷机Note
K2P原版,用来做WIFI中继,是最稳的。在K2P系统里面的功能名称是:无线拓展。换句话说:想要用K2P实现无线中继,就刷回原版:
我用这个原版,死活无法顺畅抓包IPTV数据包,最后盯上了tcpdump命令 tcpdump -i any -w /tmp/iptv.cap。 也下载好了Wireshark,可是没法把/tmp下面的iptv.cap下载下来,找到办法(把文件挪到或mount到web的静态目录):mv /tmp/iptv.cap /www/luci-static/fonts/iptv.cap 可是mv: write error: No space left on device
mount --bind /tmp/iptv.cap /www/web-static.........