让970的ADB运行在root权限下的方法
来源:互联网 发布:p2p网络理财排名 编辑:程序博客网 时间:2024/05/18 00:23
:使ADB(其实是/sbin/adbd,即ADB的Server端)运行于root权限,debug方式链接电脑后,adb shell直接可以修改system文件夹下的文件(启动后提示符既是"#"而不是"$")不需要先su获得root权限。
举例来说,如果修改了/system/framework下的某文件,重启后发现无法进入系统。如果手机开着调试模式,还是可以进入adb shell的。
没有root权限的ADB下无法恢复备份的/system/framework下的该文件,而此时,su命令也失去了作用,不能获得root权限。只能进入recovery模式下恢复全部system分区。
如果ADB启动后就是root权限,就可以直接恢复备份文件,不需要整个分区全部恢复了。
原理:ADB运行在一般权限下还是root权限下是取决于根目录下default.prop文件中定义的 ro.secure 的属性值。将值改为0就可以让adb运行在root权限下。
而这个文件一般情况下是只读的。只有通过修改刷机镜像文件boot.img才可行。
获得boot.img:首先通过修改全包的方式,在官方全包中加入第三方Recovery方法见于——bbs.gfan.com/android-3620422-1-1.html
刷机完成后进入Recovery模式并备份rom。备份完成后,在/sdcard/clockworkmod/backup/#备份日期#文件夹下就会得到需要修改的boot.img文件
修改所需工具:原始教程中说到的PatchRom项目的tools文件夹下提供的unpackbootimg(用于解压boot.img文件,同时也可以解压recovery.img文件)、mkbootimg(重新打包boot.img镜像文件)、mkbootfs(把修改后的根目录打包成镜像)
环境:Linux(原教程在UBUNTU下操作,本人在Fedora14下操作同样没有遇到任何问题)
过程:
复制刚才通过备份得到的boot.img文件。执行命令复制代码得到复制代码三个记录文件复制代码一个根目录镜像以及一个内核镜像文件复制代码通过命令把根目录镜像文件挂载为一个分区,并复制其中的内容到某目录复制代码这时候,就可一在out/ramdisk目录下找到default.prop文件,打开修改default.prop=0保存。
将根目录重新打包,输入命令复制代码用mkbootimg把内核镜像和根目录镜像打包成boot.img复制代码到这里,能让adb运行在root权限下的boot.img就做成了(原本的boot.img文件6M,新生成的只有4.4M——3.1M的内核镜像+1.3M的根目录镜像,新镜像并没有额外的空间)。
接下来生成MD5,输入复制代码然后把boot.img考回sd卡上,修改同目录下的nandroid.md5的第一行(boot.img结尾的那行)为刚才哈希镜像文件得到的结果。
最后,进Recovery模式刷机……把新镜像刷进手机里
PS:修改boot.img有风险,可能变真砖。一定要慎重。即使严格按照步骤操作也并不能保证绝对的安全。更详细的原理以及完整的,正确的操作方式详见原教程……
待手机重启成功后,连电脑,开debug模式,电脑端输入adb shell。正常情况下,应该会看见#提示符,而不是之前的$。
PS:修改过Recovery的全包,有些时候会发现System分区可用空间只有30+M(新加坡版V20B,Recovery为非触屏版)……也可以通过把刷好后的系统备份,再回复备份的方法,获得更大的System分区的可用空间.
测试发现,备份后再恢复,System分区的可用空间变为200M+
举例来说,如果修改了/system/framework下的某文件,重启后发现无法进入系统。如果手机开着调试模式,还是可以进入adb shell的。
没有root权限的ADB下无法恢复备份的/system/framework下的该文件,而此时,su命令也失去了作用,不能获得root权限。只能进入recovery模式下恢复全部system分区。
如果ADB启动后就是root权限,就可以直接恢复备份文件,不需要整个分区全部恢复了。
原理:ADB运行在一般权限下还是root权限下是取决于根目录下default.prop文件中定义的 ro.secure 的属性值。将值改为0就可以让adb运行在root权限下。
而这个文件一般情况下是只读的。只有通过修改刷机镜像文件boot.img才可行。
获得boot.img:首先通过修改全包的方式,在官方全包中加入第三方Recovery方法见于——bbs.gfan.com/android-3620422-1-1.html
刷机完成后进入Recovery模式并备份rom。备份完成后,在/sdcard/clockworkmod/backup/#备份日期#文件夹下就会得到需要修改的boot.img文件
修改所需工具:原始教程中说到的PatchRom项目的tools文件夹下提供的unpackbootimg(用于解压boot.img文件,同时也可以解压recovery.img文件)、mkbootimg(重新打包boot.img镜像文件)、mkbootfs(把修改后的根目录打包成镜像)
环境:Linux(原教程在UBUNTU下操作,本人在Fedora14下操作同样没有遇到任何问题)
过程:
复制刚才通过备份得到的boot.img文件。执行命令
- tools/unpackbootimg -i boot.img -o out
- boot.img-base
- boot.img-cmdline
- boot.img-pagesize
- boot.img-ramdisk.gz
- boot.img-zImage
- cd out
- mkdir ramdisk
- cd ramdisk
- gzip -dc ../boo.img-ramdisk.gz | cpio -i
将根目录重新打包,输入命令
- cd ..
- rm -f boo.img-ramdisk.gz
- ../tools/mkbootfs ./ramdisk | gzip > boo.img-ramdisk.gz
- rm -f ../boot.img
- ../tools/mkbootimg --cmdline '#boot.img-cmdline文件中的值,为空的话可以省略--cmdline参数#‘ --kernel boot.img-zImage --ramdisk boo.img-ramdisk.gz --base 0x#boot.img-base文件中的值,我这里是80000000,0x开头表示16进制# --pagesize #文件boot.img-pagesize中的值,我这里是2048# -o ../boot.img
接下来生成MD5,输入
- cd ..
- md5sum boot.img
最后,进Recovery模式刷机……把新镜像刷进手机里
PS:修改boot.img有风险,可能变真砖。一定要慎重。即使严格按照步骤操作也并不能保证绝对的安全。更详细的原理以及完整的,正确的操作方式详见原教程……
待手机重启成功后,连电脑,开debug模式,电脑端输入adb shell。正常情况下,应该会看见#提示符,而不是之前的$。
PS:修改过Recovery的全包,有些时候会发现System分区可用空间只有30+M(新加坡版V20B,Recovery为非触屏版)……也可以通过把刷好后的系统备份,再回复备份的方法,获得更大的System分区的可用空间.
测试发现,备份后再恢复,System分区的可用空间变为200M+
- 让970的ADB运行在root权限下的方法
- 让ubuntu中通过鼠标点击运行的程序具备root权限的方法
- user和userdebug模式下开启adb的root权限
- 不root权限的情况在用adb打开databases
- android系统应用在未root的情况下启动root权限命令方法
- 在LINUX下安装的程序,root运行提示权限不够
- 在LINUX下安装的程序,root运行提示权限不够?!
- 让PHP以ROOT权限执行系统命令的方法
- adb shell root的方法
- 如何永久性开启adb 的root权限
- 如何永久性开启adb 的root权限
- 如何永久性开启adb 的root权限
- 如何永久性开启adb 的root权限
- 以root权限运行自己所编译程序的方法
- 如何让程序以root权限运行在IOS上
- 使程序在Linux下后台运行 (关掉终端继续让程序运行的方法)
- 使程序在Linux下后台运行 (关掉终端继续让程序运行的方法)
- 使程序在Linux下后台运行 (关掉终端继续让程序运行的方法)
- HDU---1114题Piggy-Bank
- 存储过程
- 二十年后的回眸(5)——一部单车闯天下
- 常用的c_c++代码
- CFileFind类
- 让970的ADB运行在root权限下的方法
- centos 6.2用yum安装中文输入法
- 学习是一个过程
- 2.24
- 12.01.08 ~ 12.02.25
- Struts 2读书笔记-----通配符的使用
- VB关机程序--包括注销、重启、关机
- 脚本实现U盘自动挂载(linux)
- 设计模式六大原则(4):接口隔离原则