0. 需求
至少32G内存,ubuntu 22.04,200G磁盘空间
1.下载AOSP源码
|
|
2.修改soong文件并编译
代码同步完之后应该会捡出来,编辑Android.bp文件
cd packages/modules/adb
nano Android.bp
编辑如下:
|
|
主要是加上这几个参数 cflags: ["-g","-gcodeview",""-O0""], ldflags: ["-municode","-Wl,--pdb="],取消优化,产生pdb文件。
参数详见:
https://github.com/mstorsjo/llvm-mingw/blob/master/README.md#pdb-support 之后编译即可出现下列报错,没关系,因为symbol被弄到pdb里去了,报错正常。
FAILED: out/soong/.intermediates/packages/modules/adb/adb/windows_x86/adb.exe out/host/linux-x86/bin/symbol_inject -i out/soong/.intermediates/packages/modules/adb/adb/windows_x86/unversioned/adb.exe -o out/soong/.intermediates/packages/modules/adb/adb/windows_x86/adb.exe -s soong_build_number -from ‘SOONG BUILD NUMBER PLACEHOLDER’ -v $(cat out/soong/build_number.txt) symbol not found
如果还需要调试adb里面涉及到的一些静态库里的代码,如以下这些库:
则需要去库所在文件夹的android.bp里面添加这几行,确保编译的时候带调试信息,如libbase库的代码在system/libbase目录下(可以用cvdump 查询,也可以在aosp/out/soong/build.ninja里面搜索。):
|
|
我们可以在aosp/out/soong/.intermediates/packages/modules/adb/adb/windows_x86/unversioned找到adb.exe和adb.pdb,之后就可以在windbg里面源码调试了。

说些什么吧!