1、缘起之路

某个假期待在家里无聊看电视,输入想看的内容,不是需要VIP就是各种广告,想起自己以前搞过嵌入式,猜想它应该也类似,只要想办法烧写进自己的程序,估计就能解决这个问题,于是着手准备,上网一查发现已经有人搞过这个东西了,就花10RMB想着直接Download算了,结果出现了大问题,进不了系统了,联系卖家也不退款,也不负责任,这就导致了后来的艰辛学习之路。
在这里插入图片描述

2、各类基础尝试(一般盒子破解方法的总结)

方法一、TTL+U盘(强行安装)
这是我最早看到的办法也是最早尝试的,由于我有一个STM32开发板,于是我就用它的内置串口工具,代替了网上说的需要USB转TTL模块,这里附上我当时参考的链接:https://www.znds.com/jc/article/12351-1.html
总结起来核心就是如下两步:
1)装好驱动后,利用Putty连接板子上的接口(RX,TX,GND),给板子上电看能否跑码,不行将RX,TX换一下,重新查看。
2)然后进入Uboot,获取最高权限后利用内置的命令,将U盘里的应用装到板子里。

su                                #获取权限
mount -o remount,rw /system		  #挂载可读写
cd /mnt/usb/sda1	              #进入U盘
cp dangbei1.apk /system/app 	  #安装当贝桌面到系统路径;
ls /system/app 		              #查看是否有当贝桌面文件存在
mount -o remount,rw /system;chmod 0755 /system/app/dangbei1.apk 		#赋予桌面权限
am start com.dangbei.tvlauncher   #启动桌面
reboot

由于我这个盒子无法获取权限,因此放弃了它。

方法二、利用TTL线进行固件包的提取,然后修改system
这里同样需要连接电脑端口,利用Putty将原系统备份。或者像这里用到的修改镜像,然后重新写进去。需要记住一些命令(dd命令和cat命令),自己当时还专门花了一段时间去学Uboot命令,但是我这个板子好像是Mboot,心好累啊!

# 备份主机:
dd if=/dev/block/mmcblk0p15 of=/mnt/sda/sda1/system.img
# 将修改后的固件加载进去:
dd if=/mnt/sda/sda1/system.img of=/dev/block/mmcblk0p15

还有一些可以使用adb的盒子就好办多了,直接使用一下命令安装APP

adb shell
mount -o remount -o rw /system     # 开启system为可读写状态
cp /storage/external_storage/sda1/app_cyd.apk /system/app
pm install /storage/external_storage/sda1/dangbei1.apk    # 安装当贝桌面
am start com.dangbei.tvlauncher    #启动当贝桌面

至于固件解包,可以参考下这两篇博文所用工具,比较简单

https://www.znds.com/tv-1023109-1-1.html
https://www.znds.com/tv-215759-1-1.html

这里附上我这个板子的分区表与对应地址:

