海思系类机顶盒STB的Hacker记录
来源:互联网 发布:java hide 的作用 编辑:程序博客网 时间:2024/04/27 09:25
说明
有许多的机顶盒都是使用海思的SoC方案, 这些盒子一般都是用Android 4.4,或者5.0的系统. 然后都没有root权限. 有的是否我们需要做些更改, 例如修改servicemanager,那么就无法简单的root然后使用cp命令替换完成了, 因为servicemanager一直在运行, 就算kill掉也会自动重启, 因此无法在正常模式覆盖.
如果可以进入到recovery模式,那么也可以解决. 更为简单的方式是可以直接将system分区dd出来,然后更改后dd回去.
获取console
如果机顶盒有四线/3线的TTL串口,那么第一步就是连接串口, 获取Root权限.
查看分区
然后查看mmc/emmc的layout:
root@Hi3796MV100:/ # ls -l //dev/block/platform/hi_mci.1/by-name/ lrwxrwxrwx root root 1970-01-01 08:00 baseparam -> /dev/block/mmcblk0p5lrwxrwxrwx root root 1970-01-01 08:00 bootargs -> /dev/block/mmcblk0p2lrwxrwxrwx root root 1970-01-01 08:00 cache -> /dev/block/mmcblk0p19lrwxrwxrwx root root 1970-01-01 08:00 deviceinfo -> /dev/block/mmcblk0p4lrwxrwxrwx root root 1970-01-01 08:00 fastboot -> /dev/block/mmcblk0p1lrwxrwxrwx root root 1970-01-01 08:00 fastplay -> /dev/block/mmcblk0p9lrwxrwxrwx root root 1970-01-01 08:00 fastplaybak -> /dev/block/mmcblk0p10lrwxrwxrwx root root 1970-01-01 08:00 hibdrv -> /dev/block/mmcblk0p14lrwxrwxrwx root root 1970-01-01 08:00 kernel -> /dev/block/mmcblk0p11lrwxrwxrwx root root 1970-01-01 08:00 logo -> /dev/block/mmcblk0p7lrwxrwxrwx root root 1970-01-01 08:00 logobak -> /dev/block/mmcblk0p8lrwxrwxrwx root root 1970-01-01 08:00 misc -> /dev/block/mmcblk0p12lrwxrwxrwx root root 1970-01-01 08:00 pqparam -> /dev/block/mmcblk0p6lrwxrwxrwx root root 1970-01-01 08:00 private -> /dev/block/mmcblk0p21lrwxrwxrwx root root 1970-01-01 08:00 qbdata -> /dev/block/mmcblk0p16lrwxrwxrwx root root 1970-01-01 08:00 qbflag -> /dev/block/mmcblk0p15lrwxrwxrwx root root 1970-01-01 08:00 recovery -> /dev/block/mmcblk0p3lrwxrwxrwx root root 1970-01-01 08:00 sdcard -> /dev/block/mmcblk0p22lrwxrwxrwx root root 1970-01-01 08:00 system -> /dev/block/mmcblk0p17lrwxrwxrwx root root 1970-01-01 08:00 unuse -> /dev/block/mmcblk0p20lrwxrwxrwx root root 1970-01-01 08:00 userapi -> /dev/block/mmcblk0p13lrwxrwxrwx root root 1970-01-01 08:00 userdata -> /dev/block/mmcblk0p18
在操作之前,我们最好备份一下, 直接将各个重要分区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上来:
adb pull /mnt/sda/sda1/system.img .
然后可以看看它的类型(在console中使用mount也可以看到类型):
$ file system.img system.img: Linux rev 1.0 ext4 filesystem data, UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b (needs journal recovery) (extents) (large files)
这个是我们熟悉的ext4, 我们完全可以直接mount起来,然后更改.
更改完成后, 我们可以使用HiTools将这个分区重新烧写进去. 但是HiTools的HiBurning工具需要在Windows上面运行, 因此我们也可以简单的将修改后的system.img push到板子上面, 然后直接dd进system分区即可.
其他信息
海思的板子/机顶盒启动后, 一般都会打印启动流程的log, 包括: fastboot的启动, uboot启动, kernel启动.
这之间会提示使用的storage的类型
Fastboot 3.3.0 (arvin@haisi) (Jun 20 2016 - 08:34:09)Fastboot: Version 3.3.0Build Date: Jun 20 2016, 08:35:15CPU: Hi3796Mv100 Boot Media: eMMCDDR Size: 1GB
SDK的版本好, 例如:
SDK Version: HiSTBAndroidV600R001C00SPC063_v2016022921
根据SDK的版本, 我们可以自己编译一些东西欧放进去.
但是有些UBOOT的Autoboot的key interrupt被禁用了, 或者是被换成了非简单的d, ctrl+c, space等按键了, 如果不dump出uboot来disassemble的话, 难以进入到uboot的命令行:
6311 get key in uboot directly get key 0 2
- 海思系类机顶盒STB的Hacker记录
- 【STB】未来机顶盒的发展方向
- 什么是机顶盒(STB)
- 什么是机顶盒(STB)
- DVB机顶盒工作原理,DVB机顶盒的结构,DVB机顶盒的结构【STB开发之入门篇】
- 机顶盒(STB)相关知识
- 传统机顶盒(STB)知识框架
- stb从业学习记录(1)
- stb从业记录(3)--usb
- stb从业记录(4)--离职
- STB image library的使用
- 安卓下的STB新架构
- 优化STB&TV的网络带宽
- 机顶盒STB基于海思android sdk 4.4.4 ir适配
- (记录)机顶盒手柄对应键值
- 智能电视机顶盒开发记录
- 记录Hacker学习发展图
- stb端光标的获取和处理
- c++协程3 (boost::coroutine)
- vue 引用 vue-resource步骤
- 程序猿必备的一些浏览器插件
- java 运算符优先级
- 两个非常大的数字相加,相减(JAVA)
- 海思系类机顶盒STB的Hacker记录
- Java Web 基础 --- Filter 综述
- Linux服务器环境 微信小程序 配置详解
- mybatis逆向工程
- dedecms去掉栏目广告
- 新目标
- CSS3中用自定义字体实现小图标icon
- CentOS6.5 下安装QT5.8
- 自动化测试phchon学习的小知识-设置检查点