下面模拟两种改动:
- 在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