lrwxrwxrwx root     root              1970-01-01 08:00 MBOOT -> /dev/block/mmcblk0p1
lrwxrwxrwx root     root              1970-01-01 08:00 MPOOL -> /dev/block/mmcblk0p2
lrwxrwxrwx root     root              1970-01-01 08:00 boot -> /dev/block/mmcblk0p5
lrwxrwxrwx root     root              1970-01-01 08:00 cache -> /dev/block/mmcblk0p7
lrwxrwxrwx root     root              1970-01-01 08:00 dtb -> /dev/block/mmcblk0p6
lrwxrwxrwx root     root              1970-01-01 08:00 factory -> /dev/block/mmcblk0p15
lrwxrwxrwx root     root              1970-01-01 08:00 keydata -> /dev/block/mmcblk0p10
lrwxrwxrwx root     root              1970-01-01 08:00 loaderdb -> /dev/block/mmcblk0p8
lrwxrwxrwx root     root              1970-01-01 08:00 loaderdbbak -> /dev/block/mmcblk0p9
lrwxrwxrwx root     root              1970-01-01 08:00 misc -> /dev/block/mmcblk0p3
lrwxrwxrwx root     root              1970-01-01 08:00 recovery -> /dev/block/mmcblk0p4
lrwxrwxrwx root     root              1970-01-01 08:00 system -> /dev/block/mmcblk0p16
lrwxrwxrwx root     root              1970-01-01 08:00 tvconfig -> /dev/block/mmcblk0p12
lrwxrwxrwx root     root              1970-01-01 08:00 tvcustomer -> /dev/block/mmcblk0p14
lrwxrwxrwx root     root              1970-01-01 08:00 tvdatabase -> /dev/block/mmcblk0p13
lrwxrwxrwx root     root              1970-01-01 08:00 tvservice -> /dev/block/mmcblk0p11
lrwxrwxrwx root     root              1970-01-01 08:00 userdata -> /dev/block/mmcblk0p17
Start_block=4096, block_count=6144
Start_block=10240, block_count=4096
Start_block=14336, block_count=1024
Start_block=15360, block_count=122880
Start_block=138240, block_count=30720
Start_block=168960, block_count=2048
Start_block=171008, block_count=2097152
Start_block=2268160, block_count=20480
Start_block=2288640, block_count=20480
Start_block=2309120, block_count=102400
Start_block=2411520, block_count=131072
Start_block=2542592, block_count=65536
Start_block=2608128, block_count=16384
Start_block=2624512, block_count=32768
Start_block=2657280, block_count=204800
Start_block=2862080, block_count=2048000
Start_block=4910080, block_count=9699328
mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17

这里附上android Mboot mmc命令介绍:http://bbs.superic.com/forum.php?mod=viewthread&tid=2171

利用了该方法,我成功破解了这个盒子,但是始终停不下想要继续搞机的冲动,于是乎又尝试了一些方法,这类方法比较高级,也有一定的通用性,所以推荐给大家(见第3节),也可以用在其他方面。

方法三、常用芯片+专用烧录工具+固定烧录引脚
1)海思芯片:HiTool.exe

魔百盒G2 20:https://www.znds.com/jc/waparticle/15193.html
华为悦盒ec6108v9_pub救砖:https://www.znds.com/tv-613895-1-1.html
用hitool软件备份盒子的镜像文件:https://www.znds.com/tv-977307-1-1.html
四川华为EC6108V9U_CA版:https://www.znds.com/forum.php?mod=viewthread&tid=1011265
海思V600机芯Boot引导程序烧写:https://www.znds.com/tv-1169357-1-1.html

2)USB双公头烧写:PhoenixSuit.exe(全志AW)\ USB Burning Tool.exe 晶晨(@mlogic)

英菲克_I9双核A20芯 线刷教程:https://www.znds.com/forum.php?mod=viewthread&tid=273881
英菲克盒子i9系列刷机教程:http://www.inphic.cn/article/52.html
中兴机顶盒刷机固件汇总:这些都是需要进Mboot利用命令完成的
https://www.mydigit.cn/forum.php?mod=viewthread&tid=223768&page=1&authorid=3179768
咪咕MGV2000线刷破解:https://www.znds.com/forum.php?mod=viewthread&tid=1067159&page=1

3、比较复杂但却超有通用性的尝试(不止机顶盒哦)

方法四、不拆机+不刷机+网络截获替代(测试适用于CM101S)
需要root后的手机安装zANTI软件,机顶盒与手机在同一局域网,记住机顶盒的IP地址,并且需要提前在手机上备好要安装的APP。
​​​​在这里插入图片描述
选择记住的IP地址,选择中间人,选择截获下载,截获类型是APK,然后选择需要安装到机顶盒的APP,然后去机顶盒的官方应用市场随便下载一个应用,就可以将其替换了。
在这里插入图片描述
该截获工具可以查看当前你的局域网里有几个连接设备,并且显示了IP地址,还提供了一些网络工具(谨慎使用)。

方法五、自制服务器+网页抓包+网络截获替

MG101免拆机:https://www.znds.com/tv-703681-1-1.html
https://www.znds.com/rom/jq/39400.html
免拆机A1201:https://www.znds.com/forum.php?mod=viewthread&tid=611397&fromuid=4542219
Wireshark 抓 IPTV 数据包详细教程:https://laoguy.com/wireshark.html
咪咕MG101电视盒子免拆机破解思路:http://elkpi.com/topics/2017/01/mg101-jailbreak-mind.html

