海思系类机顶盒STB的Hacker记录

说明

有许多的机顶盒都是使用海思的SoC方案, 这些盒子一般都是用Android 4.4,或者5.0的系统. 然后都没有root权限. 有的是否我们需要做些更改, 例如修改servicemanager,那么就无法简单的root然后使用cp命令替换完成了, 因为servicemanager一直在运行, 就算kill掉也会自动重启, 因此无法在正常模式覆盖.

如果可以进入到recovery模式,那么也可以解决. 更为简单的方式是可以直接将system分区dd出来,然后更改后dd回去.

获取console

如果机顶盒有四线/3线的TTL串口,那么第一步就是连接串口, 获取Root权限.

查看分区

然后查看mmc/emmc的layout:

在操作之前,我们最好备份一下, 直接将各个重要分区dd出来即可.例如对于system:

dd if=/dev/block/mmcblk0p17 of=/mnt/sda/sda1/system.img

启动adbd

dd出来后, 我们启动adbd:

start adbd

接上网线, 然后使用netstat -apn来adbd查看使用的端口号, 一般都是5555, 然后在电脑上面使用adb connect连接, 即可使用adb. 那么也可以使用adb install来安装应用.

然后push上来:

然后可以看看它的类型(在console中使用mount也可以看到类型):

 

这个是我们熟悉的ext4, 我们完全可以直接mount起来,然后更改.

更改完成后, 我们可以使用HiTools将这个分区重新烧写进去. 但是HiTools的HiBurning工具需要在Windows上面运行, 因此我们也可以简单的将修改后的system.img push到板子上面, 然后直接dd进system分区即可.

其他信息

海思的板子/机顶盒启动后, 一般都会打印启动流程的log, 包括: fastboot的启动, uboot启动, kernel启动.

这之间会提示使用的storage的类型

 

SDK的版本好, 例如:

SDK Version: HiSTBAndroidV600R001C00SPC063_v2016022921

根据SDK的版本, 我们可以自己编译一些东西欧放进去.

但是有些UBOOT的Autoboot的key interrupt被禁用了, 或者是被换成了非简单的d, ctrl+c, space等按键了, 如果不dump出uboot来disassemble的话, 难以进入到uboot的命令行:

 

2 comments

Leave a Reply

Your email address will not be published. Required fields are marked *