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

本文提供两种获取Android设备Root权限的方法:一是通过ADB shell命令修改系统文件权限;二是利用Linux平台分解并重新打包system.img文件。

参考文章:http://blog.youkuaiyun.com/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

 

转载于:https://www.cnblogs.com/sn-dnv-aps/archive/2012/05/20/2510701.html

使用方法:http://blog.csdn.net/asmcvc/article/details/11770851 工具: unyaffs,mkyaffs2image 其中unyaffs有windows版本和linux版本,mkyaffs2image只有linux版本。 windows版本的unyaffs用法: 把system.img复制到unyaffs的相同目录下,cmd命令下cd到unyaffs的目录下,然后执行命令:unyaffs system.img unyaffs会把system.img解压到其目录下。 linux版本的unyaffs用法: 把unyaffs复制到/usr/bin目录下,并修改权限为可执行。 然后cd到system.img目录下(假定目录为system目录),执行命令:unyaffs system.img 然后对system目录下的文件进行修改。 注意:修改完后的文件要修改一下权限,尽量和其他文件的权限保持一致。例如:chmod 644 framework-res.apk mkyaffs2image用法: 复制到/usr/bin目录下,并修改权限为可执行。 这里以打包system目录为system.img为例,执行命令: mkyaffs2image system system.img 然后把新生成的system.img复制替换掉原:adt-bundle-windows-x86\sdk\system-images\android-17\armeabi-v7a\system.img 执行bat批处理命令启动模拟器: D:\adt-bundle-windows-x86\sdk\tools\emulator-arm.exe -avd AndroidVM -partition-size 128 这里以修改android系统启动画面为例: 打开解包目录下的\framework\framework-res.apk 替换图片:framework-res.apk\assets\images\android-logo-mask.png为下图: 然后对\framework\framework-res.apk文件重新签名,复制到linux下后修改文件权限和原来一致。 然后mkyaffs2image system system.img打包生成新的system.img,替换原来的system.img,并启动模拟器,效果图如下: 修改代码: 工具:odextools(参考:《一键odex批量合并工具odextools的重新整理与使用》)、dexopt-wrapper 其中odextools.bat的代码: 批处理有一处bug:每打包一次会把odex文件删除掉,导致在后面的打包过程中会出现找不到:system/framework/core.odex类似的错误,因此只需要在打包完后不删除odex文件即可,找到del /f !apkx!.odex 1>nul 2>nul改为:::del /f !apkx!.odex 1>nul 2>nul,也就是注释掉这一行代码。 具体使用方法(操作在windows下): 在odextools\romdir目录下创建文件夹:system 利用unyaffs解包system.img后,把所有文件复制到system目录下。 然后运行odextools.bat,如图: 选择一个需要整合odex的目录选项即可。odextools.bat会自动设置环境变量,使用baksmali.jar来反编译odex为smali,然后再调用smali.jar打包为classes.dex, 然后再打包到相应的apk包(framework目录下对应的是jar后缀的,实际上也是个apk包),最后再重新签名。 如果要修改代码,则需要把上面重新打包生成的apk文件,利用常规方法反编译后修改smali代码,例如插桩输入log信息。然后再回编译并重新签名。 最后一步:因为system.img中的apk是优化过的,apk主目录下是没有classes.dex文件的,而是一个被优化过的odex文件,用于优化启动速度。 因此需要将修改后的apk包再用dexopt-wrapper优化apk包后生成出odex文件,然后删除apk包里的classes.dex,并在相同目录下放置与apk包同名的odex文件。 按照原system目录的文件结构组织好后,目录复制到linux环境下使用mkyaffs2image重新打包成system.img
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值