1.使用mmm 到Framework/base/core,编译会出现错误,Ubuntu的java 为1.8 ,Android 编译环境为11,可以通过升级Ubuntu的java版本解决,还有一种,使用Android12 编译的新特性,使用
(make framework-minus-apex)
2.编译完成后,在/out/target/product/xxxxx/system/framework下找到 framework.jar
3.重新挂载系统文件
adb root
adb remount
4.adb push framework.jar /system/framework/ 后一直报错,Native registration unable to find class ‘com/android/internal/os/RuntimeInit,一直卡在开机动画,最后删除这个目录下面的oat,arm,arm64三个目录,adb reboot重启,这样新替换的framework.jar就生效了。(其实如果把oat,arm,arm64这三个目录同步一下,可能也是可以的,这种目前没有验证过)
5.单编services使用make services,然后
adb push services.jar /system/framework/
adb push services.jar.prof /system/framework/
adb push services.jar.bprof /system/framework/
6.补充一些adb 命令:
adb shell dumpsys window w |findstr \/ |findstr name=
获取前台运行的APP包名和类名
adb shell "dumpsys activity | grep -i run"
获取前台运行的APP包名和类名
adb shell wm density
查看设备density
adb shell pm list packages
查询本机所有软件包
adb shell pm list packages -f
输出和安装包相关联的文件
adb shell am start -n com.android.settings(包名)/com.android.settings.Settings(启动MainActivity)
通过adb打开应用
adb shell getprop ro.product.cpu.abi
查看设备cpu类型