手动root安桌机,通过ADB或者是system.img

偶尔善良 提交于 2019-12-21 05:15:34

参考文章:http://blog.csdn.net/feifei454498130/article/details/6537274
#the way to root you android platform
 1.
root android through adb shell
1.1 get the read/write of the /system folder
 下面是要输入的命令,$为提示符, #为解释用的标记
$mount       #查看一下/system分区在哪个目录标记
得到的信息应该像下面的一样:
rootfs / rootfs ro 0 0
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
......
/dev/block/mtdblock0 /system yaffs2 ro 0 0
/dev/block/mtdblock1 /data yaffs2 rw,mosuid,nodev 0 0
/dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev 0 0
..........
-------------
其中的重点就是/dev/block/mtdblock0 /system yaffs2 ro 0 0
下面就是最为重要的一命令,得到/system目录的读写权限:
$mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system  #重新挂载/system目录,并赋于rw(读写权限)
$mount      #检查一下,/system分区有没有得到读写权限(rw)
当显示:
......
/dev/block/mtdblock0 /system yaffs2 rw 0 0
.........
恭喜你,已经成功得到了/system目录的读写权限了。
下面就是要获得root权限了。
$exit   #退出终端
root@sn-workshop:/home/sn/code/learning-c/jni#    #这个是我当前的目录
我把当前的工作目录简写为$(PROJECT)
$(PROJECT)#ls    #查看一下当前目录有什么文件
RE.apk su superuser.apk busybox
$(PROJECT)#    #下面要做的就是把当前目录的几个文件push到手机的/system目录下面的不同子目录里面,并修改其权限。
$(PROJECT)#adb push busybox /system/bin   #把busybox push到/system/bin目录下面
$(PROJECT)#adb push su /system/bin        #把su文件push到/system/bin目录下面
$(PROJECT)#adb push RE.apk /system/app     #把RE.apk(即是RE管理器)push到/system/app目录下面去
$(PROJECT)#adb push superuser.apk /system/app   #把superuser.apk push到/system/app目录下面。
----------------------
有了前面的准备,下面就进入教程的重头戏,给文件赋于权限。
$(PROJECT)#adb shell     #进入手机终端
#                         #得到的提示符
#cd /system/bin    #进入/system/bin目录
#chown root.shell su    #修改su文件所属的用户和用户组,把原来的root用户组,修改为shell用户组。
#chmod 4755 su         #修改su文件的权限,增加一个guid标识,
#cd /system/app       #进入/system/app目录,对superuser.apk进入权限修改
#chmod 755 superuser.apk   #修改superuser.apk的文件权限。
#chmod 755 RE.apk               #修改RE管理器的权限。
--------------------------------
第一种方法到此结束,
检验一下,在手机上运行RE管理器,如果看到有授权的提示。就是成功了。

2.
下面讲解第二种方法。
修改system.img文件往里面增加su busybox superuser.apk RE.apk
以得到root权限
2.1
需要的平台:
linux 系统。
还有几个文件:
unyaffs      #此文件用于解压system.img文件
mkyaffs2image    #此文件用于生成system.img,从分解后的目录中
2.2
需要懂懂一些linux命令,会操作终端。
2.3
需要用到的命令:
chmod           #修改文件的权限
chown             #修改文件的用户,及用户组
2.4
下面是真正的实际操作
 2.4.1
  分解system.img文件
  我的操作目录是
root@sn-workshop:/home/sn/code/learning-c/jni#
为了方便我把操作目录简写为$(PROJECT)
我的操作目录目录的结构如下:(没有作解释的都默认为是文件)
system.img   RE.apk su busybox superuser.apk system(些为目录)
在操作前,我已经把unyaffs mkyaffs2image都加入了环境变量中,方便调用
$(PROJECT)#cd system    #进入放置分解后的文件放置的文件夹
$(PROJECT)/system#unyaffs ../system.img     #分解$(PROJECT)目录下面的system.img文件
最后返回的应该是:
success
$(PROJECT)/system#ls      #查看一下当前目录有没有文件(些处,没有作说明的都默认为是文件夹)
app bin build.prop(些为文件) etc fonts framework lib media tts usr xbin
#下面就要对目录内的文件夹和文件进入权限修改,并作一些个人的修改
$(PROJECT)/system#cd ..   #返回上一级目录
$(PROJECT)#chmod -R 777 system        #修改system目录的权限为所有用户组都可以执行,读写。
$(PROJECT)#cp RE.apk ./system/app         #复制文件到相当的目录下面去
$(PROJECT)#cp su ./system/bin
$(PROJECT)#cp busybox ./system/bin
$(PROJECT)#cp superuser.apk ./system/app
-------------------
2.4.2
修改权限
$(PROJECT)#cd ./system/bin                #进入system/bin目录
$(PROJECT)/system/bin#chmod 4755 su        #修改su文件的权限,增加guid标记,用来提取权限用。
$(PROJECT)/system/bin#chmod 755 busybox    #修改busybox的权限
$(PROJECT)/system/bin#cd ../app             #进入上一组目录下面的app目录里面
$(PROJECT)/system/app#chmod 755 RE.apk         #修改RE管理器的权限,增加要执行权限
$(PROJECT)/system/app#chwon root:root RE.apk    #修改RE管理器的用户组为root
$(PROJECT)/system/app#chmod 755 superuser.apk    
$(PROJECT)/system/app#chown root:root superuser.apk
----------------------------------
修改权限完成了。
2.4.3
重新打包生成system.img
$(PROJECT)/system/app#cd http://www.cnblogs.com/                  #返回$(PROJECT)目录下面。
$(PROJECT)#mkyaffs2image system system-root.img     #重新生成一个名为system-root.img的system.img文件。
在打包的过程中:
当显示:
......
.....
420 objects in 35 directories
45290 NAND pages
$(PROJECT)#    #目录显示的数字根据不同一机型,不同一配置会有所不同的。但是内容是差不多的。
$(PROJECT)#chmod 777 system-root.img    #给生成的system-root.img文件增加可执行权限。
2.4.4
根据不同的需要,可以制作bin刷机包。update.zip刷机包。
但是我个人建议就是制作成bin刷机包。
需要的方法,请自行百度。

--------------------------
今天的教程到此结束了。
祝大家玩机开心。
---------create by sn 2012-5-20 16:39

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!