R3300L的Root

在寻找高版本Android固件的过程中遇到一个Android6.0的固件, 刷上去之后发现没有Root. 因为原发布者设置了收费的QQ群, 固件开机图上就是QQ群号, 满以为交了钱之后应该能有Root教程, 结果完全没有, 还被原发布者踢出群.

于是只能自己Root, 顺便将碍眼的开机图片换掉.

Root需要准备的材料

TTL引线

首先要将TTL连线引出, 这会涉及到焊板子

TTL转USB线

我用的是PL2302芯片的TTL转USB线, 这个在win7和ubuntu下都自带有驱动. 对应的软件Win7下建议用xshell或secureCRT, Ubuntu下建议使用GTKTerm

软件

su和daemonsu: 这个要从同一类型(芯片组), 同一内核版本的已经Root的电视盒子固件上复制. 因为现在R3300L盒子的不同安卓版本其内核都是3.14.29, 所以这两个文件是通用的.

SuperSu 和 RootExplorer: 前者是必须的, 后者可选

Root的过程

Root其实就是要将不带uid限制的su和daemonsu(其实也是su)放到/system/xbin/ 下, 将其权限设为0755, 再运行 /system/xbin/daemonsu --auto-daemon & 命令让daemon运行在后台, 然后在Android界面上运行SuperSU, 让SuperSU完成最后的Root工作, 等SuperSU更新完文件提示重启, Root就完成了.

实际的步骤要复杂一些

  • 首先要通过TTL访问命令行, 这个固件在TTL启动后, 直接是root shell, 所以这一步没什么问题
  • 然后将/system分区挂载为可写, 通过 mount -o rw,remount /system 命令实现
  • 将软件都复制到U盘, 连上盒子之后, 在TTL Shell命令行将su, daemonsu复制到 /system/xbin/ 下, 并修改权限 chmod 0755 su daemonsu
  • 在安卓界面上安装SuperSU, RootExplorer
  • 在TTL Shell命令行运行/system/xbin/daemonsu --auto-daemon &  然后ps检查是否有daemon的进程
  • 在安卓界面运行SuperSU开始Root, 如果前面步骤正确, 这一步SuperSU会提示是否更新文件, 按普通更新即可, 等十几秒后SuperSU会提示完成要重启
  • 重启后就不需要再运行daemonsu了, 直接运行SuperSU检查Root结果

制作自带Root的固件

制作已经Root的固件相对而言就更麻烦一点, 因为要把上面提到的要素都准备好, 并且固件当中可以改的只是 /system 下面的内容, 因为这些在 system分区下, 其他地方的内容是不方便修改的. 这边涉及到的工具主要有linux下的工具 https://github.com/natinusala/linux-amlogic-toolkit  和windows下的解包和打包工具 Amlogic CustomizationTool. 前者的打包存在bug, 所以只用于对system.img进行修改, 后者用于制作最外层的解包打包.

用 linux-amlogic-toolkit 解开的 system 分区会挂载在 output/system/ 目录下, 因为里面都是owner为root的文件, 所以要用sudo进行修改, 将su和daemonsu复制进 xbin目录, 并修改权限为 0755, chown 为 root:2000 (这个根据目录里其他文件的属性进行修改), 然后将前一步中安装好的SuperSU, RootExplorer 的安装目录(在 /data/app) 复制过来, 放到这里的app目录下, 检查并确认权限和owner是否和其他的app一样. 这样文件都准备好了. 还缺一个随开机启动的 daemonsu.

这时候要检查一下运行中的盒子, 看看根目录下的 init.rc 这个文件, 查找service 关键词, 能看到一系列开机启动的服务, 看看其中有没有这条 service ... /system/bin/install-recovery.sh , 如果有那就最好不过, 直接在 bin 下修改(或创建) install-recovery.sh 文件, 写入以下内容

#!/system/bin/sh

# Run SuperSU deamon
/system/xbin/daemonsu --auto-daemon &

.再chmod 0755 将文件属性改为可执行, 这样就都准备好了.

接下来就是再通过 linux-amlogic-toolkit 的recreate 将system分区打包为 system.PARTITION, 然后通过 CustomizationTool 将固件解包(只需要解level1), 将system.PARTITION 替换成新的, 再打包, 一个自带Root的固件就完成了.

在固件刷机完启动后, 在界面上运行SuperSU按提示更新文件, 待更新完文件重启后, 新系统就已经Root了.

猜你喜欢

转载自www.cnblogs.com/milton/p/12052332.html