在哪里可以找到 Android 包的源文件?

问题描述

我正在寻找用于构建 /vendor/lib64/hw/audio.primary.imx8.so 的(供应商提供的)源文件

构建正在运行,并生成audio.primary.imx8.so

我可以看到在 device/fsl/imx8m/ProductConfigCommon.mk 中请求包:

user@server:~/android/smarcimx8mq/q_1000_100/android_build$ grep audio.primary.imx8 -B3 -A9 device/fsl/imx8m/ProductConfigCommon.mk
# audio
PRODUCT_PACKAGES += \
    audio.a2dp.default \
    audio.primary.imx8 \
    audio.r_submix.default \
    audio.usb.default \
    libaudioutils \
    libsrec_jni \
    libtinyalsa \
    tinycap \
    tinymix \
    tinyplay

android_build 目录是应用了所有供应商补丁的 AOSP。

find 只找到这个包的输出,而不是源文件

user@server:~/android/smarcimx8mq/q_1000_100/android_build$ find . -name "*primary*imx8*"
./out/target/product/smarc_mx8mq/symbols/vendor/lib/hw/audio.primary.imx8.so
./out/target/product/smarc_mx8mq/symbols/vendor/lib64/hw/audio.primary.imx8.so
./out/target/product/smarc_mx8mq/vendor/lib/hw/audio.primary.imx8.so
./out/target/product/smarc_mx8mq/vendor/lib64/hw/audio.primary.imx8.so
./out/target/product/smarc_mx8mq/obj_arm/SHARED_LIBRARIES/audio.primary.imx8_intermediates
./out/target/product/smarc_mx8mq/obj_arm/SHARED_LIBRARIES/audio.primary.imx8_intermediates/audio.primary.imx8.so
./out/target/product/smarc_mx8mq/obj/SHARED_LIBRARIES/audio.primary.imx8_intermediates
./out/target/product/smarc_mx8mq/obj/SHARED_LIBRARIES/audio.primary.imx8_intermediates/audio.primary.imx8.so
./out/soong/.intermediates/vendor/nxp-opensource/imx/alsa/audio.primary.imx8
./out/soong/.intermediates/vendor/nxp-opensource/imx/alsa/audio.primary.imx8/android_arm_armv7-a-neon_cortex-a9_vendor_shared/audio.primary.imx8.so.d
./out/soong/.intermediates/vendor/nxp-opensource/imx/alsa/audio.primary.imx8/android_arm_armv7-a-neon_cortex-a9_vendor_shared/audio.primary.imx8.so
./out/soong/.intermediates/vendor/nxp-opensource/imx/alsa/audio.primary.imx8/android_arm_armv7-a-neon_cortex-a9_vendor_shared/unstripped/audio.primary.imx8.so
./out/soong/.intermediates/vendor/nxp-opensource/imx/alsa/audio.primary.imx8/android_arm64_armv8-a_cortex-a53_vendor_shared/audio.primary.imx8.so.d
./out/soong/.intermediates/vendor/nxp-opensource/imx/alsa/audio.primary.imx8/android_arm64_armv8-a_cortex-a53_vendor_shared/audio.primary.imx8.so
./out/soong/.intermediates/vendor/nxp-opensource/imx/alsa/audio.primary.imx8/android_arm64_armv8-a_cortex-a53_vendor_shared/unstripped/audio.primary.imx8.so

audio.primary.imx8 包目录将被称为什么以及哪些位置可能是候选位置?

解决方法

找到了:

user@server:~/android/smarcimx8mq/q_1000_100/android_build$ grep primary.imx8 -R system/ frameworks/ vendor/ device/ 2>/dev/null
vendor/nxp-opensource/imx/alsa/Android.bp:    name: "audio.primary.imx8",device/fsl/imx8m/ProductConfigCommon.mk:    audio.primary.imx8 \
device/fsl/imx8q/ProductConfigCommon.mk:    audio.primary.imx8 \

这是一个 .bp 文件,而不是一个 .mk

user@server:~/android/smarcimx8mq/q_1000_100/android_build$ grep audio_primary_defaults -B2 -A24 vendor/nxp-opensource/imx/alsa/Android.bp
// This is the Freescale ALSA module for i.MX.

audio_primary_defaults {
    name: "audio_primary_default",relative_install_path: "hw",srcs: [
        "tinyalsa_hal.c","control.c","pcm_ext.c",],vendor: true,include_dirs: [
        "external/tinyalsa/include","system/media/audio_utils/include","system/media/audio_effects/include","hardware/libhardware/include",shared_libs: [
        "liblog","libcutils","libtinyalsa","libaudioutils","libdl","libpower",}