Android 获取ROOT权限原理解析
一、 概述
本文介紹了android中獲取root權(quán)限的方法以及原理,讓大家對android玩家中常說的“越獄”有一個更深層次的認識。
二、 Root的介紹
1. Root 的目的
可以讓我們擁有掌控手機系統(tǒng)的權(quán)限,比如刪除一些system/app下面的無用軟件,更換開關(guān)機鈴聲和動畫,攔截狀態(tài)欄彈出的廣告等。
2. Root的原理介紹
谷歌的android系統(tǒng)管理員用戶就叫做root,該帳戶擁有整個系統(tǒng)至高無上的權(quán)利,它可以訪問和修改你手機幾乎所有的文件,只有root才具備最高級別的管理權(quán)限。我們root手機的過程也就是獲得手機最高使用權(quán)限的過程。同時為了防止不良軟件也取得root用戶的權(quán)限,當我們在root的過程中,還會給系統(tǒng)裝一個程序,用來作為運行提示,由用戶來決定,是否給予最高權(quán)限。這個程序的名字叫做Superuser.apk。當某些程序執(zhí)行su指令想取得系統(tǒng)最高權(quán)限的時候,Superuser就會自動啟動,攔截該動作并作出詢問,當用戶認為該程序可以安全使用的時候,那么我們就選擇允許,否則,可以禁止該程序繼續(xù)取得最高權(quán)限。Root的過程其實就是把su文件放到/system/bin/
Superuser.apk 放到system/app下面,還需要設(shè)置/system/bin/su可以讓任意用戶可運行,有set uid和set
gid的權(quán)限。即要在android機器上運行命令:adb shell chmod 4755
/system/bin/su。而通常,廠商是不會允許我們隨便這么去做的,我們就需要利用操作系統(tǒng)的各種漏洞,來完成這個過程。
特別說明:我們燒機中的Eng版本并沒有Root權(quán)限
3. Root的方法
從Root的原理我們了解到,root過程分三步:
a. adb push su /system/bin
b. adb push SuperUser.apk /system/app
c. adb shell chmod 4755 /system/bin/su
若系統(tǒng)是eng版的,做到以上三步,那么我們Root就大功告成,但實際是不行的。為什么呢?原因有三:
1、user版的/system路徑是只讀權(quán)限,不能簡單寫入
2、 chmod需要Root權(quán)才能運行(死循環(huán)了)
3、有些系統(tǒng)在啟動時會自動將su的4755權(quán)限設(shè)成755,甚至直接刪除su
那么針對這種情況,我們怎么辦呢?非常簡單:燒一個eng版本的boot.img就行了
可以用展訊的燒錄工具,或者用fastboot模式從sd卡燒一個boot.img文件即可
至此,我們Root就成功了,可以用R.E(Root Explorer)在根目錄創(chuàng)建和刪除文件。
三、 深入理解Root機制
其流程是:
1. Su 被用戶調(diào)用
2. Su 創(chuàng)建了一個socket監(jiān)聽
3. Su 向Superuser發(fā)送了一個廣播,說是有一個程序要請求root
4. Su 等待socket 數(shù)據(jù)接收。有超時處理。
5. Superuser 界面收到廣播后,彈出一個對話框,詢問用戶
6. Superuser 向傳來的數(shù)據(jù)中的socket寫回用戶應(yīng)答結(jié)果。
7. Su 根據(jù)socket得到的結(jié)果處理應(yīng)該不應(yīng)該繼續(xù)執(zhí)行
8. 完成提權(quán)管理
superuser.apk這個程序是root成功后,專門用來管理root權(quán)限使用的,防止被惡意程序濫用。
轉(zhuǎn)載:https://blog.csdn.net/pan0755/article/details/76927015
總結(jié)
以上是生活随笔為你收集整理的Android 获取ROOT权限原理解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Chrome将网页另存为.mht的方法
- 下一篇: css3选择器详解