diff options
| author | Chong Zhang <chz@google.com> | 2019-02-27 13:43:50 -0800 |
|---|---|---|
| committer | Chong Zhang <chz@google.com> | 2019-03-07 18:40:57 -0800 |
| commit | 9bda452cdafeabbf79a28c24ad58786e2cd8144c (patch) | |
| tree | 27c1a7b8e306ed7a042074f0575334c40858520c /apex | |
| parent | 28da31bbda1f969924c25f72e244a33debfde779 (diff) | |
| download | frameworks_av-9bda452cdafeabbf79a28c24ad58786e2cd8144c.tar.gz frameworks_av-9bda452cdafeabbf79a28c24ad58786e2cd8144c.tar.bz2 frameworks_av-9bda452cdafeabbf79a28c24ad58786e2cd8144c.zip | |
Move mediaswcodec service to APEX
bug: 127499775
test:
- adb shell lshal debug android.hardware.media.c2@1.0::IComponentStore/software
check all software c2 codecs are still listed
- clean-built image shouldn't have mediaswcodec in /system/bin
- atest CtsMediaTestCases -- --module-arg CtsMediaTestCases:size:small
- atest media_swcodec_e2e_tests
Change-Id: I96df803c29aa595dfd2b51d5a68d6db2c08726f3
Diffstat (limited to 'apex')
| -rw-r--r-- | apex/Android.bp | 23 | ||||
| -rw-r--r-- | apex/ld.config.txt | 74 | ||||
| -rw-r--r-- | apex/mediaswcodec.rc | 7 |
3 files changed, 102 insertions, 2 deletions
diff --git a/apex/Android.bp b/apex/Android.bp index f1828569f4..0a9551d4d3 100644 --- a/apex/Android.bp +++ b/apex/Android.bp @@ -65,8 +65,13 @@ filegroup { apex_defaults { name: "com.android.media.swcodec-defaults", - native_shared_libs: [ - "libmedia_codecserviceregistrant", + binaries: [ + "mediaswcodec", + ], + prebuilts: [ + "com.android.media.swcodec-mediaswcodec.rc", + "com.android.media.swcodec-ld.config.txt", + "mediaswcodec.policy", ], use_vendor: true, key: "com.android.media.swcodec.key", @@ -76,6 +81,20 @@ apex_defaults { androidManifest: ":com.android.media.swcodec-androidManifest", } +prebuilt_etc { + name: "com.android.media.swcodec-mediaswcodec.rc", + src: "mediaswcodec.rc", + filename: "init.rc", + installable: false, +} + +prebuilt_etc { + name: "com.android.media.swcodec-ld.config.txt", + src: "ld.config.txt", + filename: "ld.config.txt", + installable: false, +} + apex { name: "com.android.media.swcodec", manifest: "manifest_codec.json", diff --git a/apex/ld.config.txt b/apex/ld.config.txt new file mode 100644 index 0000000000..a3e96c4d6c --- /dev/null +++ b/apex/ld.config.txt @@ -0,0 +1,74 @@ +# Copyright (C) 2019 The Android Open Source Project +# +# Bionic loader config file for the media swcodec APEX. +# +# There are no versioned APEX paths here - this APEX module does not support +# having several versions mounted. + +dir.swcodec = /apex/com.android.media.swcodec/bin/ + +[swcodec] +additional.namespaces = platform + +############################################################################### +# "default" namespace +# +# This namespace is for the binaries and libraries on the swcodec APEX. +############################################################################### + +namespace.default.isolated = true +namespace.default.visible = true + +namespace.default.search.paths = /apex/com.android.media.swcodec/${LIB} +namespace.default.asan.search.paths = /apex/com.android.media.swcodec/${LIB} + +# Keep the below in sync with "sphal" namespace in system's /etc/ld.config.txt +# Codec2 has dependencies on some SP-hals (eg. android.hardware.graphics.mapper@2.0) +# These are dlopen'ed by libvndksupport.so. +namespace.default.search.paths += /odm/${LIB} +namespace.default.search.paths += /vendor/${LIB} + +namespace.default.permitted.paths = /odm/${LIB} +namespace.default.permitted.paths += /vendor/${LIB} +namespace.default.permitted.paths += /vendor/${LIB}/hw +namespace.default.permitted.paths += /system/vendor/${LIB} + +namespace.default.asan.search.paths += /data/asan/odm/${LIB} +namespace.default.asan.search.paths += /odm/${LIB} +namespace.default.asan.search.paths += /data/asan/vendor/${LIB} +namespace.default.asan.search.paths += /vendor/${LIB} + +namespace.default.asan.permitted.paths = /data/asan/odm/${LIB} +namespace.default.asan.permitted.paths += /odm/${LIB} +namespace.default.asan.permitted.paths += /data/asan/vendor/${LIB} +namespace.default.asan.permitted.paths += /vendor/${LIB} + +namespace.default.links = platform + +# TODO: replace the following when apex has a way to auto-generate this list +# namespace.default.link.platform.shared_libs = %LLNDK_LIBRARIES% +# namespace.default.link.platform.shared_libs += %SANITIZER_RUNTIME_LIBRARIES% +namespace.default.link.platform.shared_libs = libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libandroid_net.so:libc.so:libclang_rt.asan-aarch64-android.so:libclang_rt.asan-arm-android.so:libclang_rt.hwasan-aarch64-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libft2.so:liblog.so:libm.so:libmediandk.so:libnativewindow.so:libneuralnetworks.so:libsync.so:libvndksupport.so:libvulkan.so + +############################################################################### +# "platform" namespace +# +# This namespace is for linking to LLNDK and ASAN libraries on the system. +############################################################################### + +namespace.platform.isolated = true + +namespace.platform.search.paths = /system/${LIB} +namespace.platform.asan.search.paths = /data/asan/system/${LIB} + +# /system/lib/libc.so, etc are symlinks to /bionic/lib/libc.so, etc. +# Add /bionic/lib to the permitted paths because linker uses realpath(3) +# to check the accessibility of the lib. We could add this to search.paths +# instead but that makes the resolution of bionic libs be dependent on +# the order of /system/lib and /bionic/lib in search.paths. If /bionic/lib +# is after /system/lib, then /bionic/lib is never tried because libc.so +# is always found in /system/lib but fails to pass the accessibility test +# because of its realpath. It's better to not depend on the ordering if +# possible. +namespace.platform.permitted.paths = /bionic/${LIB} +namespace.platform.asan.permitted.paths = /bionic/${LIB} diff --git a/apex/mediaswcodec.rc b/apex/mediaswcodec.rc new file mode 100644 index 0000000000..d17481bf98 --- /dev/null +++ b/apex/mediaswcodec.rc @@ -0,0 +1,7 @@ +service media.swcodec /apex/com.android.media.swcodec/bin/mediaswcodec + class main + user mediacodec + group camera drmrpc mediadrm + override + ioprio rt 4 + writepid /dev/cpuset/foreground/tasks |
