智能盒子怎么root(华为悦盒 EC6108V9U 破解过程全记录(root扫盲))

Posted

篇首语:风流不在谈锋胜,袖手无言味最长。本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能盒子怎么root(华为悦盒 EC6108V9U 破解过程全记录(root扫盲))相关的知识,希望对你有一定的参考价值。

智能盒子怎么root(华为悦盒 EC6108V9U 破解过程全记录(root扫盲))

华为悦盒 EC6108V9U 破解过程全记录(root扫盲) [非原创]

电信宽带送的 IPTV 盒子,型号 EC6108V9U,CPU 为 Hi3798M,1G 内存,8G 存储,支持 H.265 硬解码,系统为 Android 4.4.2,却只能看电视,岂不浪费?好在华为厚道,还是留了后门供 DIY。于是,经历了10余次刷机之后,终于破解成功,在此记录,与君分享。(听说还有个 CA 版的,不过我不是。)

快捷方式

  • 进入 Recovery 模式
  • 按遥控首页不回桌面
  • 去除系统被篡改的提示
  • 系统预装应用
  • 允许盒子安装非官方市场的 App
  • 禁止盒子自动升级系统
  • 备份用户数据
  • 恢复用户数据
  • 提取出厂固件
  • 恢复出厂固件
  • 观看本地视频

目标

  • 不破坏 IPTV 功能
  • 能自由安装 App
  • 能播放外接 U 盘 / USB 硬盘上的视频文件

磨刀篇(扫盲)

关于 root

话说 root 这个词儿,源自 Unix/Linux。因为在 Unix 的世界里,root 用户就是超级用户,是系统管理员,相当于 Windows 系统中的 Administrator,也就是一个 Unix 系统中的 “上帝”!

Android 系统是基于 Linux 的,出于安全考虑,很多系统文件、目录不允许普通用户访问。“破解”Android 的目标,就是为了能自由访问系统文件,从而实现系统优化,或自行管理 App 的安装和卸载。所谓“root”一个 Android 系统,真正的含义其实是:让任意用户获取底层 Linux 的 root 用户权限。

关于 root 的基本原理,比较完整的解释:Android root 原理,简化一点的解释:Android的Root原理。

root 的基本步骤

所有的 root 方法,都不过是想尽一切办法找到某个厂家 Android 的漏洞,以便能把修改后的 su 放进系统的可执行目录,获得 root 权限。

基本步骤如下:

  1. 将可被任何用户执行的 su 可执行文件放入 /system/xbin 目录;
  2. 预装 Superuser/SuperSU 之类的 root 权限管理 App(放入 /system/app 目录);
  3. 将 Superuser 之类 App 的服务程序做成随 Linux 自启动的后台守护进程(比如写入 etc/init.d/)。

所有的 root 工具,都不过是将这个过程自动化,以便能自动判断手机型号、根据 Linux 的不同版本选择 su,仅此而已。

关于 su

其实 su 是 Unix/Linux 自带的程序,功能就是让普通用户能够临时成为 root 用户干活。但是在运行 Android 的 Linux 中,多半是被拿掉了,或者是被修改成仅供 root 用户运行的。因为 Linux 是开源的,所以就有好人用源码编译出一个带有正常功能的 su 的可执行文件,只要选对 Linux 的版本即可拿来用了。

关于 Android 系统的目录结构和配置文件

下面列出最紧要的几个,其他目录可参阅 Android 的文件系统结构。

  • /system/ 基本上所有的 Android 工具和应用程序都在这里。/system/app/ 系统 App 存放目录,删不掉的 App 都在这里。/system/bin/ 常用的可执行程序存放目录。/system/etc/ 系统配置文件存放目录。/system/framework/ Java平台架构核心库,存放 jar 包和 odex 优化的文件。/system/lib/ 系统底层共享库,存放 .so 库文件。/system/xbin/ 存放不常用的系统可执行程序,相当于 Linux 的 /sbin。/system/build.prop 系统设置和变更属性文件。这是个文件,不是目录。
  • /data 存放用户软件和数据。/data/app 普通 App 安装目录。

关于 Superuser

Superuser 是一个开源软件,源码在此。主要功能是监听并管理 App 对 su 的调用,给用户选择是否授予 root 权限。

