本帖最后由 hyjk555 于 2024-5-5 22:42 编辑
背景:老家四川中兴的电信IPTV机顶盒,由于电视太老了。安装第三方app使用起来卡得一bi。加上小孩需要看动画片,但是老人需要看电视台。故萌生了机顶盒安装第三方app的想法(要点:穷,换不起新电视)。
设备:网线 可看IPTV ,自带wifi模块。连接wifi就得拔掉网络。
通过遥控--菜单--文件浏览器--安装app 会提示:对不起,您不能安装此应用
长按遥控几秒钟,再按返回,可调出调试维护界面。其中可进入开启adb 页面。不过是二维码。网上的算号开启adb 都说无解。附上设备图
自我提升:百度,谷歌,必应 一顿操作猛如虎得到几种说法:
1、四川B860 二维码开adb 无法做到,只能刷机。但是我需要保留IPTV 刷机就得否
2、想起路由器那样,拆机ttl 终端 进系统操作。但是网上说 只有输出,无法输入。这里本人已测试。确实ttl 只有输出,无法输入 电路测试过 应该是系统限制
3、得到一个调试软件 ZTE_STB_Tools_V2.1.1_T02 说是可以开启,不过需要用360 沙箱运行才行。 由于本人不屑于360,未安装360直接运行的。连接始终失败,提升二次加密验证不通过。(这里重点)
附上工具:由于体积过大,网盘奉上:www.lanzouj.com/ilbtv1xswo0j 密码:666
开ADB:
由于没找到任何开adb的有效方法
最后咸鱼找到个远程开adb的。花10RMB 给我远程开启ADB,说是重启设备adb不会掉。咸鱼老哥大晚上的硬是开了好几次,最终他以失败告终。只能开一次性的,设备重启adb就会掉
期间通过聊天得知,也是用的我上面说的这个调试工具。必须360沙箱运行,才能连接机顶盒。这不是妥妥的浪费了我这么多RMB。
第二天,本人老老实实装了个360 。用沙箱运行调试工具。果然就这么开启adb 了!能adb,就能连设备后台,还有啥操作不了的呢
(工具我看vmp加密,无法虚拟机,还挑电脑。我家里笔记本和台式机用360沙箱都运行不起来,工具直接崩溃。最后用办公电脑跑起来了。再通过ksa连接家里电脑进行组网,连接机顶盒。成功开启adb ksa用法 blog.csdn.net/weixin_42109829/article/details/121201936 )。
开永久ADB设备重启不掉
毕竟不想每次连接设备都用调试工具,确实麻烦。
通过adb终端连接设备后台,发现设备启动会调用一个脚本:/system/bin/init.zte.post_boot.sh
将系统目录挂载为读写:mount -o remount,rw /system
终端执行命令,往脚本里面添加启动语句:
[Shell] 纯文本查看 复制代码 echo "/sbin/adbd &" >>/system/bin/init.zte.post_boot.sh
开telnet服务
通过adb连接发现vi 编辑不好用。就准备开启telnetd 服务连接设备应该方便些。结果发现系统自带的busybox 被阉割了telentd功能。
我设备是 1.21.0 cpu 通过命令cat /proc/cpuinfo 发现是 armv7的。
在 busybox 网站 busybox.net/downloads/binaries 下了个版本接近的busybox放入设备bin目录,命名为busybox-all
终端执行命令,往脚本里面添加启动语句:
[Shell] 纯文本查看 复制代码 echo "busybox-all telnetd -l /system/bin/sh" >>/system/bin/init.zte.post_boot.sh
关闭第三方app安装限制
坛内有大佬,找不到链接了文中有分析过
无法安装的文字提示来自:framework-res.apk
主要控制来自:/system/framework/services.jar
通过反编译 /system/framework/services.jar 发现是com.android.server.pm.PackageManagerService 中的判断。
我这里有4处文字限制提示(最直观的就是:对不起,您不能安装此应用)。直接将标识ID 改成其他的。结果发现文字虽然没提示了。但直接输出 应用未安装。
通过 pm install ***.apk 安装失败会提示:INSTALL_FAILED_USER_RESTTICTED
接着分析代码,发现还有签名验证。
终端执行命令关闭签名:setprop sys.check.Signature false
终端执行命令,往脚本里面添加启动语句,万一那天抽风无缘无故关闭了。加进去无所谓:
[Shell] 纯文本查看 复制代码 echo "setprop sys.check.Signature false" >>/system/bin/init.zte.post_boot.sh
echo "setprop config.Android.AppInstallCtrl 3" >>/system/bin/init.zte.post_boot.sh
结果:这是/system/bin/init.zte.post_boot.sh脚本添加命令后的内容。
设备重启后,能直接adb 、telnet 连接机顶盒,安装第三方app一切正常。
第三方app入口:
考虑到老人,机顶盒设置默认开机进入iptv 直播界面,无任何变化。
遥控上的”菜单“ 是本地媒体的入口,里面有:视频、图片、音乐、本地文件。通过命令 am monitor 监听,是 HomeMedia.apk 调用 的ZTEFileBrowser.apk
反编译 HomeMedia.apk,发现是通过包名和类名 启动的app。将文件浏览器的信息改成当贝桌面的信息。这样开机后,通过遥控就能进入当贝桌面。呼出其他app了
折腾结束
目前拔掉网线,自动会切换wifi。 腾讯tv、iqiyi、cibn 目前一切正常。
由于假期结束,单线复用 iptv,intnet 通过路由器openwrt 共用一根网线待下个假期继续折腾吧。
省流:
1、通过360沙箱运行调试工具,先开启adb
2、往启动脚本内添加内容:关闭app安装签名验证,app安装控制策略设置、启动adb,telnetd服务
3、修改本地媒体app入口。
|