下面模擬兩種改動:
- 在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