主要原理是将 apk 层传入的本应放在 shell 进程中执行的命令,放到 daemonsu 创建 进程 sush 中执行。 其中 Daemonsu 为开机时启动的 su 守护进程(user 为 root)。 最重要的过程是 apk、su、daemonsu、sush、superuser 之间的通信。

通信过程大概为:

  1. 三方进程调用su,su 通过 socket 与 daemonsu 通信,
  2. daemonsu 创建sush,
  3. sush 通过 am 启动 superuser apk ,让用户选择是否授予其root权限。
  4. superuser 通过 socket 告知 sush 用户选择的结果
  5. sush 根据 apk 传过来的结果,选择继续执行或中断执行

详见 Superuser root 原理详细分析。

动手篇

root 方法有以下 2 种:

  1. 利用 ADB 模式,执行命令行脚本,分步完成。
  2. 进入 Recovery 模式,用别人已经 root 完的 ROM,整个替换掉现有的系统。

Recovery 方式(刷机)

Recovery 模式,顾名思义,是 Android 系统提供的恢复操作系统(ROM)、清除用户数据、恢复出厂设置的模式。所谓“刷机”,就是在 Recovery 模式下,把已 root 、已修改过的系统 ROM“恢复”到盒子的存储中去,覆盖现有系统。

刷机方式的好处是简单,适合不懂(或不想懂)计算机原理的人操作。但前提是必须找到适合自己盒子的 ROM 版本。因为盒子不像手机,各省、各个运营商都对 ROM 做过定制,IPTV 的配置参数更是各不相同,刷错了就变砖了。

因此,刷机方式:

  • 必须找到和自己盒子版本完全相同的 ROM;
  • 难以保留 IPTV 功能。

步骤如下(详见华为悦盒EC6108V9系列-海思芯片通刷固件破解教程):

  1. U 盘格式化为 FAT32,在根目录建个 upgrade 文件夹(有些盒子是直接放入根目录),把需要刷入的 ROM(update.zip 文件)拷入;
  2. 进入 Recovery 模式。注意 2 种遥控器的进入方式不同。详见 华为悦盒怎么进入REC模式、升级、双清、恢复出厂教程。
    屏幕上各个选项的含义如下(注意,各个型号的选项次序不一定相同):Apply update from external storage 从外部存储中更新系统(刷机用)Apply update from backup 从自带备份中更新系统(恢复出厂固件)Wipe dalvik-cache partition 清除 Dalvik 缓存数据Wipe data/factory reset 清除系统数据 / 恢复出厂设置Wipe userdata partition 清除用户数据Reboot 重启
  3. 选择 Apply update from external storage,开刷。
  4. 等待完成,重启盒子。

不过我得保留IPTV功能,所以选择下一种方案。

ADB方式(执行脚本)

华为悦盒 EC6108V9U 的 ADB 模式,天然就是带 root 权限的,这就是华为为我们开的 backdoor,不需要再费心费力去找 Linux 的漏洞了。这和一些 Android 手机不同。

判断 ADB 是否已经获到了 root 权限,只要看 shell 的提示符即可。“#”是 root 用户的专属提示符。

> adb shell $ // 普通用户权限 # // root 权限

基本步骤:

  1. 保证电脑和盒子的 IP 在同一个网段(子网)内。如果都是用 DHCP 获取 IP 的,默认就是同一网段。Wifi 或 有线网络均可,只是盒子优先认网线,想用 Wifi 就必须拔下网线。
  2. 开启盒子的“远程维护连接”,(设置--更多(或高级)--远程连接控制,设为允许),左下角会出现“DEBUG模式”。并记录本次连接的密码(每次开启都会生成新的密码,可以随时进来查看当前密码);
  3. 运行华为 STB 管理工具,导入同一目录下的许可证文件(*.dat);连接盒子,输入IP、连接密码;开启远程登录(ADB模式),提交。
  4. 运行破解脚本(*.bat),可能会有多个。
  5. 重启盒子。

详见华为悦盒电脑破解教程。

关于同一个 IP 网段

盒子和电脑都设置为同一段 IP,才能从电脑上连接到盒子去。“同网段”由 IP 地址和掩码共同决定的,可参阅 IP地址的定义和含义。


