AOSP之修改framework

DroidMind發表於2019-03-30
framework的定製一般是為了滿足App層或者整個系統的某一種需求。

下面模擬兩種改動:

  • 在SystemServer.java中系統所有服務啟動之前,列印一句日誌,模擬系統行為的修改

1、使用下面命令進入SystemServer.java所在的目錄

godir SystemServer.java複製程式碼

2、在該目錄下開啟SystemService.java檔案

3、找到main方法

4、輸入下面程式碼並儲存

Slog.i("hpp", "this is hpp add log");複製程式碼

5、直接在該目錄下執行mm命令

6、通過Install關鍵字定位編譯輸出檔案的位置

Install: out/target/product/generic/system/framework/services.jar複製程式碼

7、將編譯的jar檔案push到系統中

adb push $(gettop)/out/target/product/generic/system/framework/services.jar /system/framework/複製程式碼

如果提示Read-only file system錯誤,需要先執行

adb remount複製程式碼

8、重啟系統

stop;start複製程式碼

9、過濾log

adb logcat -s 'hpp'複製程式碼
  • 2、在App層呼叫Log.wtf列印日誌,當日志TAG="hpp"的時候,在Framework層修改Log的輸出結果,模擬對App API的修改

1、進入AOSP/android6.0/frameworks/base/目錄,使用sublime開啟該目錄

subl .複製程式碼

2、查詢Log檔案

3、查詢wtf方法,加入如下程式碼,儲存檔案

if (tag.equals("hpp")) {
    msg = "msg is changed";
 }複製程式碼

4、編譯

mm複製程式碼

5、通過Install關鍵字定位編譯輸出檔案的位置

6、將編譯的jar檔案push到系統中

adb push $(gettop)/out/target/product/generic/system/framework/framework.jar /system/framework/複製程式碼

7、重啟系統

stop;start複製程式碼

8、過濾log

adb logcat -s 'hpp'複製程式碼

參考視訊:

https://www.365yg.com/i6436853139567018498/#mid=1565254704995330

https://www.365yg.com/i6436857505522909698/#mid=1565254704995330


相關文章