簡(jiǎn)介:本課程是Android Root初級(jí)教程的升級(jí)版。本課程中主要使用CM Android作為分析對(duì)象。從su命令創(chuàng)建LocalServer開始,分析在su.c、activity.c等源碼文件中如何與Superuser進(jìn)行交互。同時(shí),分析Superuser如何與su建立LocalSocket連接,以及如何通知su進(jìn)行Root授權(quán)或拒絕Root授權(quán)
第1章 提取root權(quán)限安全嗎
本講主要回答了如下兩個(gè)個(gè)問題:
1、提取Root權(quán)限有什么安全隱患;
2、如何盡可能防御這些安全隱患
第2章 Superuser.apk為什么不見了
本講主要介紹了Superuser.apk文件和Settings的關(guān)系。也就是說(shuō),并不是每一個(gè)可以Root的Android系統(tǒng)都有Superuser.apk文件
第3章 CM ROM提取Root權(quán)限的原理
本講主要通過(guò)時(shí)序圖分析了su和Superuser通信的過(guò)程
第5章 進(jìn)行Root授權(quán)的處理流程
本講主要介紹了su命令進(jìn)行Root授權(quán)的處理流程
第6章 初始化調(diào)用者信息
本講主要介紹了su中的from_init函數(shù)的作用,該函數(shù)用于初始化調(diào)用者數(shù)據(jù),如調(diào)用者ID
第7章 初始化路徑
本講主要介紹了user_init函數(shù)的作用,該函數(shù)用于初始化SQLite數(shù)據(jù)庫(kù)文件的路徑
第9章 查詢su.sqlite數(shù)據(jù)庫(kù)
本講主要介紹了如何檢查Superuser和su共用的su.sqlite數(shù)據(jù)庫(kù)文件是否存在
第10章 創(chuàng)建LocalSocket服務(wù)
本講主要介紹了socket_create_temp的實(shí)現(xiàn),該函數(shù)用于創(chuàng)建LocalSocket服務(wù)
第11章 通過(guò)am命令向Superuser傳遞數(shù)據(jù)
本講主要介紹了am和Superuser之間傳遞數(shù)據(jù)的方式
第12章 等待Superuser的連接
本講主要介紹了Superuser如何通過(guò)LocalSocket連接到了su命令
第13章 向Superuser傳遞調(diào)用者信息
本講主要介紹了su命令如何通過(guò)LocalSocket數(shù)據(jù)通道向Superuser傳遞調(diào)用者信息
第14章 接收Superuser的返回信息
本講主要介紹了su命令如何接收Superuser傳過(guò)來(lái)的用戶選擇信息
第15章 允許和拒絕“Root授權(quán)”
本講主要介紹了su命令如何授權(quán)或拒絕root請(qǐng)求
第16章 Root授權(quán)窗口的處理流程
本講主要介紹了superuser中的root授權(quán)窗口的處理流程
第17章 Superuser向su回傳用戶的選擇
本講主要介紹了Superuser如何向su發(fā)送用戶的選擇
第18章 獲取root授權(quán)有效期
本講主要介紹了Superuser如何處理root授權(quán)的有效期