用了4年半的小米盒子1S(底部型号MDZ-06-AA)随着不断升级系统变得越来越卡,特别是升级到1.5.16后所谓的PatchWall界面,无限的瀑布流让这款老盒子彻底卡到变形。。。想想刚买来时,体验还是不错的,也是比较流畅的,这只能说明是升级后一些官方app拖累了盒子的性能,我们来看看,都有些什么玩意儿:
一、明确需要精简和保留的app
打开盒子设置→账号与安全→ADB调试→允许
在电脑端安装adb,通过shell运行
#通过网络连接adb调试盒子adb connect 192.168.1.X(盒子ip)#查看盒子都装了哪些appadb shell pm list packages#打开系统设置的命令(可以在应用里查看安装了哪些个人app和系统更新的app)
adb shell am start -n com.android.settings/com.android.settings.Settings
不看不要紧,一看不得了足足有92+个自带app,可以看看这个帖子有一个全部内置app列表,而盒子root后我只留下了其中30个,精简列表参考这个帖子。此外,在我对1.5.16版系统恢复出厂设置重新开机简单设置后,盒子直接卡住,等待个把小时后才好点,这期间小米疯狂在未经我确认和同意情况下(我已关闭了自动更新)安装了16+个app更新:
com.duokan.airkan.tvbox-1.apk→(小米MiLink)
com.xiaomi.mitv.assistant.manual-1.apk→小米投屏神器
com.xiaomi.upnp-1.apk→小米upnpsevice
com.xiaomi.mitv.advertise-1.apk→小米standbycover
com.xiaomi.mitv.appstore-2.apk→小米应用商店
com.xiaomi.mitv.payment-1.apk→小米支付
com.mitv.tvhome-1.apk→小米patchwall桌面
com.xiaomi.mitv.shop-1.apk→小米商城
com.xiaomi.mitv.shop.mihome-1.apk→小米有品
com.xiaomi.mitv.shop.tvshop-1.apk→小米电视商城
com.miui.systemAdSolution-1.apk→小米msa
com.xiaomi.mitv.tvpush.tvpushservice-1.apk→小米TVpush
com.xm.webcontent-1.apk→电视活动中心
com.xiaomi.devicereport-1.apk→小米devicereport
com.mitv.videoplayer-2.apk→小米TV播放器
com.xiaomi.mitv.mediaexplorer-1.apk→小米高清播放器
这些app一半以上由卖货的、卖广告的的组成,并且卸载了还会装回来,是占用盒子有限性能的大户,其全部可以精简,但我还是留下了最后两个关于播放器的,因为其自带的播放器算是很良心的一个app了。
二、root盒子
下载360root和kingroot两个app,通过手机投屏神器或者U盘先安装其中一个,给盒子接上鼠标或通过投屏神器鼠标模式打开安装的root软件,按照提示root盒子,如果不行多试几次,还是不行就换另一个再试,最终成功root了小米盒子。这时可以按照网上其他教程对盒子进行魔改了,比如安装rootexplorer删减系统app(一定要先安装其他桌面后再删小米patchwall桌面,不然无法进入桌面一般就需要刷机来补了)、刷recovery、刷系统等等,我选择将其变为下载机,安装optware(也可以是entware),并且optware在 HDPfans论坛有现成可用的,其中带有transmission、ftp、ssh(dropbear)、aria2、xware(迅雷)等系列软件,并且可通过ipkg安装python、smb等很多软件,让小米盒子全面变身小型linux服务器,实现涅槃重生。
三、安装optware
通过adb连接到盒子,通过shell运行(或者安装终端app执行部分命令)
#将optware的tar包推送到盒子(由于tar包内有linux系统下的软连接文件,而zip包压缩不能很好保持软连接文件,因此不要解包此tar加入update.zip类的的卡刷刷机包的data目录,这样卡刷后optware无法正确安装使用,这个问题坑了我不少时间,最好保持tar并直接解包到data/opt)
adb push ./optware_1.3.1.tar /sdcard
#通过adb进入盒子shell
adb shell
#切换为root用户
su
#将tar包解包到/data/opt目录
mkdir /data/opt
tar xf /sdcard/opt_1.3.1.tar -C /data/opt
#重要配置文件注入盒子系统
cp /data/opt/etc/resolv.conf /system/etc
cp /data/opt/etc/nsswitch.conf /system/etc
cp /data/opt/etc/passwd /system/etc
#将optware加入盒子开机启动
echo " sleep 5" >> /system/etc/install-recovery.sh
echo " /data/opt/optware-init.sh&" >> /system/etc/install-recovery.sh
#如果上一步操作中无法写入需要重新挂载system分区为可读写
mount -o remount,rw /dev/block/system /system(如果在盒子系统一)
mount -o remount,rw /dev/block/system1 /system(如果在盒子系统二)
#如果上一步操作install-recovery.sh无法写入,可能kingroot给这个文件加了特殊属性,可尝试下面命令再试
chattr -ia /system/etc/install-recovery.sh
安装好optware后重启盒子,在浏览器输入http://192.168.1.X:8081就可以打开管理盒子的网页界面;输入http://192.168.1.X:9091可以打开transmission管理页面,给盒子接上外接硬盘,就可以下bt了;输入ftp://192.168.1.X:2121可以通过ftp远程管理盒子里面文件(默认用户root,密码toor);通过putty(windows)或openssh(linux)运行下面命令可以ssh连接到盒子:
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -p 22 root@192.168.1.x
四、给盒子刷机
这部分在root盒子后就可以进行,有需求可以参考这篇帖子,在adb shell下切换到root执行:
#备份boot、recovery分区,可用mkbootimg_tools或bootimg.exe解包后编辑并打包)
dd if=/dev/block/boot of=/sdcard/stockboot.img(如果在盒子系统一)
dd if=/dev/block/recovery of=/sdcard/stockrecovery.img
#刷写recovery分区
adb push ./recovery.img /sdcard
dd if=/sdcard/recovery.img of=/dev/block/recovery
#启动盒子到recovery
adb shell reboot recovery
最关键的recovery解决后,就可以自己捣鼓刷机包了,需要注意的是在实践中发现1.3.88,1.4.23,1.5.16几个版本的系统各自的boot.img都不一样,因此在1.5.16(1.4.23)包基础上修改的刷机包必须对应刷入1.5.16(1.4.23)的boot.img,不然开机卡米。
五、查看盒子分区信息
df→查看分区容量使用情况
mount↔cat cat /proc/mounts→查看系统分区挂载情况
ls -l /dev/block→查看系统识别的块设备
cat /proc/inand→查看emmc的分区情况
cat /proc/partitions→查看分区情况
ls -l /dev/block/platform/aml_sdio.0/by-num/→查看分区情况
以我的盒子为例,以上最后一个命令结果如下:
lrwxrwxrwx 1 root 0 21 date p1 -> /dev/block/bootloader
lrwxrwxrwx 1 root 0 16 date p10 -> /dev/block/cache
lrwxrwxrwx 1 root 0 15 date p11 -> /dev/block/data
lrwxrwxrwx 1 root 0 19 date p2 -> /dev/block/reserved
lrwxrwxrwx 1 root 0 14 date p3 -> /dev/block/env
lrwxrwxrwx 1 root 0 15 date p4 -> /dev/block/logo
lrwxrwxrwx 1 root 0 19 date p5 -> /dev/block/recovery
lrwxrwxrwx 1 root 0 15 date p6 -> /dev/block/boot
lrwxrwxrwx 1 root 0 16 date p7 -> /dev/block/boot1
lrwxrwxrwx 1 root 0 17 date p8 -> /dev/block/system
lrwxrwxrwx 1 root 0 18 date p9 -> /dev/block/system1
通过对照以上命令执行结果,可以知道盒子系统一使用/dev/block/system,/dev/block/boot;盒子系统二使用/dev/block/system1,/dev/block/boot2;两个系统共用/dev/block/cache,/dev/block/data,/dev/block/recovery。
六、分享小米盒子高清播放器
由于小米盒子自带高清播放器的入口在小米桌面app上,而小米桌面app是拖慢盒子重要元凶,必须精简,为了能够继续打开并使用自带的高清播放器,找了一圈,没有好的解决办法,于是自己动手简单写了个app,没有美化什么的,能用就好,分享给需要的朋友:https://download.csdn.net/download/boaman/10869862
总结:
精简完毕后发现系统开机内存占用不到30%,极限精简后可以达到20%以下。因此即使4年多前的配置依然可以流畅,依然可实现更多功能用途,而如果无法突破官方系统限制,这款盒子基本算是废品一个,只有换新了,这也算是推动经济发展了,但变相造成了很大浪费。。。
折腾盒子关键在root,没获得root的盒子实际上控制权在厂家,真正获得系统控制权才会真正体会到盒子是自己的。同样4年多前的ipad air现在依然好用,我想确实除了它要贵得多以外,还在于苹果拥有用户系统控制权却要克制得多,国内厂家在恶性的竞争环境下,通过低价把用户诓来后,用户便一时被其绑架,成为其慢慢鱼肉的对象,通过不断突破用户底线一步步达到肆无忌惮的的境地。。。没错我说的是天猫魔盒,配置更强,体验更烂,你做到了。。。