咪咕MG101免拆机快速破解教程

留言板


Web控制台安卓版图文使用简介:这个比较特殊使用了其他方法
http://www.hdpfans.com/thread-432175-1-1.html

方法六、自制卡刷包,不拆机破解方法
当有了备份的固件时候就可以随便折腾了

apk解包重新打包签名
1.解包
apktool d xxx.apk -f //解包
or:
apktool d -f xxx.apk
2.重新压缩
apktool b 路径 -o xxx-new.apk
3.重新签名
签名文件:
http://pan.baidu.com/share/link?shareid=60884&uk=1227037436
签名命令
jarsigner -verbose -keystore app.keystore -signedjar xxx-new.apk xxx-new.apk $alias

ROM制作教程之一:http://www.360doc.com/content/16/0614/10/11912451_567635537.shtml
教大家官方系统转换为卡刷包:http://www.360doc.com/content/16/0614/10/11912451_567632966.shtml
卡刷包制作教程之添加apk:http://www.360doc.com/content/16/0614/10/11912451_567636690.shtml
手把手教你制作自己的update.zip:http://www.360doc.com/content/16/0623/19/33092881_570209501.shtml
解决99%的卡刷包无法通过工具:https://blog.csdn.net/edith7/article/details/79492779
Rom修改制作工具软件集:https://blog.csdn.net/weisenz/article/details/19625647
制作ROM工具软件详解:https://blog.csdn.net/eidolon8/article/details/43461947

方法七、给emmc烧录引导救砖
在之前所有操作的基础上,我已经拥有了破解完美的盒子,但是出于好奇(手贱),不小心利用erase命令直接将emmc分区给擦除了,现在已然进不了Mboot了,利用TTL查看,只会跑码出BOOT_OKEMMC字样,然后按各种命令不反应,由于这个芯片的特殊性,以上所有的方法均失效,现在思路只有一条,就是直接对emmc芯片进行烧写
在此之前可以先读一篇文章,了解下计算机是如何启动的
如果对概念比较模糊,可以看看以下几篇博文,了解下emmc:
1、标准SPI、DUAL SPI、Quad SPI;NorFlash、NandFlash、eMMC闪存的比较与区别
2、emmc、Nand flash、Nor flash之间的区别
3、EEPROM、Flash、SD、DDR、SRAM、SDRAM、TF、MMC、eMMC区别
4、eMMC自学笔记
5、eMMC 工作模式

思路1、拆下emmc芯片,利用RT809H,将之前备份的文件(mmcblock0boot0引导文件4.0MB、mmcblock0整个分区文件有7.12GB),烧写进去。这里只提供思路,没有验证,工具都买不起。
使用RT809H编程器操作EMMC:https://blog.csdn.net/weixin_39875832/article/details/110422359

使用RT809H编程器操作EMMC部分图摘抄:
在这里插入图片描述

思路2、拆下字库(emmc芯片),找一个内存卡读卡器,按照官方给出的接口定义,将其改造为一个U盘,在win系统用winhex就可以分区修改,然后利用SDcardMaker或Win32DiskImager就可以将文件写进去(该方法经常用在给树莓派烧写系统卡),还可以在linux里挂载u盘后用dd命令直接替换bootload底层分区装回就可以引导。
拆个字库做个u盘:https://www.mydigit.cn/forum.php?mod=viewthread&tid=17266
解决乐视盒子刷机失败 救活你的C1s:(使用SDcardMaker,不同的是该盒子可以直接U盘启动,不需要拆卸芯片,短路FLASH的5、6引脚)https://www.sohu.com/a/83873177_428841

win系统下烧写启动盘:(这里也使用SDcardMaker)https://www.znds.com/tv-506846-1-1.html
Win32DiskImager:(Win32DiskImager)https://blog.csdn.net/q1449660223/article/details/108174423

