家里有一个办宽带送的电视盒子,但是1+8,安卓4.4的配置已经是太太太老了,还预装了一堆IPTV的东西拖累运行速度,况且安卓4.4也不支持adb激活冰箱,于是就只能通过root来解决这个问题了。不过网上的教程都需要通过拆机接TTL线来搞,实在是有点麻烦,考虑到拆机核心思路也就是拿到shell的root权限,如果我们能在系统中直接拿到root权限就好办了。安卓4.4时代正是各种一键root工具开花的时候,因此上面这种思路就变得好实现了。
免责声明:本文只提供搞机的思路,由此带来的损失本人不承担任何责任!
需要的工具你可以直接点击蓝色的字体进行下载。
开启adb调试
下载机顶盒现场配置工具,解压其中的bin文件夹(密码:qizhi),双击StbCfgTool.exe。打开后先点击Character Info
,右边会出来一段字符,复制下来,然后点击Next
,把刚刚得到的这串字符复制进去,点下一步
,就可以进到主页面了。
Windows 10以上的系统会出现界面显示不全的现象,不需要去理会。
将你的机顶盒连接到无线网络,注意必须和电脑在同一个局域网内(也就是连接到一个路由器的网上)。在配置工具内在ipv4
一栏输入你机顶盒的IP地址,点击连接
,等待连接成功后再点打开 ADB
。如果在等待一段时间后,按钮变为关闭 ADB
,那么这一步的设置就完成了。
下载adb工具包并解压,在工具包的目录下打开cmd。为了方便描述,在这里假定盒子的IP地址为192.168.0.5
。
打开cmd后,输入以下命令远程连接盒子:
adb connect 192.168.0.5
如果出现connected to 192.168.0.5:5555
就代表这一步完成了。为了避免不必要的麻烦,我们先看看能不能直接获取到adb shell的root权限。往里面输入
adb shell
此时前面应该会变成shell@orange:/ $
这样的字样。输入su
,观察$
是否会变成#
,同时前面应该会变成root@orange:/ #
这样的字。如果可以的话,那么直接就可以卸载掉不必要的软件了,如果报错的话,那么我们就要手动进行root权限的接管。
获取root权限
下载360超级root,回到刚才的cmd窗口。先输入exit
退出shell模式,然后我们用adb把apk安装到盒子上。为了方便描述,在这里我们假定安装包路径为D:\360root.apk
。
向cmd里输入
adb install D:\360root.apk
等待安装完成。安装完成后,转到电视盒子插上鼠标,打开360root,点击一键ROOT
,等待root完毕。
等待过程中很可能会出现电视盒子卡死,或者提示root失败等,多尝试几次再确认是否可行。
root完毕之后,重复前面的步骤,确认是否可以取得shell的root权限。可行之后转到下一步。
如果盒子弹出了给予名字为Shell
的APP请求root权限的对话框,请选择允许。
接管root权限
下载SuperSU的相关文件并解压,回到我们刚刚已经获取了权限的shell中。
先用mkdir
命令创立一个目录,我们要把这个目录作为临时中转站:
cd /sdcard/
mkdir SuperSUTemp
随后,我们运行两次exit
命令退出shell模式。就像这样:
root@orange:/ # exit
shell@orange:/ $ exit
C:\Users\Rinko24>
在这里我们假定你把SuperSU的文件复制出来的目录是D:\SuperSU
。运行以下命令,把相关文件复制到临时目录里:
adb push D:\SuperSU\su /sdcard/SuperSUTemp/
adb push D:\SuperSU\su /sdcard/SuperSUTemp/
adb push D:\SuperSU\supolicy /sdcard/SuperSUTemp/
adb push D:\SuperSU\supolicy /sdcard/SuperSUTemp/
adb push D:\SuperSU\chattr /sdcard/SuperSUTemp/
adb push D:\SuperSU\chattr /sdcard/SuperSUTemp/
adb push D:\SuperSU\suinit /sdcard/SuperSUTemp/
adb push D:\SuperSU\suinit /sdcard/SuperSUTemp/
adb push D:\SuperSU\sukernel /sdcard/SuperSUTemp/
adb push D:\SuperSU\sukernel /sdcard/SuperSUTemp/
adb push D:\SuperSU\daemonsu /sdcard/SuperSUTemp/
adb push D:\SuperSU\daemonsu /sdcard/SuperSUTemp/
adb push D:\SuperSU\libsupol.so /sdcard/SuperSUTemp/
然后进入到root权限的shell中。先把system分区挂载为可读写:
mount -o remount,rw /system
随后,移动临时目录中的文件到system分区下对应的文件夹:
cp /sdcard/SuperSUTemp/su /system/bin/
cp /sdcard/SuperSUTemp/su /system/xbin/
cp /sdcard/SuperSUTemp/supolicy /system/bin/
cp /sdcard/SuperSUTemp/supolicy /system/xbin/
cp /sdcard/SuperSUTemp/chattr /system/bin/
cp /sdcard/SuperSUTemp/chattr /system/xbin/
cp /sdcard/SuperSUTemp/suinit /system/bin/
cp /sdcard/SuperSUTemp/suinit /system/xbin/
cp /sdcard/SuperSUTemp/sukernel /system/bin/
cp /sdcard/SuperSUTemp/sukernel /system/xbin/
cp /sdcard/SuperSUTemp/daemonsu /system/bin/
cp /sdcard/SuperSUTemp/daemonsu /system/xbin/
cp /sdcard/SuperSUTemp/libsupol.so /system/lib/
为这些文件添加权限:
chmod 4755 /system/bin/su
chmod 4755 /system/xbin/su
chmod 4755 /system/bin/supolicy
chmod 4755 /system/xbin/supolicy
chmod 4755 /system/bin/chattr
chmod 4755 /system/xbin/chattr
chmod 4755 /system/bin/suinit
chmod 4755 /system/xbin/suinit
chmod 4755 /system/bin/sukernel
chmod 4755 /system/xbin/sukernel
chmod 4755 /system/bin/daemonsu
chmod 4755 /system/xbin/daemonsu
chmod 0644 /system/lib/libsupol.so
随后设置su文件的自启选项:
echo "/system/xbin/daemonsu --auto-daemon &" >> /system/bin/init.zte.post_boot.sh
/system/xbin/daemonsu --auto-daemon
现在我们已经都设置好了。接下来卸载掉360超级root:
pm uninstall --user 0 com.qihoo.permmgr
然后关闭掉盒子电视自带的安装限制,并设置自动启动:
setprop config.Android.AppInstallCtrl 3
settings put secure install_non_market_apps 1
settings put global install_non_market_apps 1
echo "setprop config.Android.AppInstallCtrl 3" >>/system/bin/init.zte.post_boot.sh
echo "settings put secure install_non_market_apps 1" >>/system/bin/init.zte.post_boot.sh
echo "settings put global install_non_market_apps 1" >>/system/bin/init.zte.post_boot.sh
连续执行两次exit
退出shell,然后安装SuperSU:
adb install D:\SuperSU\SuperSU.apk
接着转到盒子,把你的盒子网络连接到可以科学上网的环境,打开SuperSU,不出意外会提示你更新二进制文件,点击更新,按照程序的提示进行操作,更新完毕后就可以正常授权了。
接下来的事情就可以自己选择了,卸载预装,安装当贝桌面这些都可以。预装软件建议通过AirFrozen进行冻结,不需要自己去卸载预装,以免不必要的麻烦。
参考资料:
中兴现场配置工具STB_ConfigTool_V7.6.7_Bin_Site