Android机顶盒 安装APP实例

目标

实现往Android联通机顶盒安装APP,比如投屏类APP(比如:乐播投屏),桌面类APP(比如:沙发桌面,当贝桌面)
已选择N1盒子等性能更强劲的硬件的朋友,可参见: 网络影视资源 - IPTV直播之电视台直播源

环境

联通 创维机顶盒:E900V21C (安卓4.4系统)

Mac(windows也一样,找相应平台的软件即可)

  1. Terminal
    1. 系统自带工具
    2. (windows对应的工具叫cmd)
  2. adb
    1. 如何安装:MAC下安装adb环境的三种方式
    2. 我使用的是第一种方式,因为本身就用Andriod的IDE Andriod Studio
    3. 然后关键的步骤就是往Terminal里输入命令把sdk的platform-tools写到系统的环境变量中,具体如下:
      1. echo ‘export ANDROID_HOME=/Users/$USER/Library/Android/sdk’ >> ~/.bash_profile
        echo ‘export PATH=${PATH}:$ANDROID_HOME/platform-tools’ >> ~/.bash_profile

 

或者直接运行:

1
2
export ANDROID\_HOME=/Users/$USER/Library/Android/sdk
export PATH\=${PATH}:$ANDROID\_HOME/platform-tools

然后即可 adb
Windows也一样的,目录变一下而已,或者直接cd到….Android/sdk 目录(搜索一下adb应用程序在那个目录)

最新反馈(2023年12月)

开启adb以后;不过几分钟,就会自动关闭掉

1
2
adb connect 192.168.1.4:5555                                                
failed to connect to '192.168.1.4:5555': Network is unreachable
1
2
3
4
5
6
adb install "/Users/carlzeng/Downloads/八爪鱼遥控TV【公众号木鱼黑科技】(1).a
pk"
Performing Push Install
/Users/carlzeng/Downloads/八爪鱼遥控TV【公众�... pushed, 0 skipped. 1.1 MB/s (1983996 bytes in 1.766s)
pkg: /data/local/tmp/八爪鱼遥控TV【公众号木鱼黑科技】(1).apk
Success

如何解决开机自启动APP的问题?

用adb,开启机顶盒中的APP(因为目前联通已经不给界面打开这些自定义的APP了)

adb shell am start -n 包名(package)

#查看安装的第三方app的包名

adb shell pm list packages -3

1
2
3
4
5
6
7
8
9
10
11
adb shell pm list packages -3                                       
package:/data/app/com.wukongtv.wkhelper-1.apk=com.wukongtv.wkhelper
package:/data/app/com.udte.websocketsdk-1.apk=com.udte.websocketsdk
package:/data/app/com.sf.icasttv-1.apk=com.sf.icasttv
package:/data/app/com.yummbj.remotecontrol.server-1.apk=com.yummbj.remotecontrol.server
package:/data/app/com.hpplay.happyplay.aw-1.apk=com.hpplay.happyplay.aw
package:/data/app/com.player.diyp2020-1.apk=com.player.diyp2020
package:/data/app/com.shafa.launcher-1.apk=com.shafa.launcher
package:/data/app/com.niklabs.pp-1.apk=com.niklabs.pp
package:/data/app/com.kanke.wechat-1.apk=com.kanke.wechat
package:/data/app/com.wukongtv.wkhelper.remoteplugin2-1.apk=com.wukongtv.wkhelper.remoteplugin2
1
2
3
4
5
6
7
8
9
10
11
12
13
#启动这个monitor,当app卡死的时候,可以管理kill掉,让UI重新活起来
adb shell am monitor

#打卡设置
adb shell am start com.skyworthdigital.settings
#打开沙发桌面
adb shell am start com.shafa.launcher
#打开乐播投票
adb shell am start com.hpplay.happyplay.aw

用沙发桌面里面的界面再去打开perfect player,设置自启动
com.niklabs.pp

安装Autostarts(andriod盒子 管理启动项目)

​ 测试下载地址:https://www.onlinedown.net/soft/701509.htm

安装了这个andriod盒子 管理启动项目,就可以控制什么启动,什么不许启动。

电脑传文件到盒子(adb命令:adb push)

adb push bj-unicom-iptv-V20230213.m3u /tmp/bj-unicom-iptv-V20230213.m3u

1
2
3
4
5
6
> adb push /Users/carlzeng/AppTesting/bj-unicom-iptv-V20230213.m3u /storage/sdcard0/1.m3u                                                                               
/Users/carlzeng/AppTesting/bj-unicom-iptv-V2023021...shed, 0 skipped. 15.4 MB/s (29162 bytes in 0.002s)

