对android源码进行修改并push到刷好的机器上
前言:不知道最近时间都干了什么,项目最近没什么进展。把源码修改和刷机部分总结一下。
对源码进行修改后要push链接库到手机上,这样就不用重新刷机。优雅许多。
首先是编译的时候,我们都是知道往往为了避免头文件重复引用我们会加上,这样子你怎么写不会重复定义声明。
#ifndef
#define _THIS_IS_HEAD_
...
#endif
但是当多个编译内核同时进行的时候,这样也是不行的。通常会定义一个.h
和一个.cpp
。
对于变量和函数的声明我们放在.h
里面
extern int a;
void fun();
对于变量的初始化和函数实现放在.cpp
里
int a=0;
void fun(){
...
}
这样就避免了重复声明。
接下来就是编译和push的过程。首先回到android文件夹下面,执行
. build/envsetup.sh
lunch aosp_sailfish-userdebug
mm
中间又出现了编译错误
Could not build FEC data! Error: terminating with uncaught exception of type std::bad_alloc: std::bad_alloc
杀死java进程重新mm
即可
pkill -9 java
mm
这样就把我们修改的子模块编译了。
接下来我们要确保我们的手机可以remount,这样adb才能进行push操作。
adb devices
adb root
adb disable-verity
adb reboot
adb root
adb remount
然后
cd out/target/product/sailfish/system/
adb push lib /system
就把整个lib
库push
到手机上面了.
我们之前打的一些ALOG
和标记好的LOG_TAG
就可以查看我们需要的信息了,接下来的工作就是根据这些信息分析系统并进行代码插桩了。