fadedbee
fadedbee

Reputation: 44817

Where to find the source files for an Android package?

I'm looking for the (vendor provided) source files used to build /vendor/lib64/hw/audio.primary.imx8.so.

The build is working and audio.primary.imx8.so is generated.

I can see that the package is requested in 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

The android_build directory is AOSP with all the vendor patches applied.

find only finds outputs, not the source files, for this package:

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

What would the audio.primary.imx8 package directory be called and which locations are likely candidates?

Upvotes: 1

Views: 221

Answers (1)

fadedbee
fadedbee

Reputation: 44817

Found it:

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 \

It's a .bp file, not a .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",
    ],
}

Upvotes: 1

Related Questions