Android之RootTools框架簡(jiǎn)單使用
Android目錄結(jié)構(gòu)
data
- app:用戶安裝的應(yīng)用
- data:應(yīng)用的專屬文件夾
- system:系統(tǒng)的配置信息,注冊(cè)表文件
- anr:anr異常的記錄信息
dev:devices的縮寫(xiě)
- 存放設(shè)備所對(duì)應(yīng)的文件
mnt:mount的縮寫(xiě)
- 掛載在系統(tǒng)上的設(shè)備:sdcard,u盤(pán)
proc:硬件配置,狀態(tài)信息
- cpuinfo、meminfo
sbin:system bin
- 系統(tǒng)重要的二進(jìn)制執(zhí)行文件
- adbd:服務(wù)器的adb進(jìn)程
system:
- app:存放系統(tǒng)應(yīng)用,默認(rèn)不能刪除
- bin:Android中可執(zhí)行的linux指令文件
- etc:host:主機(jī)名和ip地址的映射
- fonts:Android中自帶的字體
- framework:存放谷歌提供的java api
- lib:核心功能的類庫(kù),C/C++文件
- media/audio:存放Android的音效文件
- tts:語(yǔ)音發(fā)聲引擎,默認(rèn)不支持中文
- usr:用戶設(shè)備的配置信息,鍵盤(pán)編碼和按鍵編碼的映射
- xbin:是專為開(kāi)發(fā)人員準(zhǔn)備的二進(jìn)制指令
Android下的Linux指令
su:superuser
- 切換到超級(jí)用戶
rm:remove,刪除文件
- rm 文件名
ls:列出目錄下的所有文件和文件夾cd:切換到某個(gè)目錄
- ls -l:查看文件的詳細(xì)信息
- ls -a:查看隱藏文件
cat:查看文件內(nèi)容
- cat 文件名
- 不要cat二進(jìn)制可執(zhí)行文件
mv:move 修改文件名
- mv 原文件名 新文件名
mkdir:創(chuàng)建文件夾
- mkdir 文件夾名字
rmdir:刪除文件夾
- rmdir 文件夾名字
touch:創(chuàng)建新文件
- touch 文件名
chmod:change mode,切換文件訪問(wèn)權(quán)限
- chmod 777 文件名
echo:回顯數(shù)據(jù);重定向數(shù)據(jù)sleep:睡眠幾秒
- echo 數(shù)據(jù) > 文件名
df:顯示指定目錄的容量
id:打印當(dāng)前用戶的idps:列出系統(tǒng)中運(yùn)行的所有進(jìn)程
- uid=0:root
- uid=1000:system
- uid=2000:shell
- uid=10000+:一般應(yīng)用程序的id
kill:殺死指定pid的進(jìn)程
- kill pid
chown:change owner,修改擁有者
- chown 0.0 文件名
mount:掛載文件系統(tǒng)
- mount -o remount rw /:掛載當(dāng)前目錄為可讀可寫(xiě)權(quán)限
- mount -o remount rw /system:重新掛載指定目錄
Android中特有的指令
am:ActivityManager,可以進(jìn)行跟activity相關(guān)的操作
- am start -n com.itheima.createfile/com.itheima.createfile.MainActivity:開(kāi)啟指定Activity
- am kill com.itheima.createfile:結(jié)束非前臺(tái)進(jìn)程
- am force-stop com.itheima.createfile:結(jié)束進(jìn)程
pm:PackageManagermonkey -p com.itheima.createfile 1000:自動(dòng)點(diǎn)擊指定應(yīng)用1000次
- pm disable 包名:凍結(jié)指定應(yīng)用
- pm enable 包名:解凍指定應(yīng)用
刷模擬器,rom寫(xiě)文件(su)
- 如果想讓真實(shí)手機(jī)運(yùn)行這些指令,手機(jī)必須要有root權(quán)限
- 刷root原理:把su二進(jìn)制文件拷貝到/system/bin或者/system/xbin
- Android刷root軟件,工作的原理全部都是利用系統(tǒng)的漏洞實(shí)現(xiàn)
- rom:可以理解為android系統(tǒng)的安裝文件
- 把su文件和superuser.apk寫(xiě)入img文件
- 執(zhí)行su指令
Runtime.getRuntime().exec("su");
小案例:凍結(jié)解凍應(yīng)用
凍結(jié)和解凍指定的應(yīng)用
- RootTools.sendShell("pm disable " + package, 300000); RootTools.sendShell("pm enable " + package, 300000);
小案例:零權(quán)限讀取用戶隱私數(shù)據(jù)
直接修改短信數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限
- RootTools.sendShell("chmod 777 data/data/com.android.providers.telephony/databases/mmssms.db", 300000);
- SQLiteDatabase db = SQLiteDatabase.openDatabase("data/data/com.android.providers.telephony/databases/mmssms.db", null, SQLiteDatabase.OPEN_READONLY);
- Cursor cursor = db.query("sms", new String[]{"body", "address"}, null, null, null, null, null);
- while(cursor.moveToNext()){ String body = cursor.getString(0);
- String address = cursor.getString(1); System.out.println(body + ";" + address); }
- RootTools.sendShell("chmod 660 data/data/com.android.providers.telephony/databases/mmssms.db", 300000);
靜默安裝
為什么有靜默安裝的需求自動(dòng)下載應(yīng)用,然后靜默安裝
- 正規(guī)應(yīng)用。電子市場(chǎng),方便用戶靜默安裝
- 流氓軟件。后臺(tái)偷偷下載安裝。
- //靜默安裝 RootTools.sendShell("pm install sdcard/flowstat.apk", 30000);
- //打開(kāi) RootTools.sendShell("am start -n com.jijian.flowstat/com.jijian.flowstat.TrafficWidgetSetting", 30000);
- //卸載應(yīng)用 RootTools.sendShell("pm uninstall com.jijian.flowstat", 30000);
- //刪除下載的apk包 RootTools.sendShell("rm sdcard/flowstat.apk", 30000);
修改字體
- 把ttf文件刷進(jìn)img中
- Android系統(tǒng)默認(rèn)的中文字體為DroidSansFallBack.ttf
- 用你想使用的字體ttf文件替換掉這個(gè)文件即可
修改開(kāi)機(jī)動(dòng)畫(huà)
- 從真機(jī)中得到bootanimation.zip
- 把bootanimation.zip放入system/media目錄下
刪除鎖屏密碼
刪除data/system下的key文件
- 文本密碼為password.key
- 手勢(shì)密碼為gesture.key