diff --git a/Android.bp b/Android.bp index 12a1b86..860a51f 100644 --- a/Android.bp +++ b/Android.bp @@ -6180,6 +6180,489 @@ cc_prebuilt_library_shared { system_ext_specific: true, } +cc_prebuilt_library_shared { + name: "com.qualcomm.qti.wifidisplayhal@1.0", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/com.qualcomm.qti.wifidisplayhal@1.0.so"], + shared_libs: ["libhidlbase", "liblog", "libutils", "libcutils", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/com.qualcomm.qti.wifidisplayhal@1.0.so"], + shared_libs: ["libhidlbase", "liblog", "libutils", "libcutils", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libmmosal", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libmmosal.so"], + shared_libs: ["libutils", "libcutils", "liblog", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libmmosal.so"], + shared_libs: ["libutils", "libcutils", "liblog", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libmmparser_lite", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libmmparser_lite.so"], + shared_libs: ["libutils", "libcutils", "liblog", "libmmosal", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libmmparser_lite.so"], + shared_libs: ["libutils", "libcutils", "liblog", "libmmosal", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libmmrtpdecoder", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libmmrtpdecoder.so"], + shared_libs: ["libutils", "liblog", "libcutils", "libmmosal", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libmmrtpdecoder.so"], + shared_libs: ["libutils", "liblog", "libcutils", "libmmosal", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libmmrtpencoder", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libmmrtpencoder.so"], + shared_libs: ["libmmosal", "liblog", "libutils", "libcutils", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libmmrtpencoder.so"], + shared_libs: ["libmmosal", "liblog", "libutils", "libcutils", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libwfdavenhancements", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libwfdavenhancements.so"], + shared_libs: ["liblog", "libbinder", "libutils", "libgui", "libui", "libstagefright_foundation", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libwfdavenhancements.so"], + shared_libs: ["liblog", "libbinder", "libutils", "libgui", "libui", "libstagefright_foundation", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libwfdclient", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libwfdclient.so"], + shared_libs: ["liblog", "libutils", "libcutils", "libbinder", "libgui", "libmmosal", "libinput", "libwfdsinksm", "libwfdcommonutils", "libwfdconfigutils", "libwfdmminterface", "libnativewindow", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libwfdclient.so"], + shared_libs: ["liblog", "libutils", "libcutils", "libbinder", "libgui", "libmmosal", "libinput", "libwfdsinksm", "libwfdcommonutils", "libwfdconfigutils", "libwfdmminterface", "libnativewindow", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libwfdcommonutils", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libwfdcommonutils.so"], + shared_libs: ["libmmosal", "liblog", "libutils", "libcutils", "libbinder", "libnl", "libwfdmminterface", "libwfdconfigutils", "libui", "libgui", "libwfddisplayconfig", "libion", "libprocessgroup", "libdng_sdk", "libjpeg", "libpiex", "libpng", "libheif", "libnativewindow", "libEGL", "libGLESv2", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libwfdcommonutils.so"], + shared_libs: ["libmmosal", "liblog", "libutils", "libcutils", "libbinder", "libnl", "libwfdmminterface", "libwfdconfigutils", "libui", "libgui", "libwfddisplayconfig", "libion", "libprocessgroup", "libdng_sdk", "libjpeg", "libpiex", "libpng", "libheif", "libnativewindow", "libEGL", "libGLESv2", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libwfdconfigutils", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libwfdconfigutils.so"], + shared_libs: ["libmmosal", "liblog", "libutils", "libcutils", "libbinder", "libnl", "libwfdmminterface", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libwfdconfigutils.so"], + shared_libs: ["libmmosal", "liblog", "libutils", "libcutils", "libbinder", "libnl", "libwfdmminterface", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libwfddisplayconfig", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libwfddisplayconfig.so"], + shared_libs: ["libhidlbase", "libutils", "libcutils", "liblog", "vendor.display.config@2.0", "libdisplayconfig.system.qti", "libbinder_ndk", "vendor.qti.hardware.display.config-V5-ndk", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libwfddisplayconfig.so"], + shared_libs: ["libhidlbase", "libutils", "libcutils", "liblog", "vendor.display.config@2.0", "libdisplayconfig.system.qti", "libbinder_ndk", "vendor.qti.hardware.display.config-V5-ndk", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libwfdmminterface", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libwfdmminterface.so"], + shared_libs: ["libmmosal", "liblog", "libutils", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libwfdmminterface.so"], + shared_libs: ["libmmosal", "liblog", "libutils", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libwfdmmsink", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libwfdmmsink.so"], + shared_libs: ["libmmosal", "liblog", "libutils", "libmedia", "libaudioclient", "libgui", "libbinder", "libwfdcommonutils", "libwfdconfigutils", "libui", "libmmparser_lite", "libmmrtpdecoder", "libcutils", "libwfddisplayconfig", "libhwui", "libwfdmminterface", "libhidlbase", "libhidlmemory", "android.hidl.allocator@1.0", "android.hidl.memory@1.0", "libandroid", "libmediandk", "libaaudio", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libwfdmmsink.so"], + shared_libs: ["libmmosal", "liblog", "libutils", "libmedia", "libaudioclient", "libgui", "libbinder", "libwfdcommonutils", "libwfdconfigutils", "libui", "libmmparser_lite", "libmmrtpdecoder", "libcutils", "libwfddisplayconfig", "libhwui", "libwfdmminterface", "libhidlbase", "libhidlmemory", "android.hidl.allocator@1.0", "android.hidl.memory@1.0", "libandroid", "libmediandk", "libaaudio", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libwfdmmsrc_system", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libwfdmmsrc_system.so"], + shared_libs: ["libbinder", "libmmosal", "liblog", "libutils", "libcutils", "libgui", "libui", "libwfdcommonutils", "libwfdconfigutils", "libinput", "libwfdmminterface", "libwfddisplayconfig", "libmedia_helper", "libaudioclient", "libwfdavenhancements", "libhidlbase", "libgralloctypes", "android.hardware.graphics.mapper@4.0", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libwfdmmsrc_system.so"], + shared_libs: ["libbinder", "libmmosal", "liblog", "libutils", "libcutils", "libgui", "libui", "libwfdcommonutils", "libwfdconfigutils", "libinput", "libwfdmminterface", "libwfddisplayconfig", "libmedia_helper", "libaudioclient", "libwfdavenhancements", "libhidlbase", "libgralloctypes", "android.hardware.graphics.mapper@4.0", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libwfdnative", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libwfdnative.so"], + shared_libs: ["libandroid_runtime", "libui", "libinput", "libbinder", "libgui", "libnativehelper", "libutils", "liblog", "libwfdclient", "libhidlbase", "libhidlmemory", "android.hidl.base@1.0", "android.hidl.token@1.0-utils", "android.hardware.graphics.common@1.0", "android.hardware.graphics.bufferqueue@1.0", "android.hardware.graphics.bufferqueue@2.0", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libwfdnative.so"], + shared_libs: ["libandroid_runtime", "libui", "libinput", "libbinder", "libgui", "libnativehelper", "libutils", "liblog", "libwfdclient", "libhidlbase", "libhidlmemory", "android.hidl.base@1.0", "android.hidl.token@1.0-utils", "android.hardware.graphics.common@1.0", "android.hardware.graphics.bufferqueue@1.0", "android.hardware.graphics.bufferqueue@2.0", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libwfdrtsp", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libwfdrtsp.so"], + shared_libs: ["libc++", "libcutils", "libutils", "libmmosal", "libwfdcommonutils", "libwfdconfigutils", "liblog", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libwfdrtsp.so"], + shared_libs: ["libc++", "libcutils", "libutils", "libmmosal", "libwfdcommonutils", "libwfdconfigutils", "liblog", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libwfdservice", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libwfdservice.so"], + shared_libs: ["liblog", "libutils", "libcutils", "libbinder", "libgui", "libwfdsinksm", "libmmosal", "libwfdcommonutils", "libwfdconfigutils", "libinput", "libwfdmminterface", "libmedia_helper", "libaudioclient", "libaudiofoundation", "audioclient-types-aidl-cpp", "android.media.audio.common.types-V3-cpp", "libwfdmmsrc_system", "libwfdavenhancements", "libhidlbase", "vendor.qti.hardware.wifidisplaysession@1.0", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libwfdservice.so"], + shared_libs: ["liblog", "libutils", "libcutils", "libbinder", "libgui", "libwfdsinksm", "libmmosal", "libwfdcommonutils", "libwfdconfigutils", "libinput", "libwfdmminterface", "libmedia_helper", "libaudioclient", "libaudiofoundation", "audioclient-types-aidl-cpp", "android.media.audio.common.types-V3-cpp", "libwfdmmsrc_system", "libwfdavenhancements", "libhidlbase", "vendor.qti.hardware.wifidisplaysession@1.0", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libwfdsinksm", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libwfdsinksm.so"], + shared_libs: ["libc++", "libcutils", "libutils", "libwfdrtsp", "libwfduibcinterface", "libwfdmmsink", "libmmosal", "libmedia", "libwfdcommonutils", "libwfdconfigutils", "libwfdmminterface", "libmmrtpencoder", "libmmrtpdecoder", "libhidlbase", "libnativewindow", "libmediandk", "liblog", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libwfdsinksm.so"], + shared_libs: ["libc++", "libcutils", "libutils", "libwfdrtsp", "libwfduibcinterface", "libwfdmmsink", "libmmosal", "libmedia", "libwfdcommonutils", "libwfdconfigutils", "libwfdmminterface", "libmmrtpencoder", "libmmrtpdecoder", "libhidlbase", "libnativewindow", "libmediandk", "liblog", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libwfduibcinterface", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libwfduibcinterface.so"], + shared_libs: ["libmmosal", "liblog", "libutils", "libcutils", "libwfduibcsrcinterface", "libwfduibcsinkinterface", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libwfduibcinterface.so"], + shared_libs: ["libmmosal", "liblog", "libutils", "libcutils", "libwfduibcsrcinterface", "libwfduibcsinkinterface", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libwfduibcsink", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libwfduibcsink.so"], + shared_libs: ["libmmosal", "libutils", "liblog", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libwfduibcsink.so"], + shared_libs: ["libmmosal", "libutils", "liblog", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libwfduibcsinkinterface", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libwfduibcsinkinterface.so"], + shared_libs: ["libmmosal", "liblog", "libutils", "libcutils", "libwfduibcsink", "libwfdcommonutils", "libwfdconfigutils", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libwfduibcsinkinterface.so"], + shared_libs: ["libmmosal", "liblog", "libutils", "libcutils", "libwfduibcsink", "libwfdcommonutils", "libwfdconfigutils", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libwfduibcsrc", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libwfduibcsrc.so"], + shared_libs: ["libmmosal", "libwfdcommonutils", "liblog", "libutils", "libcutils", "libwfdconfigutils", "libwfddisplayconfig", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libwfduibcsrc.so"], + shared_libs: ["libmmosal", "libwfdcommonutils", "liblog", "libutils", "libcutils", "libwfdconfigutils", "libwfddisplayconfig", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "libwfduibcsrcinterface", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/libwfduibcsrcinterface.so"], + shared_libs: ["libmmosal", "liblog", "libutils", "libcutils", "libwfduibcsrc", "libwfdcommonutils", "libwfdconfigutils", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/libwfduibcsrcinterface.so"], + shared_libs: ["libmmosal", "liblog", "libutils", "libcutils", "libwfduibcsrc", "libwfdcommonutils", "libwfdconfigutils", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + +cc_prebuilt_library_shared { + name: "vendor.qti.hardware.wifidisplaysession@1.0", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: ["proprietary/system_ext/lib/vendor.qti.hardware.wifidisplaysession@1.0.so"], + shared_libs: ["libhidlbase", "liblog", "libutils", "libcutils", "libc++", "libc", "libm", "libdl", ], + }, + android_arm64: { + srcs: ["proprietary/system_ext/lib64/vendor.qti.hardware.wifidisplaysession@1.0.so"], + shared_libs: ["libhidlbase", "liblog", "libutils", "libcutils", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "both", + prefer: true, + system_ext_specific: true, +} + cc_prebuilt_library_shared { name: "com.qualcomm.qti.dpm.api@1.0", owner: "xiaomi", @@ -6197,23 +6680,6 @@ cc_prebuilt_library_shared { system_ext_specific: true, } -cc_prebuilt_library_shared { - name: "com.qualcomm.qti.wifidisplayhal@1.0", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/com.qualcomm.qti.wifidisplayhal@1.0.so"], - shared_libs: ["libhidlbase", "liblog", "libutils", "libcutils", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - cc_prebuilt_library_shared { name: "lib-imsvideocodec", owner: "xiaomi", @@ -6401,363 +6867,6 @@ cc_prebuilt_library_shared { system_ext_specific: true, } -cc_prebuilt_library_shared { - name: "libmmosal", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libmmosal.so"], - shared_libs: ["libutils", "libcutils", "liblog", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - -cc_prebuilt_library_shared { - name: "libmmparser_lite", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libmmparser_lite.so"], - shared_libs: ["libutils", "libcutils", "liblog", "libmmosal", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - -cc_prebuilt_library_shared { - name: "libmmrtpdecoder", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libmmrtpdecoder.so"], - shared_libs: ["libutils", "liblog", "libcutils", "libmmosal", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - -cc_prebuilt_library_shared { - name: "libmmrtpencoder", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libmmrtpencoder.so"], - shared_libs: ["libmmosal", "liblog", "libutils", "libcutils", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - -cc_prebuilt_library_shared { - name: "libwfdavenhancements", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libwfdavenhancements.so"], - shared_libs: ["liblog", "libbinder", "libutils", "libgui", "libui", "libstagefright_foundation", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - -cc_prebuilt_library_shared { - name: "libwfdclient", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libwfdclient.so"], - shared_libs: ["liblog", "libutils", "libcutils", "libbinder", "libgui", "libmmosal", "libinput", "libwfdsinksm", "libwfdcommonutils", "libwfdconfigutils", "libwfdmminterface", "libnativewindow", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - -cc_prebuilt_library_shared { - name: "libwfdcommonutils", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libwfdcommonutils.so"], - shared_libs: ["libmmosal", "liblog", "libutils", "libcutils", "libbinder", "libnl", "libwfdmminterface", "libwfdconfigutils", "libui", "libgui", "libwfddisplayconfig", "libion", "libprocessgroup", "libdng_sdk", "libjpeg", "libpiex", "libpng", "libheif", "libnativewindow", "libEGL", "libGLESv2", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - -cc_prebuilt_library_shared { - name: "libwfdconfigutils", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libwfdconfigutils.so"], - shared_libs: ["libmmosal", "liblog", "libutils", "libcutils", "libbinder", "libnl", "libwfdmminterface", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - -cc_prebuilt_library_shared { - name: "libwfddisplayconfig", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libwfddisplayconfig.so"], - shared_libs: ["libhidlbase", "libutils", "libcutils", "liblog", "vendor.display.config@2.0", "libdisplayconfig.system.qti", "libbinder_ndk", "vendor.qti.hardware.display.config-V5-ndk", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - -cc_prebuilt_library_shared { - name: "libwfdmminterface", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libwfdmminterface.so"], - shared_libs: ["libmmosal", "liblog", "libutils", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - -cc_prebuilt_library_shared { - name: "libwfdmmsink", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libwfdmmsink.so"], - shared_libs: ["libmmosal", "liblog", "libutils", "libmedia", "libaudioclient", "libgui", "libbinder", "libwfdcommonutils", "libwfdconfigutils", "libui", "libmmparser_lite", "libmmrtpdecoder", "libcutils", "libwfddisplayconfig", "libhwui", "libwfdmminterface", "libhidlbase", "libhidlmemory", "android.hidl.allocator@1.0", "android.hidl.memory@1.0", "libandroid", "libmediandk", "libaaudio", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - -cc_prebuilt_library_shared { - name: "libwfdmmsrc_system", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libwfdmmsrc_system.so"], - shared_libs: ["libbinder", "libmmosal", "liblog", "libutils", "libcutils", "libgui", "libui", "libwfdcommonutils", "libwfdconfigutils", "libinput", "libwfdmminterface", "libwfddisplayconfig", "libmedia_helper", "libaudioclient", "libwfdavenhancements", "libhidlbase", "libgralloctypes", "android.hardware.graphics.mapper@4.0", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - -cc_prebuilt_library_shared { - name: "libwfdnative", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libwfdnative.so"], - shared_libs: ["libandroid_runtime", "libui", "libinput", "libbinder", "libgui", "libnativehelper", "libutils", "liblog", "libwfdclient", "libhidlbase", "libhidlmemory", "android.hidl.base@1.0", "android.hidl.token@1.0-utils", "android.hardware.graphics.common@1.0", "android.hardware.graphics.bufferqueue@1.0", "android.hardware.graphics.bufferqueue@2.0", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - -cc_prebuilt_library_shared { - name: "libwfdrtsp", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libwfdrtsp.so"], - shared_libs: ["libc++", "libcutils", "libutils", "libmmosal", "libwfdcommonutils", "libwfdconfigutils", "liblog", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - -cc_prebuilt_library_shared { - name: "libwfdservice", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libwfdservice.so"], - shared_libs: ["liblog", "libutils", "libcutils", "libbinder", "libgui", "libwfdsinksm", "libmmosal", "libwfdcommonutils", "libwfdconfigutils", "libinput", "libwfdmminterface", "libmedia_helper", "libaudioclient", "libaudiofoundation", "audioclient-types-aidl-cpp", "android.media.audio.common.types-V3-cpp", "libwfdmmsrc_system", "libwfdavenhancements", "libhidlbase", "vendor.qti.hardware.wifidisplaysession@1.0", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - -cc_prebuilt_library_shared { - name: "libwfdsinksm", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libwfdsinksm.so"], - shared_libs: ["libc++", "libcutils", "libutils", "libwfdrtsp", "libwfduibcinterface", "libwfdmmsink", "libmmosal", "libmedia", "libwfdcommonutils", "libwfdconfigutils", "libwfdmminterface", "libmmrtpencoder", "libmmrtpdecoder", "libhidlbase", "libnativewindow", "libmediandk", "liblog", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - -cc_prebuilt_library_shared { - name: "libwfduibcinterface", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libwfduibcinterface.so"], - shared_libs: ["libmmosal", "liblog", "libutils", "libcutils", "libwfduibcsrcinterface", "libwfduibcsinkinterface", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - -cc_prebuilt_library_shared { - name: "libwfduibcsink", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libwfduibcsink.so"], - shared_libs: ["libmmosal", "libutils", "liblog", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - -cc_prebuilt_library_shared { - name: "libwfduibcsinkinterface", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libwfduibcsinkinterface.so"], - shared_libs: ["libmmosal", "liblog", "libutils", "libcutils", "libwfduibcsink", "libwfdcommonutils", "libwfdconfigutils", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - -cc_prebuilt_library_shared { - name: "libwfduibcsrc", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libwfduibcsrc.so"], - shared_libs: ["libmmosal", "libwfdcommonutils", "liblog", "libutils", "libcutils", "libwfdconfigutils", "libwfddisplayconfig", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - -cc_prebuilt_library_shared { - name: "libwfduibcsrcinterface", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/libwfduibcsrcinterface.so"], - shared_libs: ["libmmosal", "liblog", "libutils", "libcutils", "libwfduibcsrc", "libwfdcommonutils", "libwfdconfigutils", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - cc_prebuilt_library_shared { name: "vendor.qti.diaghal@1.0", owner: "xiaomi", @@ -6775,23 +6884,6 @@ cc_prebuilt_library_shared { system_ext_specific: true, } -cc_prebuilt_library_shared { - name: "vendor.qti.hardware.wifidisplaysession@1.0", - owner: "xiaomi", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: ["proprietary/system_ext/lib64/vendor.qti.hardware.wifidisplaysession@1.0.so"], - shared_libs: ["libhidlbase", "liblog", "libutils", "libcutils", "libc++", "libc", "libm", "libdl", ], - }, - }, - compile_multilib: "64", - prefer: true, - system_ext_specific: true, -} - cc_prebuilt_library_shared { name: "vendor.qti.imsrtpservice@3.0", owner: "xiaomi", @@ -8123,6 +8215,23 @@ cc_prebuilt_binary { system_ext_specific: true, } +cc_prebuilt_binary { + name: "wfdservice", + owner: "xiaomi", + target: { + android_arm: { + srcs: ["proprietary/system_ext/bin/wfdservice"], + shared_libs: ["liblog", "libutils", "libcutils", "libbinder", "libwfdservice", "libmmosal", "libwfdcommonutils", "libwfdconfigutils", "libhidlbase", "libavservices_minijail", "libc++", "libc", "libm", "libdl", ], + }, + }, + compile_multilib: "32", + strip: { + none: true, + }, + prefer: true, + system_ext_specific: true, +} + cc_prebuilt_binary { name: "wfdservice64", owner: "xiaomi", diff --git a/proprietary/system_ext/bin/wfdservice b/proprietary/system_ext/bin/wfdservice new file mode 100755 index 0000000..aa51c2c Binary files /dev/null and b/proprietary/system_ext/bin/wfdservice differ diff --git a/proprietary/system_ext/bin/wfdservice64 b/proprietary/system_ext/bin/wfdservice64 old mode 100644 new mode 100755 diff --git a/proprietary/system_ext/etc/seccomp_policy/wfdservice.policy b/proprietary/system_ext/etc/seccomp_policy/wfdservice.policy new file mode 100644 index 0000000..bf6e0e1 --- /dev/null +++ b/proprietary/system_ext/etc/seccomp_policy/wfdservice.policy @@ -0,0 +1,79 @@ +# Copyright (c) 2020-2021 Qualcomm Technologies, Inc. +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc +# +# Not a contribution. +# +# Copyright (C) 2019 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +mmap2: arg2 in ~PROT_EXEC || arg2 in ~PROT_WRITE +mprotect: arg2 in ~PROT_EXEC || arg2 in ~PROT_WRITE +munmap: 1 +futex: 1 +#prctl: arg0 == PR_SET_VMA || arg0 == PR_GET_DUMPABLE +prctl: 1 +#ioctl: arg1 == BINDER_VERSION || arg1 == BINDER_WRITE_READ || arg1 == BINDER_SET_MAX_THREADS +ioctl: 1 +close: 1 +openat: 1 +mremap: 1 +fstat64: 1 +readlinkat: 1 +pread64: 1 +fstatfs64: 1 +clock_gettime: 1 +fstatat64: 1 +read: 1 +write: 1 +fcntl64: 1 +ppoll: 1 +faccessat: 1 +rt_sigaction: 1 +getuid32: 1 +madvise: 1 +rt_sigprocmask: 1 +writev: 1 +personality: 1 +getrandom: 1 +gettimeofday: 1 +#set_tls: 1 +statfs64: 1 +ugetrlimit: 1 +execve: 1 +connect: 1 +socket: arg0 == AF_UNIX +getpid: 1 +gettid: 1 +nanosleep: 1 +restart_syscall: 1 +set_tid_address: 1 +open: 1 +exit: 1 +sched_getscheduler: 1 +exit_group: 1 +sigaltstack: 1 +clone: 1 +rt_sigreturn: 1 +setpriority: 1 +getpriority: 1 +timer_create: 1 +timer_delete: 1 +timer_settime: 1 +rt_sigtimedwait: 1 +getdents64: 1 +dup: 1 +lseek: 1 +tgkill: 1 +process_vm_readv: 1 \ No newline at end of file diff --git a/proprietary/system_ext/lib/com.qualcomm.qti.wifidisplayhal@1.0.so b/proprietary/system_ext/lib/com.qualcomm.qti.wifidisplayhal@1.0.so new file mode 100644 index 0000000..02b738d Binary files /dev/null and b/proprietary/system_ext/lib/com.qualcomm.qti.wifidisplayhal@1.0.so differ diff --git a/proprietary/system_ext/lib/libmmosal.so b/proprietary/system_ext/lib/libmmosal.so new file mode 100644 index 0000000..8ffc4f4 Binary files /dev/null and b/proprietary/system_ext/lib/libmmosal.so differ diff --git a/proprietary/system_ext/lib/libmmparser_lite.so b/proprietary/system_ext/lib/libmmparser_lite.so new file mode 100644 index 0000000..8cad312 Binary files /dev/null and b/proprietary/system_ext/lib/libmmparser_lite.so differ diff --git a/proprietary/system_ext/lib/libmmrtpdecoder.so b/proprietary/system_ext/lib/libmmrtpdecoder.so new file mode 100644 index 0000000..0d57c56 Binary files /dev/null and b/proprietary/system_ext/lib/libmmrtpdecoder.so differ diff --git a/proprietary/system_ext/lib/libmmrtpencoder.so b/proprietary/system_ext/lib/libmmrtpencoder.so new file mode 100644 index 0000000..bcd55db Binary files /dev/null and b/proprietary/system_ext/lib/libmmrtpencoder.so differ diff --git a/proprietary/system_ext/lib/libwfdavenhancements.so b/proprietary/system_ext/lib/libwfdavenhancements.so new file mode 100644 index 0000000..8a9ed64 Binary files /dev/null and b/proprietary/system_ext/lib/libwfdavenhancements.so differ diff --git a/proprietary/system_ext/lib/libwfdclient.so b/proprietary/system_ext/lib/libwfdclient.so new file mode 100644 index 0000000..ebc8e02 Binary files /dev/null and b/proprietary/system_ext/lib/libwfdclient.so differ diff --git a/proprietary/system_ext/lib/libwfdcommonutils.so b/proprietary/system_ext/lib/libwfdcommonutils.so new file mode 100644 index 0000000..3cd5b1e Binary files /dev/null and b/proprietary/system_ext/lib/libwfdcommonutils.so differ diff --git a/proprietary/system_ext/lib/libwfdconfigutils.so b/proprietary/system_ext/lib/libwfdconfigutils.so new file mode 100644 index 0000000..f413edd Binary files /dev/null and b/proprietary/system_ext/lib/libwfdconfigutils.so differ diff --git a/proprietary/system_ext/lib/libwfddisplayconfig.so b/proprietary/system_ext/lib/libwfddisplayconfig.so new file mode 100644 index 0000000..dc7c331 Binary files /dev/null and b/proprietary/system_ext/lib/libwfddisplayconfig.so differ diff --git a/proprietary/system_ext/lib/libwfdmminterface.so b/proprietary/system_ext/lib/libwfdmminterface.so new file mode 100644 index 0000000..475e489 Binary files /dev/null and b/proprietary/system_ext/lib/libwfdmminterface.so differ diff --git a/proprietary/system_ext/lib/libwfdmmsink.so b/proprietary/system_ext/lib/libwfdmmsink.so new file mode 100644 index 0000000..bb69045 Binary files /dev/null and b/proprietary/system_ext/lib/libwfdmmsink.so differ diff --git a/proprietary/system_ext/lib/libwfdmmsrc_system.so b/proprietary/system_ext/lib/libwfdmmsrc_system.so new file mode 100644 index 0000000..528ffbe Binary files /dev/null and b/proprietary/system_ext/lib/libwfdmmsrc_system.so differ diff --git a/proprietary/system_ext/lib/libwfdnative.so b/proprietary/system_ext/lib/libwfdnative.so new file mode 100644 index 0000000..0f7cfa8 Binary files /dev/null and b/proprietary/system_ext/lib/libwfdnative.so differ diff --git a/proprietary/system_ext/lib/libwfdrtsp.so b/proprietary/system_ext/lib/libwfdrtsp.so new file mode 100644 index 0000000..a32e064 Binary files /dev/null and b/proprietary/system_ext/lib/libwfdrtsp.so differ diff --git a/proprietary/system_ext/lib/libwfdservice.so b/proprietary/system_ext/lib/libwfdservice.so new file mode 100644 index 0000000..367aed1 Binary files /dev/null and b/proprietary/system_ext/lib/libwfdservice.so differ diff --git a/proprietary/system_ext/lib/libwfdsinksm.so b/proprietary/system_ext/lib/libwfdsinksm.so new file mode 100644 index 0000000..af3daca Binary files /dev/null and b/proprietary/system_ext/lib/libwfdsinksm.so differ diff --git a/proprietary/system_ext/lib/libwfduibcinterface.so b/proprietary/system_ext/lib/libwfduibcinterface.so new file mode 100644 index 0000000..8bedfa7 Binary files /dev/null and b/proprietary/system_ext/lib/libwfduibcinterface.so differ diff --git a/proprietary/system_ext/lib/libwfduibcsink.so b/proprietary/system_ext/lib/libwfduibcsink.so new file mode 100644 index 0000000..f80dc8f Binary files /dev/null and b/proprietary/system_ext/lib/libwfduibcsink.so differ diff --git a/proprietary/system_ext/lib/libwfduibcsinkinterface.so b/proprietary/system_ext/lib/libwfduibcsinkinterface.so new file mode 100644 index 0000000..b59f899 Binary files /dev/null and b/proprietary/system_ext/lib/libwfduibcsinkinterface.so differ diff --git a/proprietary/system_ext/lib/libwfduibcsrc.so b/proprietary/system_ext/lib/libwfduibcsrc.so new file mode 100644 index 0000000..7d1a1cb Binary files /dev/null and b/proprietary/system_ext/lib/libwfduibcsrc.so differ diff --git a/proprietary/system_ext/lib/libwfduibcsrcinterface.so b/proprietary/system_ext/lib/libwfduibcsrcinterface.so new file mode 100644 index 0000000..ce4fdaf Binary files /dev/null and b/proprietary/system_ext/lib/libwfduibcsrcinterface.so differ diff --git a/proprietary/system_ext/lib/vendor.qti.hardware.wifidisplaysession@1.0.so b/proprietary/system_ext/lib/vendor.qti.hardware.wifidisplaysession@1.0.so new file mode 100644 index 0000000..66768d0 Binary files /dev/null and b/proprietary/system_ext/lib/vendor.qti.hardware.wifidisplaysession@1.0.so differ diff --git a/sm8150-common-vendor.mk b/sm8150-common-vendor.mk index 768e700..05b9533 100644 --- a/sm8150-common-vendor.mk +++ b/sm8150-common-vendor.mk @@ -31,6 +31,7 @@ PRODUCT_COPY_FILES += \ vendor/xiaomi/sm8150-common/proprietary/system_ext/etc/permissions/qti_permissions.xml:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/permissions/qti_permissions.xml \ vendor/xiaomi/sm8150-common/proprietary/system_ext/etc/permissions/telephony_system-ext_privapp-permissions-qti.xml:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/permissions/telephony_system-ext_privapp-permissions-qti.xml \ vendor/xiaomi/sm8150-common/proprietary/system_ext/etc/permissions/wfd-system-ext-privapp-permissions-qti.xml:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/permissions/wfd-system-ext-privapp-permissions-qti.xml \ + vendor/xiaomi/sm8150-common/proprietary/system_ext/etc/seccomp_policy/wfdservice.policy:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/seccomp_policy/wfdservice.policy \ vendor/xiaomi/sm8150-common/proprietary/system_ext/etc/seccomp_policy/wfdservice64.policy:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/seccomp_policy/wfdservice64.policy \ vendor/xiaomi/sm8150-common/proprietary/system_ext/etc/wfdconfigsink.xml:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/wfdconfigsink.xml \ vendor/xiaomi/sm8150-common/proprietary/vendor/etc/apdr.conf:$(TARGET_COPY_OUT_VENDOR)/etc/apdr.conf \ @@ -494,19 +495,7 @@ PRODUCT_PACKAGES += \ capi_v2_aptX_Classic \ capi_v2_aptX_HD \ com.qualcomm.qti.ant@1.0 \ - com.qualcomm.qti.dpm.api@1.0 \ com.qualcomm.qti.wifidisplayhal@1.0 \ - lib-imsvideocodec \ - lib-imsvt \ - lib-imsvtextutils \ - lib-imsvtutils \ - libdiag_system \ - libdpmctmgr \ - libdpmfdmgr \ - libdpmframework \ - libdpmtcm \ - libimscamera_jni \ - libimsmedia_jni \ libmmosal \ libmmparser_lite \ libmmrtpdecoder \ @@ -528,8 +517,20 @@ PRODUCT_PACKAGES += \ libwfduibcsinkinterface \ libwfduibcsrc \ libwfduibcsrcinterface \ - vendor.qti.diaghal@1.0 \ vendor.qti.hardware.wifidisplaysession@1.0 \ + com.qualcomm.qti.dpm.api@1.0 \ + lib-imsvideocodec \ + lib-imsvt \ + lib-imsvtextutils \ + lib-imsvtutils \ + libdiag_system \ + libdpmctmgr \ + libdpmfdmgr \ + libdpmframework \ + libdpmtcm \ + libimscamera_jni \ + libimsmedia_jni \ + vendor.qti.diaghal@1.0 \ vendor.qti.imsrtpservice@3.0 \ vendor.qti.imsrtpservice@3.1 \ CACertService \ @@ -617,6 +618,7 @@ PRODUCT_PACKAGES += \ xtwifi-client \ xtwifi-inet-agent \ dpmd \ + wfdservice \ wfdservice64 ifeq ($(TARGET_HAS_FM),true)