对android源码进行修改并push到刷好的机器上

对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

就把整个libpush到手机上面了.
我们之前打的一些ALOG和标记好的LOG_TAG就可以查看我们需要的信息了,接下来的工作就是根据这些信息分析系统并进行代码插桩了。

posted @ 2019-05-13 21:21  zhangxianlong  阅读(935)  评论(0编辑  收藏  举报