EMMC数据恢复 读取写入:http://www.51hei.com/bbs/dpj-162331-1.html
EMMC连接读卡器飞线图:http://bbs.mydigit.cn/read.php?tid=720475
大麦盒子 DM4036 在位飞线读写板载EMMC:http://bbs.mydigit.cn/read.php?tid=2061725
EMMC字库读写工具_大飞汉化版:https://www.mydigit.cn/forum.php?mod=viewthread&tid=131732
魔百和 cm201z 拆emmc飞线救砖:https://www.znds.com/forum.php?mod=viewthread&tid=1028720&fromguid=hot&mobile=2

拆个字库做个u盘部分摘抄图:
在这里插入图片描述

EMMC数据恢复 读取写入部分摘抄图:
在这里插入图片描述

EMMC连接读卡器飞线部分摘抄图:
在这里插入图片描述
大麦盒子飞线部分摘抄图:
在这里插入图片描述
魔百和 cm201z 拆emmc飞线救砖部分摘抄图:
魔百和 cm201z 拆emmc飞线救砖
SDcardMaker工具与Win32DiskImager工具图示:
在这里插入图片描述

思路3、最后一种方式是利用I2C协议,控制主控(Mstar芯片)对emmc进行操作,该方法只适用于一些特定的芯片,尤其对于我这个板子的芯片MSO9380来说,它i2c跟串口(serial debug)复用,都用同一个物理接口。网上有售该类Mstar芯片串口调式烧录的工具与软件。
康佳LED49R610U没有809H编程器:https://www.jdwx.info/forum.php?mod=viewthread&tid=814876&extra=page%3D1&page=1(芯片为:MSD6A638的都可以类似操作)
Mstar串口引导烧录指引:https://www.jdwx.info/thread-815612-1-1.html(芯片为:MSD6A828的都可以类似操作)
MstarTVTools使用方法:https://max.book118.com/html/2015/0923/26039098.shtm (需要购买调试板)
MSO9380烧录 mboot的方法:(这也是我这个板子的芯片型号,但由于寄存器加密导致读写不了,下面就是有关解密的一个博文)http://bbs.superic.com/forum.php?mod=viewthread&tid=14170
mstar芯片解锁debug端口及密码获取方法:https://www.lcdfans.com/1214.html
低成本实现EMMC的读取和备份量产:https://www.mydigit.cn/forum.php?mod=viewthread&tid=103647
Mstar方案从强刷包提取引导的方法:(我这里并没有购买他一键提取的工具,直接使用github的源码进行操作)https://www.mydigit.cn/forum.php?mod=viewthread&tid=103816&page=1&authorid=1799953
Mstar芯片串口debug调试方法:https://www.lcdfans.com/443.html
mstar安卓智能电视方案源代码常用修改:https://www.lcdfans.com/421.html
Mstar-root-boot-量产说明:https://wenku.baidu.com/view/b6032ffb6394dd88d0d233d4b14e852458fb39b0.html
Mstar_MBoot_Info_Spec:https://wenku.baidu.com/view/7429f27a27284b73f2425002.html
制作emmc 烧录文件:(这里的mmc erase命令建议不要操作,我好像就是在这死的,反正太久了也记不清了,反正不要轻易尝试)https://blog.51cto.com/u_14369000/2402796

mstar-bin-tool-master解包截图:
在这里插入图片描述

4、总结

为了一个不算很好的芯片,渐渐折腾起这一系列,历时整整快一年了,除了基本的不可回避的科研任务以外,几乎浪费了我所有的专注力与精神,最可恶在睡觉前脑海中就开始冒各种各样的猜想与试验方法,一个接一个想停的都停不下来,经常到三四点钟,早上起来又忘得差不多!!!贼痛苦,只想说一句,专业的事还是交给专业的人来做,不要瞎耽误功夫,很可能白忙活一场,尤其一个人搞得时候会走很多弯路,付出的远远超过你所能得到的。最后希望厂家啥的都友好点,方便大家研究学习,也希望大佬们多传授一些通用的方法。好了,就这样吧,希望晚上能睡个好觉,等假期有时间的话整理下高级篇的几种方法改进方法,减少弯路,目前就这样吧。——2021年4月20日

机顶盒所有破解可能用到的软件工具

发表评论

您的电子邮箱地址不会被公开。