分类: LINUX
2012-08-17 18:55:21
ndroid 手机/平板大行其道的今天,获得 root 权限成了大家关注的话题。
据我所知,需要获得 root 权限的嵌入式操作系统,只有 ios 和 android。其中 ios 称为越狱,随着 ios 的发布,有众多高手开发了相应的傻瓜越狱工具。但是 android 应用非常广泛,却没有统一的技术支持,所以只能由用户自己进行权限破解。因为 android 的内核是 linux,而 linux 中 root 拥有至高无上的权限,所以一时间获取 root 权限也成了很多非 linuxer 关注的话题。
一键获取 android root 权限: (不适用所有机型)
其实日常应用并不需要 root 权限,但是由于一些 android 的限制,我们必须拥有 root 权限才能:
连截图都要 root 权限……(记得 ios 是 home+power 吧?)
消歧使用 adb 连接到设备获得的 root 权限并不是 设备所拥有的 root。
也就是说,连接设备成功后,我们对设备的系统具有了 root 权限,而设备系统自身并没有 root 权限。例如您在 market 看到 need rooted device 字样,那就是意味着您的设备系统也具有 root 权限。通常来说,root 指设备自身可以执行 su 并获得 root 权限。
原理adb ( android debug bridge ) 链接设备,并使用具有 root 权限的 adb 修改/替换设备 su 文件,从而具有 root 权限。
前期准备ubuntu:
12 SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0bb4", MODE="0666"arch:
123 SUBSYSTEM==”usb”, SYSFS{idVendor}==”0bb4″, MODE=”0666″SUBSYSTEM==”usb”,ATTR{idVendor}==”0bb4″,ATTR{idProduct}==”0c02″,SYMLINK+=”android_adb”SUBSYSTEM==”usb”,ATTR{idVendor}==”0bb4″,ATTR{idProduct}==”0c01″,SYMLINK+=”android_fastboot”
其中 USB Vendor IDs 可以在 这里 查到。
更改文件权限:
1 | chmod a+rx /etc/udev/rules.d/50-android.rules |
重新加载 udev 规则:
1 | udevadm control –reload-rules |
插入 usb 数据线,然后打开终端,进入 adb/tools 目录,执行
1 | adb devices |
Android adb devices显示 ???????????? no permissions怎么办?
Windows:运行adb root
Linux:
adb kill-server
sudo adb root
此时显示为:
List of devices attached 0123456789ABCDEF device成功列出已连接的设备后,执行
1 2 3 4 5 6 7 | adb shell mv /system/xbin/su /system/xbin/osu # 备份原 su 文件 adb push su /system/xbin # 把 adb/tools 的 su 文件 推送到 android设备 /system/xbin adb shell rm /system/bin/su # 移除其他的 su 文件 adb shell ln -s /system/xbin/su /system/bin/su # 软链 su adb shell chmod 6755 /system/xbin/su # 变更权限 adb shell sync # 同步所有缓存中的文件 adb shell reboot # 重启 android 设备 |
(您需要根据您的设备和设置变更执行的路径)
等待设备重启完成后,可以在 adb shell 模式输入:su(回车),会出现su: access granted, courtesy of #等提示,代表成功了。
现在您可以使用root explorer,蓝牙上网,截图,martket enabler等工具啦~
为什么我不需要 root网上超多的 root 教程会让你惊奇的发现,ROOT好简单哦。但是看到新手一拿到手机就马上刷ROOT,然后再问:取了ROOT有什么用?
我们不能完全责怪用户,因为很多教程都没有强调刷ROOT可能导致的严重后果,会危及到你手上设备的安全性。实际上,很多用户根本不需要ROOT权限!
在开始之前,请先问你自己以下2个问题:
1.你有几次细读过菜市场里下载的软件或者游戏的使用协议?
2. 你有几次看了软件使用协议中的权限要求(full internet, gps location, read contacts等等)后会问“嗯,为什么这个游戏需要这些权限呢?”
你是不是还是照安装不误呢?
事实是,绝大多数的用户根本不会理会 程序所 请求 的这些权限,他们会照安装不误。
虽然 market 已经通知了用户软件所需的权限,但这远远不够。 因为用户还是不知道这些权限和安全有什么关系。有些软件也许没有什么恶意,但设计的却极其的烂。因为开发者也是人,也会犯错。有时,程序员会选择一个他们认为安全的协议,但实际上却是很危险的。又或者有些恶意软件,可以让别人远程清空你的手机,或者将你手机里的信息传送回指定服务器后再清空你的手机(也许已经有这样的软件了)。我以上所说的这些例子表明,即便是非ROOT权限的程序都有可能很危险,何况那些获得ROOT权限的程序呢?
其实,有些功能其实完全不应该需要ROOT权限的。很多用户取得ROOT权限只是为了添加一些自己的主题,为了一些小众的需求而已。
老实的说,看到越来越多的ANDROID新手认为不ROOT就不能正常工作,让我感到很沮丧。()
参考资料http://developer.android.com/guide/developing/device.html
http://www.kunli.info/2009/08/22/archlinux-android-adb-recognize-device/
http://henryh.cn/blog/android_cupcake_root.html