简单来说,就是掩码(mask)的每个字节(8 个二进制位)控制着对应 IP 字节是属于主机(Host)地址,还是属于网段地址,同一网段的掩码必定相同。IPv4 的地址由 4 个字节构成,相应的掩码也是 4 个字节。一般地,可以如下设置:


盒子 IP:192.168.0.1 盒子掩码:255.255.255.0 电脑 IP:192.168.0.2 电脑掩码:255.255.255.0

掩码为 255.255.255.0,表示 IP 地址的前 3 个字节(192.168.0.X)均为网段地址,用于识别网段,不用作识别主机。这时 IP 地址中的最后 1 个字节才是标识主机用的。各个主机必须设为不同的数字,总共有 256 (2 的 8 次方)种可能,再去掉第 1 个可用数字 0(固定用于代表本网段)和最后 1 个可用数字 255(固定表示本网段的广播地址),剩下 254 个可用数字(1-254)。也就是说,当掩码字节为 0 时,同网段最多可以接入 254 个主机。

当然,掩码可以是任意值,不一定非得是 0 或 255。这样 IP 拆分为网段和主机部分就得用二进制计算了,有专门的网站提供了方便,比如网络和IP地址计算器。

详细解析破解脚本

一般会有一个或多个 .bat 文件供运行。.bat 文件是普通的文本文件,只是后缀改成 .bat 而已,用记事本打开就行了,里面都是 windows/DOS 能够运行的命令。下面逐条解释一下几条主要命令:

.\\root\\adb kill-server

运行 root 目录下的 adb 程序,参数为 kill-server。作用是关闭已经在运行的 adb 进程。

set /p ip=请输入盒子的IP地址,然后按回车键:

获取用户键盘录入,赋值给变量 ip。这里务必准确输入盒子的 IP,比如 192.168.0.1。

.\\root\\adb connect %ip%:5555

运行 root 目录下的 adb 程序,参数为 connect %ip%:5555。作用是连接 ip 指定的盒子 IP 地址,端口为 5555。ADB 默认服务端口即为 5555,因此可省略为 adb connect 192.168.0.1。

.\\root\\adb shell mount -o remount,rw /system

运行 adb 程序,参数为 shell mount -o remount,rw /system,也即通过 ADB 在盒子上执行 mount -o remount,rw /system 命令。作用是将 /system 目录重新挂载为可读写模式,便于下面的写入操作,默认是只读的。

.\\root\\adb push .\\root\\su /system/xbin/su

运行 adb 程序,参数为 push .\\root\\su /system/xbin/su。作用是推送本地 root 目录下的 su 文件到盒子上的 /system/xbin/ 目录下,文件名仍然为 su。既然文件名不变,其实可以简写为 adb push .\\root\\su /system/xbin/。

.\\root\\adb shell "chmod 06755 /system/xbin/su"

运行 adb 程序,参数为 shell "chmod 06755 /system/xbin/su",即通过 ADB 在盒子上执行 chmod 06755 /system/xbin/su 命令。作用是将 /system/xbin/ 目录下的 su 文件的访问权限修改为 06755,也就是允许任意用户执行 su,详见 UNIX 文件权限。

.\\root\\adb push .\\root\\Shafa.apk /system/app/Shafa.apk.apk

运行 adb 程序,参数为 shell .\\root\\Shafa.apk /system/app/Shafa.apk.apk。作用是推送本地 root 目录下的 Shafa.apk 文件到盒子上的 /system/app/ 目录下,文件名为 Shafa.apk.apk,使得沙发桌面应用成为系统预装应用

.\\root\\adb shell "settings put secure install_non_market_apps 1"

运行 adb 程序,参数为 shell "settings put secure install_non_market_apps 1",即通过 ADB 在盒子上执行 settings put secure install_non_market_apps 1 命令。作用是允许盒子安装非官方市场的 App

.\\root\\adb shell "chmod 0000 /system/app/UpgradeOnline.apk"

运行 adb 程序,参数为 shell "chmod 0000 /system/app/UpgradeOnline.apk",即通过 ADB 在盒子上执行 chmod 0000 /system/app/UpgradeOnline.apk 命令。作用是将 /system/app/ 目录下的 UpgradeOnline.apk 文件访问权限该为 0000,也即禁止任何用户访问,以禁止盒子自动升级系统

