注意:本文较长较啰嗦,请准备好耐心。
上一篇文章说到我如获至宝地找到了Android Dev Phone 1的固件并成功刷入,但是没有取得root权限,这篇文章将介绍如何方便地取得Android的root权限。
为什么要单独写一篇文章呢?这是因为我发现国内的root方法都要涉及到复杂的刷机,以及telnetd操作,异常麻烦,还要留下丑陋的第一屏印记,费时不说,最重要的是所有的用户数据全部都会被刷掉,很合不来。还有就是,国内流传的那种刷机方法不适用于官方固件。
先普及一下root的知识
一、root的概念
很多人用的都是Windows系统吧?在Windows里,用户是分组的,普通的用户在Users里,游客在Guests,权限最大的用户在Administrators里。这其中有一个西太后式的人物,叫Administrator(如果你查字典,你会发现这个长长的单词是“管理员”的意思),掌握着系统的全部权限,它就是Administrator。
如果你用的是修改版的XP系统,你极有可能现在就是以Administrator登录的。
而Android是Linux内核的系统,而Linux系统里也有一个类似于Administrator的人物,不过他的名字叫root(root的中文意思是“树干;根”),这个用户也具有对系统至高无上的权力。
在Android当中,要对系统进行一些底层的操作,比如增加swap分区,截图等,就要用到root权限,很多高级软件都需要用到root权限,所以对于Android玩家来说,root权限是很必要的。得到root权限的过程在国内也被称为“破解”。
二、目前国内流传的破解方法的由来及其缺点
先看一段维基百科里的介绍:
Upon the launch of the T-Mobile G1, one concern among developers was that limitations were present in its build of Android that blocked superuser access to the phone. However, a severe vulnerability was soon discovered in early versions of the firmware — everything typed into the phone’s keyboard was being interpreted as commands in a root shell.[39] By using telnetd to exploit this, users could flash a modified image with root access. This process, dubbed “rooting” by the community,[40] allows users to gain superuser access and perform actions previously impossible without root access, such as installing custom builds of Android, running Debian,[41] installing custom themes, and enabling ad-hoc Wi-Fi tethering. Although Google and T-Mobile were quick to patch this vulnerability with update RC30, a ROM from HTC was later leaked allowing users to downgrade to an older firmware with the bug.[42] The Android Dev Phone 1 comes with superuser access officially integrated into its firmware, allowing native code and custom kernels to be run without any special hacks.[43]
这段英文的大概意思是说HTC Dream(世界上第一台公开上市的Android手机,在国内也与G1混为一谈。)刚出来的时候(固件是RC29)被发现有个漏洞,那就是从键盘上输入的东西都是以root shell执行的,所以可以利用这个漏洞,用telnetd工具刷入自己修改过的镜像,达到获取root权限的效果,但是这个漏洞很快在推送的RC30固件里被修补。国内流传的那个教程就是用的这个漏洞,这就是为什么国内流传的root教程要让你先刷回RC29然后才root的原因,比如这个帖子。
那这种破解方法为什么不好呢?开头已经说过了,所有的用户数据都会被刷掉,而且开机第一屏画面还会变成丑陋的运营商Logo(T-Mobile,我看那个Logo就像看见中移动的“心机”一样恶心),最重要的,它不适用于官方固件。
比如我,刷了ADP的固件(官方固件)之后,root权限就丢失了,用国内的教程,先刷RC29(或者RC7,英版),然后利用telnetd得到root权限,这时再刷回官方固件,root权限就又丢了。所以说这种方法的局限性是很大的。要让新手操作也是件麻烦事。
三,新方法:出乎意料的简单和方便
我也是刷好ADP之后才意识到root权限丢失的问题的,也傻乎乎地刷回了一遍RC7,然后再重新刷ADP,结果自然是无用功,root权限还是没有的。
于是我开始求助于Google。搜“HTC Dream root方法”,看了无数的帖子,清一色都是国内流传很广的那个教程或是它的变体。转载、转载、不停地转载。后来想到国外开发者玩ADP的可能多一些,就搜索”root android dev phone”,居然有这个搜索建议,看来是有戏的。翻了几个搜索结果,终于在这个网页(链接)下方的评论区找到了线索,顺藤摸瓜又找到这个网页(链接),看到几个老外也在困惑说刷了新版ADP固件之后root access丢失了,然后下面有个高手就给出了几行命令,说是可以获得root权限,我试了下,不行,后来在最前面加了一个su命令,就成功了。
代码如下:
adb shell
su
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
cd /system/bin
cat sh > su
chmod 4755 su
具体操作:
1,确保手机设置里“USB调试模式”勾选着
2,手机用USB线连接电脑
3,下载adb工具(已经有的就不用下载了),网上到处都有提取出来的adb工具,非常小,如果找不到可以点这里下载:(链接)
4,把adb.exe和winadbapi.dll解压到系统目录,比如 C:\Windows\ ,这是为了方便输入命令。
5,打开“运行”,输入cmd,回车。
6,输入adb shell,连接手机。
7,按顺序敲入上面的代码。
8,重启。
在我的Movistar(西班牙)版HTC Dream上测试通过。
四、总结
就目前来看,我上面给出的这个方法应该是国内第一个通用性强的Android无损root方法,该方法简便易行,且门槛低,老少皆宜。欢迎广大机友传播,避免更多的新手误入歧途。传播时请附上本文地址: https://wzyboy.im/post/211.html