> adb shell
进入系统目录,可以检查到 我上传的文件

面临问题:perfect player中,无法点击确认按钮,系统默认的键盘,没有tab键(只能‘下一步’到取消键)

adb shell am start com.shafa.launcher

在启动perfect player

注意:这个电视盒子安装perfect player,必须使用本地文件来加载m3u文件来播放(假如使用网络地址将无法加载)

adb 发送tab按键
adb shell input keyevent 控制按键输入

1
2
3
adb shell input keyevent 61

#成功输入了tab键,代替遥控器的操作,弥补遥控器的缺陷

成功把1.m3u配置给了perfect player


20240223, 发现DIYP无法在安卓4.4的这类低版本的安卓系统中运行。

20240121, 发现Perfect Player非常不适合于播放组播地址,切换到diyp这个工具,通过把m3u文件转化为txt文件,做为diyp的播放源,步骤如下:

更换Perfect Player为DIYP

  1. 使用在线工具https://guihet.com/tvlistconvert.html#zbyjg将组播地址的m3u文件格式转化为txt文件格式。(比如取名为1.txt)

  2. 上传1.txt文件(到安卓创维机顶盒:E900V21C)

    1. adb push /Users/carlzeng/AppTesting/IPTV-Unicom-Multicast.txt /tmp/1.txt
    2. 注意:此时本机的网络需要处于光猫相同的网络,一般为192.168.1.*网段的IP地址;可以通过连接到路由器然后手动设置本机IP地址为192.168.1.0网段的IP,也可以直接通过连接光猫的WIFI自动获取一个192.168.1.0网段的IP。
  3. 将DIYP的播放地址源(节目地址)设置为/tmp下的1.txt

    1. 从adb命令,把要输入的内容发送到机顶盒:

    2. adb shell input text /tmp/1.txt 
      
      #使用说明
      > adb shell input [] []
      
      Usage: input [<source>] <command> [<arg>...]
      
      The sources are: 
            trackball
            joystick
            touchnavigation
            mouse
            keyboard
            gamepad
            touchpad
            dpad
            stylus
            touchscreen
      
      The commands and default sources are:
            text <string> (Default: touchscreen)
            keyevent [--longpress] <key code number or name> ... (Default: keyboard)
            tap <x> <y> (Default: touchscreen)
            swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
            press (Default: trackball)
            roll <dx> <dy> (Default: trackball)
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12

      3. 太可惜了,它DIYP必须配置一个http的源地址,可是光猫上面和安卓机顶盒上192.168.1.0网段没有权限把1.txt喂给http,放弃该方案

      4.

      5. 最后是把机顶盒链接到WIFI环境(这样具备的外网功能),然后让DIYP使用

      6. bj-unicom-iptv-udpxyInternet-V20240126.txt

      ```txt
      最终转化地址(m3u至txt):
      https://c.carlzeng.top:4443/tvtxt

成功的文件上传命令举例:

1
2
adb push /Users/carlzeng/AppTesting/IPTV-Unicom-Multicast.txt /sdcard/1.txt          
/Users/carlzeng/AppTesting/IPTV-Unicom-Multicast.txt:...e pushed, 0 skipped. 33.6 MB/s (9381 bytes in 0.000s)

上传后,盒子中的文件路径为:/storage/sdcard0/1.txt


步骤

  1. 将E900机顶盒和Mac电脑连接到相同的局域网
  2. 安装好adb工具并设置了环境变量以后,打开Terminal,输入adb –version 验证一下adb可以正常运行,在进行下一步
  3. 把北京联通创维E900机顶盒的adb功能打开,具体方法:按遥控的“设置”,进到高级设置,
    1. 最里面有很多看不懂的设置项选择列表后,按遥控的右键(指遥控的上下左右按键中的右键),连续按十下 至 15下
    2. 这时选项列表最下方会多出一个新的选项(隐藏选项),打开ADB的选项(再右键,确定打开ADB远程调试)
  4. 从机顶盒设置里面或者路由器的设置中,找到机顶盒当前的IP地址,比如192.168.1.171;
    1. Terminal输入 adb connect 192.168.2.171:5555 进行连接。
      1
      2
      3
      _adb connect 192.168.2.171:5555  
      或者
      _/Users/$USER/Library/Android/sdk/platform-tools/adb connect 192.168.2.171:5555
  5. Terminal输入 adb install com.shafa.zhuomian_2.2.3_aged.apk 进入操作Andriod安装命令
    1. 这个apk文件,要从网络上下载到本机的目录中,然后把Terminal调整到当前apk文件所在目录(命令为 cd 具体目录)
    2. 安装命令举例:adb install ****.apk
      1
      2
      3
      adb install com.shafa.zhuomian\_2.2.3\_aged.apk  
      或者
      /Users/$USER/Library/Android/sdk/platform-tools/adb install /Users/$USER/Downloads/international\_sfgj\_4.9.25.apk
  6. 【可选】运行安装完成后,就可以用遥控器启动这些新的应用APP;也可以使用命令强制运行(唤醒/打开)特定的APP应用
    1. adb shell
    2. am start -a android.intent.action.VIEW
      (也可以合并为一个命令:adb shell am start android.intent.action.VIEW)
    3. App的名字可以使用如下命令列出(或者使用沙发桌面列出已安装的APP)
      1. adb shell pm list packages

引用

  1. MAC下安装adb环境的三种方式 https://www.jianshu.com/p/744fc5946627
  2. adb常用命令 https://developer.android.google.cn/studio/command-line/adb?hl=zh-cn
  3. Android adb启动任意app的几种方式 https://blog.csdn.net/ezconn/article/details/99885715

感想与体验

放到最后写,感想与体验:

安装一些安卓APP,开启沙发桌面以后,发现创维E900机顶盒有wifi功能,并且支持有线和WIFI同时分别在不同的网段下使用,这就意味着连接网线看IPTV(不影响网速)

连接WIFI后,机顶盒就可以上网,运行别的实时直播APP(比如:电视家)。这是一个很有意思的使用角度,很方便。

以前中兴的机顶盒都是需要手动去拔查不同的网线(或者使用支持组播iptv协议的路由器)来切换联通内网和外网。

现在可以根据你打开的APP,自动选择可用的网络;
默认的IPTV依然走内网,其他APP(比如:悟空遥控)走外网WIFI接口。

话说回来:第一次这样在机顶盒端安装了悟空遥控以后,再去安卓手机端安装悟空遥控;以后就方便了:

  1. 让手机和机顶盒连接到相同的局域网
  2. 打开手机端的悟空遥控,和机顶盒端悟空遥控APP
  3. 在手机端的悟空遥控操作,把新的APK推送到电视机顶盒端即可

关联:远程给机顶盒安装APP

要解决机顶盒连接二楼旁路由器,而远程协助的手机连接的是一楼的主路由

如何知道悟空遥控是开放了什么端口?
这样打开才能正常扫描到机顶盒的

2024.1

不用这么麻烦frp把机顶盒的5555端口映射/穿透出内网

然后用adb -s frp的对应ip或域名:5555 install ***.apk

比如: adb -s 192.168.6.216:5555 install ‘abc.apk’

悟空遥控器 VPN

悟空遥控器、遥控精灵、手机万能遥控器等是如何搜索本地局域网机顶盒?换句话说机顶盒端开放了那个tcp端口?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#用Zenmap扫描了一下:
nmap -sV -T4 -O -F --version-light 192.168.6.216
8080/tcp open http-proxy?
10000/tcp open snet-sensor-mgmt?
49152/tcp open upnp Portable SDK for UPnP devices 1.6.13(Linux 3.14.29; UPnP1.0)

#常规regular扫描
nmap 192.168.6.216
5555/tcp open freeciv
7100/tcp open font-service
8080/tcp open http-proxy
8899/tcp open ospf-lite
10000/tcp open snet-sensor-mgmt
49152/tcp open unknown

#自定义全面扫描?
nmap -A 192.168.6.216
5555/tcp open adb Andriod Debug Brdge device(name: p230 model: p230; device: p230; feature: cmd,shell_v2)
7100/tcp open font-service?
8080/tcp open http-proxy
8899/tcp open http Bukkit JSONAPI httpd for Minecraft game server 3.6.0 or older
10000/tcp open snet-sensor-mgmt?
49152/tcp open upnp Portable SD for UPnP devices 1.6.13 (Linux 3.14.29; UPnP 1.0)

Option #2

Minimal Docker image with Nmap Network Security Scanner pre-installed.

Option #3

Nmap on minimum, modern and secure Alpine distribution (23.95 MB)

1
2
3
docker run k0st/nmap -A scanme.nmap.org						#这个比较全面!好用,检测端口内的服务信息

docker run k0st/nmap -sT -T4 scanme.nmap.org #比较常见的命令,快速扫描

悟空遥控 替代:八爪鱼遥控-安卓

电视端下载:https://wwpv.lanzoue.com/iAXn61ezyrah 密码:63ye

手机端下载:https://wwpv.lanzoue.com/i70xA1ezys4h 密码:hnbk

N1刷webpad电视系统

斐讯N1 webpad电视系统内存写入、openwrtU盘启动演示