.\\root\\adb shell "echo 1 > /system/etc/.installed_su_daemon"

运行 adb 程序,参数为 shell "echo 1 > /system/etc/.installed_su_daemon",即通过 ADB 在盒子上执行 echo 1 > /system/etc/.installed_su_daemon 命令。作用是在 /system/etc/ 目录下生成 .installed_su_daemon 文件(如果已存在则覆盖),文件内容为一个字符“1”,启用 su 的守护(常驻内存)标志。

.\\root\\adb shell mkdir /system/etc/init.d

运行 adb 程序,参数为 shell mkdir /system/etc/init.d,即通过 ADB 在盒子上执行 mkdir /system/etc/init.d 命令。作用是在 /system/etc/ 目录下新建 init.d 目录。该目录下的所有文件都被 Linux 视为系统启动时自动执行的脚本。

.\\root\\adb push .\\root\\android /system/framework/android.policy.jar

运行 adb 程序,将本地 root 目录下的 android 文件推送到盒子的 /system/framework 目录下,文件名变为 android.policy.jar,如有同名文件则覆盖。作用是解决按遥控首页不回桌面的问题。

.\\root\\adb shell "> /system/checksum.img"

运行 adb 程序,将盒子 /system/ 目录下的 checksum.img 清为 0 个字节的文件。作用是去除系统被篡改的提示。盒子在启动时,会对几个关键文件进行校验,校验数据保存在 checksum.img 文件中,将其内容清为 0 就取不到校验数据了,也就不提示了。其实盒子提示被篡改也没啥关系,多点击一次确定罢了,继续用就是了。

adb pull /data/data/com.huawei.iptv.stb.stbconfig .\\bak

运行 adb 程序,将盒子 /data/data/ 目录下的 com.huawei.iptv.stb.stbconfig 文件复制到本地的 bak 目录下。作用是备份用户数据

adb push .\\bak\\com.huawei.iptv.stb.stbconfig /data/data/

运行 adb 程序,将本地 bak 目录下的 com.huawei.iptv.stb.stbconfig 文件复制到盒子的 /data/data/ 下。作用是恢复用户数据

提取出厂固件

出厂时的固件,可以通过 Recovery 模式的 Apply update from backup 菜单进行恢复。出厂固件位于盒子存储的特定分区中,一般不会被覆盖,所以提取出来主要是为了修改里面的内容,比如制作已经 root 的 ROM。完整的命令如下(前面 2条是连接盒子和修改 /system 为读写模式):

adb connect 192.168.0.1 adb shell mount -o remount,rw /system adb shell mkdir /tmp/bak adb shell mount -t ext3 /dev/block/platform/hi_mci.1/by-name/backup /tmp/bak adb pull /tmp/bak/update.zip ./update.zip

下面逐条解释一下这几条命令:

adb connect 192.168.0.1

运行 adb 程序,参数为 connect 192.168.0.1。作用是连接 192.168.0.1(盒子 IP 地址),端口用默认的(5555)。如接着前面的操作,则无需再执行了。

adb shell mount -o remount,rw /system

同上所述,将 /system 目录重新挂载为可读写模式。如接着前面的操作,则无需再执行了。

adb shell mkdir /tmp/bak

运行 adb 程序,在盒子上执行 mkdir /tmp/bak 命令。作用是在盒子的 /tmp/ 目录下新建一个名为 bak 的目录,用于挂载备份文件所在的分区。Unix 系统下要访问设备(存储设备分区也被视为一种设备),得先挂到某个目录下面,以便像访问文件一样访问设备。

adb shell mount -t ext3 /dev/block/platform/hi_mci.1/by-name/backup /tmp/bak

运行 adb 程序,在盒子上执行 mount -t ext3 /dev/block/platform/hi_mci.1/by-name/backup /tmp/bak 命令。作用是将 /dev/block/platform/hi_mci.1/by-name/backup 设备挂载为 /tmp/bak 目录,存储格式是 ext3。

adb pull /tmp/bak/update.zip

运行 adb 程序,从盒子的 /tmp/bak/ 目录下拉取 update.zip 文件,保存到当前目录下。这个就是盒子自带的 ROM 备份。

