技术宅
挑战题描述
我的Android电视盒是云OS系统,这个系统无法ROOT,如果刷为Android系统又会失去保修。请问有没有什么办法可以在不刷机的情况下禁用那些我不需要的系统组件,如电视淘宝、天猫超市这些?(题号:20160201)
解题思路
现在市面上几乎70%的机顶盒都在使用阿里云OS系统,由于阿里在这个系统底层限制了ROOT,因此这类系统的盒子默认无法在盒子上进行ROOT。不过对于Android内核的系统来说,我们可以通过禁用组件来实现类似电视淘宝、天猫超市这类系统内置应用的运行。因此解题主要思路就是通过禁用实现上述效果。
解题方法
系统组件的禁用需要借助ADB调试命令完成。由于ADB命令需要在电脑上连接盒子实现,因此首先要在阿里云盒子上开启USB调试功能。在电视上进入盒子系统后,依次进入“设置→通用设置→系统信息→版权声明”,进入版权声明后按遥控器左右方向键连续操作即可打开工程模式,按提示将“调试模式”和“调试信息收集”都设置为“已开启”(图1)。
开启调试模式
接着就可以在电脑上使用ADB命令进行调试了,到http://www.shuame.com/下载刷机精灵,启动刷机精灵后切换到“实用工具→ADB命令行”,启动ADB命令行工具,接着就可以利用命令行对阿里云OS系统内置组件进行禁用操作(图2)。
启动ADB命令行
启动电视盒子,并将电视盒子连接到和电脑同一网络。在盒子界面上依次进入“设置→系统设置→网络设置”,在这里记住电视盒的IP地址,这里假设为192.168.1.111。返回命令行界面输入“adb connect 192.168.1.111”,当屏幕提示“connect to 192.168.1.111:5555”,再次输入“adb devices”,就可以看到已经成功连接到盒子(图3)。
成功连接盒子
继续输入“adb shell”进入盒子系统,输入“pm list packages –f”,回车后会列出系统所有程序,其中“package:”后面接的是程序文件路径,等号后是程序名,可以看到阿里云系统在后台运行很多程序(图4)。
查看盒子当前运行的系统应用
现在使用“pm block+具体应用名”进行组件的禁用。比如阿里云的自动升级经常会造成一些不必要的麻烦。那么输入“pm block com.yunos.osupdate”即可禁用系统自动升级,重启后禁用的组件就不会在后台继续运行了(图5)。
禁用系统自动升级
其他应用操作类似,通过“pm block”命令可以在无需ROOT的情况下禁用所有自己不需要的系统组件。不过需要注意的是,在禁用系统组件前,大家一定要明白禁用的是什么功能的组件,以免禁用后给自己带来不必要的麻烦(所以本文技巧新手勿试,最好请对Android系统有比较深的了解的朋友帮助完成)。如果错误禁用了必需的组件,操作同上,再次输入“pm unblock+具体应用名”即可解禁,重启后生效。当然,上述方法同样适用于Android手机,大家可以自行在没有ROOT的手机上进行测试。为了方便大家操作,这里列出阿里云常见系统组件及说明供大家参考:
com.yunos.tvtaobao 电视淘宝
com.yunos.chaoshi 天猫超市
com.yunos.tbsdk 淘宝相关
com.yunos.tv.homeshellupdater 桌面升级
com.fw.upgrade 更新
com.yunos.osupdate 升级
com.fw.upgrade.sysoper 更新
com.xiami.tv 虾米音乐