中兴机顶盒 B860AV2.1-T 开启ADB + 去广告精简(电信IPTV,STB协议10042)
原创 · 2026-10-21
适用:中兴 ZXV10 B860 系列电信定制 IPTV 盒(本文实例 B860AV2.1-T,Android 4.4.2 / API 19)
摘要
电信 IPTV 盒子广告多、预装杂。网上热门的 tv-vibehack(Cleanyourtv)基于 ADB,三星/LG 系统不支持,但电信的安卓盒子可以。本文给出两条开启 ADB 的思路(常规运维调试、STB 协议直开),以及"保守精简、逐个验证"的去广告思路。全程用pm disable(停用不卸载),可逆。
[TOC]
一、思路框架
- 确认设备是安卓系统(电信中兴/华为盒子基本都是),三星 Tizen 没有 ADB,直接排除。
- 想办法开 ADB:常规设置入口 → 不行就用 STB 协议(10042)直开,或用 MAC+随机码算密码。
- 精简原则:停用(disable)不卸载(uninstall),一次只停一个,停完马上验证直播,出问题立即
pm enable恢复。 - 分清"绝对不能动"和"可停用"两类包(见第四节),尤其小心运营商内容/平台类应用。
二、开启 ADB(两条路)
2.1 常规:设置 → 运维调试 → 打开ADB
设置(密码 6321 / 10086 / 10000,各省不同) → 运维调试 → 打开ADB有的省份弹"MAC + 随机码"输入框(用 2.3 的算法算密码);弹二维码的基本无解(内容是加密数据,密码预置在系统 APK 里),走 2.2。
2.2 STB 协议直开(推荐,绕开一切密码)
中兴盒子 10042 端口有 STB 调试协议,AES-128-ECB 出厂密钥,4 段报文可完全构造,发完网络 ADB(5555)直接开启。协议细节来自社区逆向(zhangshuqiao.org)。
核心代码(zte_stb_adb.py,依赖pip install pycryptodome):
importsocket,struct,timefromCrypto.CipherimportAES KEY=b"|!jFa8o4"+b"\x00"*8# 出厂默认密钥AFFIRM="16_AeKg_2t7z_@01_17_@A_$oMjO6fg.P_18_GdpR8jO30!d-rR_20_jD9!2y-dW8"TOOLTYPE="ToolType:16,licindex:yuduanhun"defenc_frame(ftype,payload):# 加密帧构造ct=AES.new(KEY,AES.MODE_ECB).encrypt(payload+b"\x00"*(-len(payload)%16))returnbytes((0x10,ftype,len(ct)>>8,len(ct)&0xFF,0,2))+b"\x00"*18+ctdefcmd_msg(cmd,payload=b""):# 命令头 + 数据returnenc_frame(1,struct.pack(">HHI",cmd,0,len(payload)))+(enc_frame(0x10,payload)ifpayloadelseb"")defmain(host):msgs=[bytes((0x10,0x20,0,0))+struct.pack(">I",4)+b"V6.0",# 1 版本协商(明文)cmd_msg(5,AFFIRM.encode()),# 2 affirm 鉴权cmd_msg(0x15,TOOLTYPE.encode())+cmd_msg(0x11),# 3 工具类型声明cmd_msg(0x2036,b"cmdtype=ADB_ZTE,cmdparams=Open"),# 4 开启网络ADB]withsocket.create_connection((host,10042),timeout=6)ass:forminmsgs:s.sendall(m);time.sleep(1)main("10.194.167.46")# 换成盒子IP跑完即可 ADB 连接:
# Windows$env:TV_HOST ="10.194.167.46"python tools/tv.py"getprop ro.product.model"# 或任意 adb 工具注意:盒子重启/恢复出厂后 ADB 会关、IP 会变,重跑一次即可;IP 在盒子"设置 → 网络信息"里看。
2.3 备用:MAC + 随机码算 ADB 密码
社区逆向算法(MD5 + 溢出取绝对值),可用:
importhashlibdefget_code(mac,rand):# mac 如 04:95:73:BE:48:5A, rand 如 C59396ifrand.startswith("C")andlen(rand)==6:# C开头6位时先变换MACmb=list(mac);mb[-1]=rand[-1]i=0forj,cinenumerate(mb):ifc==":":mb[j]=rand[i];i+=1mac="".join(mb)md5=hashlib.md5(f"open_ADB{rand}@{mac}ZTE_ENCRYPT".encode()).hexdigest().upper()r=0forcinmd5:r=(r*31+ord(c))&0xFFFFFFFFifr>=0x80000000:r-=0x100000000returnabs(r)三、去广告精简(保守方案)
原则:pm disable停用不卸载;一次只停一个,停完马上看电视直播是否正常,全通过再停下一个。
本机验证过的可停清单(7 个,广告/推送/无用,与 IPTV 无关):
| 包名 | 说明 |
|---|---|
| com.amt.appstore.tianyi | 天翼应用商店(广告源) |
| com.android.silenceinstaller | 静默安装器(远程推送安装通道) |
| com.dekscom.qosa | EVQA 质量监测(遥测) |
| ctc.android.smart.terminal.voicectrl | 语音遥控 |
| com.huawei.iptv.stb.videotalk.activity | 华为视频通话 |
| com.healthcloud.yueme.xinjang | 健康云 |
| com.android.smart.tv.cloud189 | 天翼云盘 |
命令(本固件pm disable无回显但生效,用-d核对):
pm disable com.amt.appstore.tianyi pm list packages-d# 核对是否真的停用四、绝对不能动(血泪经验)
| 类别 | 包名 |
|---|---|
| IPTV 客户端 / EPG | com.itv.android.iptv、com.itv.android.iptv.tvclient、com.bestv.epg.tv |
| 认证组件 | zte.zerocfgui、com.ztestb.authconfig、com.ztestb.basecomp |
| 遥控/输入法/ADB | com.amlogic.inputmethod.remote、com.zte.adb |
| 事故嫌疑(勿碰) | com.cibn.tv(定制内容)、com.android.smart.terminal.dplatform(QM平台)、com.ztestb.upgrade、com.iflytek.xiri* |
经验:运营商内容平台类应用(com.cibn.tv、QM 平台)看着无关,一停 IPTV 就废;讯飞语音别碰(EPG 搜索可能依赖)。
五、恢复方法
pmenable<包名># 对清单里每个包执行pm list packages-d# 应为空或直接在盒子上"恢复出厂设置"一键还原(ADB、IP 都会重置)。
六、FAQ
- 盒子重启后 ADB 连不上?重跑 2.2 的脚本,IP 可能变了,先在盒子网络信息里看新 IP。
- pm disable 没输出?正常,本固件不回显,用
pm list packages -d核对。 - 能装仿 Apple TV 桌面吗?不能,它要求 Android 8.0+,老盒子是 4.4,只做去广告精简即可。
- 能免费看付费频道吗?不能,那是运营商的收费业务,涉及绕过支付/版权,违规且不安全。
七、免责声明
仅用于个人设备的合法管理;运营商租用设备退还前请恢复出厂。文中协议细节来自社区公开逆向,仅作学习记录。