在拉取文件之前,还可以用以下命令查看一下挂载成功的分区(即 /tmp/bak 目录),我是看到里面只有一个 update.zip 文件的。

adb shell ls -l /tmp/bak

运行 adb 程序,列出盒子 /tmp/bak/ 目录下的文件。关于 ls 命令的详细信息,可参考 ls命令详解。

观看本地视频

要不怎么说华为厚道呢,内置的媒体中心 App 天然就能播放本地视频,根本不需要安装什么暴风影音之类的!进入第三方桌面,就能打开媒体中心看视频了,简单吧。

相关参考

机顶盒用户认证失败(闲置机顶盒刷机经验分享,解决系统目录不能写问题)

...前有网友发来一批闲置退网的机顶盒,生产厂家是中兴,盒子型号B860AV1.1,在安装第三方桌面时遇到问题,特此分享我的解决方法。盒子配置首先把机顶盒连接到电视机,开机查看盒子的配置,这些盒子是闲置盒子。开机到不了...

手表盒子(华为回应手表在纸盒上测出血氧心率:极小概率会误判,将优化算法)

...热议。对此,华为消费者服务热线工作人员回应称,华为智能穿戴设备依托光学传感器对光信号波动进行血氧测量,将手表置于纸盒、水果或毛巾物体上,极小概率可能会误判为人体信号,会得出血氧值。华为方面会不断优化算...

控制手机(向日葵UUpro评测:不用ROOT系统,就能远程控制手机让其大放异彩)

...性能满足他们的日常使用也是绰绰有余。不过老年人使用智能手机可没年轻人学得这么快,想让老年人轻松使用智能手机,也不是那么容易的一件事。就拿我家老爷老太来说,刚开始我给他们换了智能手机后,没事就打电话问我...

康佳电视切换数字电视(常见电视或盒子进入Recovery模式的方法汇总)

智能电视或盒子出现故障时,我们比较常用的一个操作就是进入Recovery模式(工厂模式),但是很多用户并不知道具体如何操作,下面就看看以下教程吧!一、创维进入Recovery模式需要用到遥控的快捷键。操作方式是给盒子断电...

深圳不干胶贴纸┃深圳(在苹果华为小米背后,这家公司靠卖包装纸盒子,三个月赚走1个亿)

随着国内的包装产业高速发展,市场规模稳定提升,包装企业也迎来了蓬勃的发展。其中,有一家包装企业,从上世纪90年代初的小型加工厂,到如今的中国印刷包装企业百强之首,历经二十余年的发展,已成为行业龙头企业。...

深圳不干胶贴纸┃深圳(在苹果华为小米背后,这家公司靠卖包装纸盒子,三个月赚走1个亿)

随着国内的包装产业高速发展,市场规模稳定提升,包装企业也迎来了蓬勃的发展。其中,有一家包装企业,从上世纪90年代初的小型加工厂,到如今的中国印刷包装企业百强之首,历经二十余年的发展,已成为行业龙头企业。...

智能调光玻璃和调光膜(EC调光天幕,跑出隐形冠军|科普)

...、董事长、CEO李斌在描述蔚来EC7的可选装全新一代黑灰色智能调光天幕时,用了这样一番话来形容。他宣布,这是“在全球范围内,第一次在电致变色天幕玻璃中,采用黑灰的中性基色。”其实,早在一年前,极氪001就采用了EC...

最好的制砂设备(制砂设备哪家好?华一V9制砂楼环保高效品质高)

...2035年,基本建成覆盖广泛、功能完备、集约高效、绿色智能、安全可靠的现代化高质量国家公路网。展望到2050年,高水平建成世界一流国家公路网,与现代化高质量国家综合立体交通网相匹配。《规划》的公布实施,这

智能喷枪(易码EC-JET2000喷码机缔造智能标识新标杆)

喷码机是通过软件控制,利用非接触式喷印技术在产品上进行标识的设备。选择一款高效稳定、安全可靠、高性价比的小字符喷码机是企业稳定生产的保证。广州易达包装设备有限公司专为提供的喷码标识产品、专业的行业解决...

数码存储卡(华为移动设备存储破瓶颈利器:大华NM存储卡简评)

...时候该如何破除手机和平板的存储瓶颈呢?如果你用的是华为或者荣耀的手机,那么也许你还有另外一条路,可以实现手