最近装了上海电信200兆宽带,送了个4K机顶盒,是烽火的,看下图. f* d/ V3 g& s: Q H, G# o
: f5 m! }/ C, Q5 ]) z$ }
2 u7 y& U- n4 }( g
|+ U/ `8 s: x$ w; J看了看这个盒子的配置还是可以的,官网介绍也是说能装OTT应用的,但是被电信限制了(估计是响应GD总局的号召,所有电视盒子不能装应用)8 _ E4 U- C/ p" A6 ~& R
) q! w, A7 U! c7 w( |% N* ?- c9 `
这个画面,点本地应用没有任何反应,而且在首页的文件管理里打开U盘,也看不到U盘里面的apk文件(确定已经放在U盘了),而其他文件显示正常; |3 B4 s& r+ l% y3 `3 h, Y! i
$ W' {$ p; L4 R) j! e于是就想法去破解,打开盒子,主板上没有焊上TTL的针脚,于是自己用电烙铁加焊了4根针,用USB to TTL线接到盒子,只需连接3根就可,GND接盒子的GND,RX和TX分别接盒子的TX和RX(有的USB板子上标的就是接盒子的针脚名,比如我这块USB to TTL,如果SecureCRT标签有绿色的钩却没有显示,估计是RX和TX插反了,关掉盒子电源后把2根针脚拔下来换一下就OK)6 @. @7 l! y- P& w. `6 T, @
0 a! h T$ Z$ A2 Y- s8 `提醒:为方便调试,除了连接TTL线,还需要把盒子用HDMI线连到电视上(后面会提到),若可以连网线就更好
. v5 G; x1 c1 Z/ J$ ~# i3 {2 T
) V9 F2 L8 T C( x) Z$ K7 z0 b0 G$ a* X9 B* R1 t$ H+ n
# _* V' h' e: o U2 _0 }
1)打开SecureCRT软件,选择上图这样子的设置,com口根据自己电脑设备管理器里面的实际确定,我是com15,上图是后面删掉连接后再专门截图的
/ W6 F; k- w. {& h- ~8 D% R以后若打开SecureCRT时会让你选择哪个连接方式(就是刚才设置的连接),正常时标签COM15会有绿色的钩(看后面的图片), h& I, m9 R; b3 t/ A( U% E- \3 V
5 K- L8 H x. S; t# ~1 ?: Y2)正常时SecureCRT会显示下面的图片(多行英文快速滚动): _% {+ i" f5 [9 ?8 i2 @
' l% T+ R) `1 l' _从上图也可以看到这个盒子是采用的华为海思CPU,百度了下,是和华为荣耀盒子一样的CPU,看来盒子不错,内存也是4GB的(显示只有3点多,系统保留的,实际除去安卓系统后剩下就1GB不到了)
. @0 ?. F2 `5 E! O2 {1 f a" L! m
( @1 ~) @7 k$ h2 O6 G6 \3)等屏幕基本停下了后,按回车会显示root@HG680J:/#,之后就可以像linux那样操作了。其实在英文滚动还没有停止的时候也是可以按回车出现这个提示符的(后面会提到,我出现盒子反复重启了就靠这个方法输入命令救活的), D/ m: T0 L0 u n- ^' d$ ]$ F6 C- J
8 w! X i c% x& m, R6 ?. ~ D4 M5 [0 ^
4)一开始找不到adbd这个程序直接按start adbd也没有,提示找不到,其实后面才发现在/sbin里面
+ V' G! S, m7 `6 {! ~用cd /sbin进入这个目录,然后直接按adbd回车就执行这个程序了 L8 {! f) ^( `9 v/ X0 s
给那些不熟悉linux(谷歌安卓就是从它改来的)命令的人:% G6 k+ W1 I0 P: I( s" P: U
cd 目录名:是进入目录,如 cd /system/app,安卓最顶层的目录是“/”,返回顶层就是 cd / ,返回上一层目录是cd ..;
+ w5 R8 g, _& z6 Z5 d2 I/ c+ hls 是列出目录中的文件名和子目录名,实际用的多的是ls -l(大写LS -L,不是数字1),显示的内容还增加了文件的只读属性、所属组、文件大小(没有显示大小就表示这个名字是目录);
$ x9 ?; O3 _3 @, J T& J. q5)运行adbd后,就可以通过电脑安装apk了
& {9 Q/ }0 x8 }' w
3 z) \$ p* }8 T5 j4 ^* j1 a" k8 l上图都有了,在说明下,先要知道盒子的ip(内网IP,就是我最上面图显示的,这个盒子是具备双IP的功能,所以就具备了运行OTT程序看在线视频的基础) ^: I" g8 C) i/ [& {* i
先要连接到盒子adb connect 192.168.1.8(这是我这个盒子的IP),连接后adb install apk的全路径名(就像我上图的格式)
1 B- Z, g/ [* X正常安装结束后会有成功的提示,我是装了泰捷、VST、荔枝TV,和当贝桌面、当贝市场(我不是在做广告,各位请根据自己需要自便,但是推荐当贝桌面,后面会提到)。! L% }# @7 R3 f, q
3 ^5 f$ V" A9 x9 r5 }& H9 M7 @6 Y{:soso_e100:}插曲:我一开始是吧apk拷在U盘里面插上盒子安装的,后来发现怎么都不行,显示等待设备就没消息了,看下图,吃了冤枉苦头- q' Z2 j. H# P- d* y g) }, Z( E, U
; N% U; e& Z8 U! s& E
- @' |/ `- L3 T. f) y$ A6)安装成功后,重启盒子是看不到变化的,也不会显示装的这些app,虽然已确实装在盒子里了
9 t8 e2 a* x0 o
. L" t' R/ S2 \: K9 F# s( c如图,我是用pm list package列出了所有安装的app,可以看到确实有com.dangbeimarket安装了(这是当贝市场装到盒子里面后显示的正规名称,这个名称在apk文件里是经过定义的,所以和apk名字不同)
, O8 `" l- }+ G7 v3 G! O# o
. s! D! p8 [: B$ {& A/ a! G% c k7)接下来就是关键的步骤,要启动当贝桌面。
9 m9 R3 Y; D2 I0 O, u8 n4 K: o由于盒子本身不会运行当贝桌面,我们也找不到方法,所以只有通过SecureCRT软件通过命令的方式让它启动
# _0 C0 a8 T( \( L% d首先用pm list package命令列出安装的app,目的是显示app在安卓系统里的正规名字
1 M# e( ?: C" S/ W然后用am start app名字运行这个app,我是执行am start com.dangbei.tvlauncher,执行后会在电视上屏幕上显示当贝桌面的主页面, o1 A+ P, U0 B& B0 {
7 I8 z: X' v0 ? I" K$ X: ]插曲:我试过沙发桌面,但是执行出错,看过命令介绍,有的app用这样的方式执行需要加参数,我也只懂皮毛根本不懂加什么参数{:soso_e113:}. j; H7 b) ~5 R3 X1 w: d, B
何况这个当贝桌面不要参数就选用了,其它人可以试试其它的,我也试过其它,有的会开机不自动启动的9 Y, Y1 z& M! ~9 C+ r) q3 D/ C7 B
8 {/ I A9 j2 _- D- m# e8 e5 b
% k: X- x- B6 d* G0 \* T% A4 c4 f
8)接下去就是用遥控器进行设置,把刚才安装的VST、泰捷等放在桌面,还有别忘了itv这个IPTV的(其实这个放不放都可以,可以直接按遥控器上的IPTV按钮进入)。最关键的是后面的设置,看下图
; ]7 r3 m: B7 Q j, ?
8 j( [1 t( P8 H; E) y开机自启动,还有按home键提示(一定要开启). H# L' y' L; c
7 r7 r+ `8 ~: T' M e" _0 J
插曲:安卓系统启动时关键一步是执行launcher(具体什么名字根据开发者而定,这个盒子是Launcher4K_v33_newpck_sign.apk),类似于windows的explorer进程,调用桌面和启动其它的附件,而这个盒子已经通过程序锁定了Launcher4K_v33_newpck_sign.apk(这个程序是调用launcher的,zygoat),除非通过反编译修改再写回去,但是这个盒子有系统保护,任何系统文件改动都会导致盒子反复重启,我就是吃了不少苦头,我原先是把当贝的launcher这个apk替换了Launcher4K_v33_newpck_sign.apk,同时替换了/data/dalvik-cache下的相应的dex文件,我是把原来的apk改名,然后再复制过去的,所以后面还有救。替换后,盒子就黑屏了,想想也是,这个launcher4k的是关键进程,被我改名替换了当然会黑屏。重启盒子直接进入当贝的桌面了,而且能遥控器操作,开心时,但过了几秒钟自动重启了,而且反复重启,查看SecureCRT,原来是系统文件校验出错了,看下图。后面也试着替换IPTV这个apk,也是重启,换了/system/app下的任何一个都是这样。看来这个目录下的任何文件不能删不能改。我是通过启动当贝桌面后系统停顿了这几秒钟,把编辑好的命令及回车符一起复制进SecureCRT直接执行,靠人打字肯定来不到就又重启了。
$ F; Y) x: Q# |" `
0 B2 _4 e' ~. a+ S, m$ q8 y- v* b0 w0 x; o& a, T
9)最后一步就是停用盒子自动更新的功能,用pm disable app名称,例如pm disable com.CTC_ChinaNet.android.tm.system(就是SystemUpgrade.apk再安卓里显示的名字),我是一共停了3个系统app,看图1 V: N7 C- q! v& T) L8 f* Q
1 L0 v* E3 G2 U
我最后用pm list package -f -d确认了一遍,-f是显示apk名字与这个apk在系统里名字的对于关系,如SystemUpgrade.apk=com.CTC_ChinaNet.android.tm.system;-d是显示disable了的app,虽然我disable了盒子自带的Launcher4K,但是还是开机首先进入的还是这个launcher,过五六秒后才会加载当贝桌面。& Z0 M0 M! D- P% a) J/ Y
' G* z& m# _' i2 G疑问:另外有一个apk我没有disable,是TM_FengHuo_1.0.0_official_signed.apk=com.CTC_ChinaNet.android.tm,和SystemUpgrade.apk在系统里显示的后缀少了个system,而且看apk名字的意思是烽火的官方签名过的apk,不像是更新用的。3 w3 g2 M! y& p7 x, l' F4 l
疑问:另外我还不知道pm disable 与pm block的区别,虽然我这个盒子都支持这两个命令(直接运行pm回车就可以看到使用说明,但是没有block/unblock的说明,只有enable/disable),如果哪位知道,请回复跟我说,先谢啦。
. V8 [( l3 {/ l% t' v0 j* v
$ W* y3 D( \- F; {, l, \10)另外提醒下,盒子启动的时候是先进原来的桌面,等几秒后(10秒内)会启动当贝,然后可以通过运行itv或者按遥控器上的iptv按钮进原来的直播,看我后要按遥控器上的云应用或互动按钮,会提示让你选择一个桌面,这是选当贝桌面,但是千万不能选“不再显示”,否则就无论如何都进不到当贝了,因为这时候当贝是想替换系统launcher,但是系统把launcher锁定了,所以再按云应用按钮就不会有提示也不会进当贝,切记!!!!
2 e) K) m. x/ N& M4 i4 W但是不小心按了也没关系,关机(关掉电源,不是遥控器上的关机),再开机又会在原桌面后等几秒后自动启动当贝了,这时候的当贝是作为一个普通应用加载的(我也只能做到以普通应用加载,而不能作launcher加载,系统锁死了,除非反编译修改),然后再当贝的设置里把按home提示的功能开启。
! X6 R4 t1 z0 P1 N0 x4 \
! n5 Z! d. Z" p3 T8 G1 X# n& i0 T3 G4 e8 R& ^; Q3 F$ t
$ d& x, O' ~$ Y& F
11)最后提供adb工具,当然也可以去百度下载。
' P F; D+ ]- C) \ u0 ^: ~2 l) K y$ j% `
- L3 B L, \) a( i: E5 q最后的最后声明,这只是给各位学习研究使用,若以此牟利,而产生的法律纠纷以我无关。
4 p. \& ]9 @, N( k, K(那些说qq联系的,基本都是要钱才帮你的)
3 p" ? c+ j3 R0 D" D( w3 t |