Android下的Linux指令集

Android目錄結構

  • data

    • app:用戶安裝的應用
    • data:應用的專屬文件夾
    • system:系統的配置信息,註冊表文件
    • anr:anr異常的記錄信息
  • dev:devices的縮寫

    • 存放設備所對應的文件
  • mnt:mount的縮寫

    • 掛載在系統上的設備:sdcard,u盤
  • proc:硬件配置,狀態信息

    • cpuinfo、meminfo
  • sbin:system bin

    • 系統重要的二進制執行文件
    • adbd:服務器的adb進程
  • system:

    • app:存放系統應用,默認不能刪除
    • bin:Android中可執行的linux指令文件
    • etc:host:主機名和ip地址的映射
    • fonts:Android中自帶的字體
    • framework:存放谷歌提供的java api
    • lib:核心功能的類庫,C/C++文件
    • media/audio:存放Android的音效文件
    • tts:語音發聲引擎,默認不支持中文
    • usr:用戶設備的配置信息,鍵盤編碼和按鍵編碼的映射
    • xbin:是專爲開發人員準備的二進制指令

Android下的Linux指令

  • su:superuser
    • 切換到超級用戶
  • rm:remove,刪除文件
    • rm 文件名
  • ls:列出目錄下的所有文件和文件夾
    • ls -l:查看文件的詳細信息
    • ls -a:查看隱藏文件
  • cd:切換到某個目錄
  • cat:查看文件內容
    • cat 文件名
    • 不要cat二進制可執行文件
  • mv:move 修改文件名
    • mv 原文件名 新文件名
  • mkdir:創建文件夾
    • mkdir 文件夾名字
  • rmdir:刪除文件夾
    • rmdir 文件夾名字
  • touch:創建新文件
    • touch 文件名
  • chmod:change mode,切換文件訪問權限
    • chmod 777 文件名
  • echo:回顯數據;重定向數據
    • echo 數據 > 文件名
  • sleep:睡眠幾秒
  • df:顯示指定目錄的容量
  • id:打印當前用戶的id
    • uid=0:root
    • uid=1000:system
    • uid=2000:shell
    • uid=10000+:一般應用程序的id
  • ps:列出系統中運行的所有進程
  • kill:殺死指定pid的進程
    • kill pid
  • chown:change owner,修改擁有者
    • chown 0.0 文件名
  • mount:掛載文件系統
    • mount -o remount rw /:掛載當前目錄爲可讀可寫權限
    • mount -o remount rw /system:重新掛載指定目錄

Android中特有的指令

  • am:ActivityManager,可以進行跟activity相關的操作

    • am start -n com.itheima.createfile/com.itheima.createfile.MainActivity:開啓指定Activity
    • am kill com.itheima.createfile:結束非前臺進程
    • am force-stop com.itheima.createfile:結束進程
  • pm:PackageManager

    • pm disable 包名:凍結指定應用
    • pm enable 包名:解凍指定應用
  • monkey -p com.itheima.createfile 1000:自動點擊指定應用1000次


刷模擬器,rom寫文件(su)

  • 如果想讓真實手機運行這些指令,手機必須要有root權限

  • 刷root原理:把su二進制文件拷貝到/system/bin或者/system/xbin

  • Android刷root軟件,工作的原理全部都是利用系統的漏洞實現

  • rom:可以理解爲android系統的安裝文件

  • 把su文件和superuser.apk寫入img文件

  • 執行su指令

      Runtime.getRuntime().exec("su");
    

小案例:凍結解凍應用

  • 凍結和解凍指定的應用
  •   RootTools.sendShell("pm disable " + package, 300000);
      RootTools.sendShell("pm enable " + package, 300000);
    

小案例:零權限讀取用戶隱私數據

  • 直接修改短信數據庫訪問權限

      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);
    

靜默安裝

  • 爲什麼有靜默安裝的需求

    1. 正規應用。電子市場,方便用戶靜默安裝
    2. 流氓軟件。後臺偷偷下載安裝。
  • 自動下載應用,然後靜默安裝

      //靜默安裝
      RootTools.sendShell("pm install sdcard/flowstat.apk", 30000);
      //打開
      RootTools.sendShell("am start -n com.jijian.flowstat/com.jijian.flowstat.TrafficWidgetSetting", 30000);
      //卸載應用
      RootTools.sendShell("pm uninstall com.jijian.flowstat", 30000);
      //刪除下載的apk包
      RootTools.sendShell("rm sdcard/flowstat.apk", 30000);
    

修改字體

  • 把ttf文件刷進img中
  • Android系統默認的中文字體爲DroidSansFallBack.ttf
  • 用你想使用的字體ttf文件替換掉這個文件即可

修改開機動畫

  • 從真機中得到bootanimation.zip
  • 把bootanimation.zip放入system/media目錄下

刪除鎖屏密碼

  • 刪除data/system下的key文件
    • 文本密碼爲password.key
    • 手勢密碼爲gesture.key
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章