Android應(yīng)用.三星i9000系列(4).SuperOneClick獲取Root權(quán)限的原理
草木瓜 20110408
一、前言
經(jīng)過筆者自己測試與分析,得出結(jié)論:所以Android手機獲取Root權(quán)限,最直觀
最有效,最簡便的就是SuperOneClick方法!
與i9000基帶版本的什么JPE,JPD,JP8等等,沒有關(guān)系
與i9000Android軟件版本的什么2.0,2.1,2.2等等,沒有關(guān)系
與具體的什么Android手機也沒有關(guān)系
管你是三星的,還是MOTO的,還是HTC......
到底與什么有關(guān)呢,我理解是Linux的內(nèi)核版本!當然普通用戶根本不必關(guān)心!
后續(xù)的文章會提到有關(guān)破解Root的底層概念,當然也超出普通用戶的理解范圍。
這里,我只想介紹一下SuperOneClick獲取Root權(quán)限的簡單原理!
二、提示
有關(guān)Root權(quán)限的獲取方法可參考
《Android應(yīng)用.三星i9000系列(3).無需刷機輕松獲取Root權(quán)限》
本系列文章:http://blog.csdn.net/liwei_cmg/category/241839.aspx
三、原理簡介
我們已經(jīng)知道adb(Android Debug Bridge)這個概念,不管是Moto的,還是Samsung
的,Android手機通過USB連接電腦后,安裝好驅(qū)動,在設(shè)備管理器里都會看到Android
Composite ADB Interface這樣的東東。SuperOneClick就是調(diào)用的adb這樣的接口。
同樣豌豆莢,91手機助手這樣的軟件也是使用了adb。
關(guān)于Android手機USB連接電腦的相關(guān)內(nèi)容,可參考:
《Android應(yīng)用.三星i9000系列(1).版本選擇與USB連接電腦》
四、SuperOneClick提取Root權(quán)限的基本步驟
F:/Own/Phone/Samsung/Tools/SuperOneClick 的目錄下所有文件
2010/10/16 22:04 577,335 adb.exe
2010/10/18 11:27 339,885 adblinux
2010/10/18 11:26 171,656 adbmac
2010/10/16 22:04 96,256 AdbWinApi.dll
2010/10/16 22:04 60,928 AdbWinUsbApi.dll
2010/10/16 23:29 1,062,992 busybox
2010/10/16 22:04 5,392 rageagainstthecage //步驟一
2010/10/16 22:04 24,120 sqlite3
2010/10/16 22:04 26,264 su //步驟二
2010/11/04 21:21 379,392 SuperOneClick.exe
2010/10/16 22:04 196,521 Superuser.apk //步驟三
手機USB調(diào)試方法連接好電腦后,在電腦上運行SuperOneClick.exe,在彈出的
界面上,點擊Root按鈕,便開始了Root權(quán)限提取的自動操作!
其實它的步驟是這樣的:
步驟一:將rageagainstthecage文件存放在手機/data/local/tmp下,并執(zhí)行
--------------------------------------------------------------------------------
1) 將文件放在/data/local/tmp下,其他目錄無法執(zhí)行。命令如下:
F:/Own/Phone/Samsung/Tools/SuperOneClick>adb push rageagainstthecage /data/local/tmp
2) 使用adb shell,修改rageagainstthecage文件權(quán)限
F:/Own/Phone/Samsung/Tools/SuperOneClick>adb shell
$ cd /data/local/tmp
cd /data/local/tmp
$ chmod 777 rageagainstthecage
3) 使用adb shell,運行rageagainstthecage
$ ./rageagainstthecage
[*] CVE-2010-EASY Android local root exploit (C) 2010 by 743C
[*] checking NPROC limit ...
[+] RLIMIT_NPROC={2410, 2410}
[*] Searching for adb ...
[+] Found adb as PID 19374
[*] Spawning children. Dont type anything and wait for reset!
[*]
[*] If you like what we are doing you can send us PayPal money to
[*] 7-4-3-C@web.de so we can compensate time, effort and HW costs.
[*] If you are a company and feel like you profit from our work,
[*] we also accept donations > 1000 USD!
[*]
[*] adb connection will be reset. restart adb server on desktop and re-login.
$
此時退出shell,再次使用adb shell,會發(fā)現(xiàn)提示符為#,已經(jīng)在電腦Shell
上獲取了Root權(quán)限。如果不是#,重復(fù)執(zhí)行(./rageagainstthecage),
直到提示#。
F:/Own/Phone/Samsung/Tools/SuperOneClick>adb shell
#
步驟二:將/system修改為可讀寫,把su復(fù)制到/system/bin/
--------------------------------------------------------------------------------
1)上步驟一成功出現(xiàn)的#號提示符下,修改/system
# mount -o remount rw /system
#
2)另開一個命令行窗口,復(fù)制su至/system/bin
F:/Own/Phone/Samsung/Tools/SuperOneClick>adb push su /system/bin
su這個文件的功能,便是實現(xiàn):普通用戶至root超級用戶的權(quán)限切換!
步驟三:將授權(quán)管理的標準Android軟件包(Superuser.apk)復(fù)制到手機并安裝
--------------------------------------------------------------------------------
這個過程很簡單,不再贅述,就是adb push與adb install。授權(quán)管理其實
就是管理哪些程序能夠使用su。也就意味著對超級用戶權(quán)限的使用進行管理。
步驟四:重啟手機
--------------------------------------------------------------------------------
其實就是重啟測試一下。
五、總結(jié)
在提取Root權(quán)限過程中,只有兩個重要的文件:
rageagainstthecage
su
rageagainstthecage負責直接破解獲取Root權(quán)限,然后才能修改/system/。
su如果只放在/data/local/tmp目錄下,是沒有權(quán)限運行的。
$ ls -l su
ls -l su
-rwxrwxrwx shell shell 26264 2010-10-16 22:04 su
$ ./su
./su
Permission denied
$
所以需要把su放在/system/bin目錄下。以供以后的手機應(yīng)用程序使用!
至于rageagainstthecage,su的運行原理,就不是本文現(xiàn)在討論的問題了。
聯(lián)系客服