如何通过命令行列出AOSP所有可用包/模块并定位其定义路径?
AOSP模块相关问题解决方法
1. 列出所有可用包/模块
完成source build/envsetup.sh和lunch环境配置后,执行以下命令即可列出所有由Android.bp和Android.mk定义的模块:
make modules
如果输出过于冗长,可通过过滤只提取模块名称:
make modules | grep -E "^[a-zA-Z0-9_.-]+:"
若需要结构化的输出结果(需提前安装jq工具),可使用Soong工具:
build/soong/soong_ui.bash --dump-module-info --json | jq '.[].name'
2. 根据模块名查找定义文件路径
全局搜索法
在AOSP根目录下直接搜索包含目标模块名的构建定义文件:
find $(gettop) -name "Android.mk" -o -name "Android.bp" | xargs grep -l "你的模块名"
Soong精准定位法
借助Soong工具导出的模块信息,直接获取模块的定义路径:
build/soong/soong_ui.bash --dump-module-info --json | jq '.[] | select(.name=="你的模块名") | .path'
构建命令反推法
执行模块的模拟构建命令,从输出中查看模块定义文件所在目录:
make 你的模块名 -n
内容的提问来源于stack exchange,提问作者code
相关产品推荐
相关产品推荐

