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
diff --git a/services/mediacodec/main_swcodecservice.cpp b/services/mediacodec/main_swcodecservice.cpp
index 05b5695..c44be28 100644
--- a/services/mediacodec/main_swcodecservice.cpp
+++ b/services/mediacodec/main_swcodecservice.cpp
@@ -19,24 +19,26 @@
// from LOCAL_C_INCLUDES
#include "minijail.h"
-
#include <hidl/HidlTransportSupport.h>
-#include "MediaCodecUpdateService.h"
-
using namespace android;
+// kSystemSeccompPolicyPath points to the policy for the swcodecs themselves and
+// is part of the updates. kVendorSeccompPolicyPath points to any additional
+// policies that the vendor may need for the device.
static const char kSystemSeccompPolicyPath[] =
- "/system/etc/seccomp_policy/mediaswcodec.policy";
+ "/apex/com.android.media.swcodec/etc/seccomp_policy/mediaswcodec.policy";
static const char kVendorSeccompPolicyPath[] =
"/vendor/etc/seccomp_policy/mediaswcodec.policy";
// Disable Scudo's mismatch allocation check, as it is being triggered
// by some third party code.
extern "C" const char *__scudo_default_options() {
- return "DeallocationTypeMismatch=false";
+ return "DeallocationTypeMismatch=false";
}
+extern "C" void RegisterCodecServices();
+
int main(int argc __unused, char** /*argv*/)
{
LOG(INFO) << "media swcodec service starting";
@@ -45,11 +47,7 @@
::android::hardware::configureRpcThreadpool(64, false);
-#ifdef __LP64__
- loadFromApex("/apex/com.android.media.swcodec/lib64");
-#else
- loadFromApex("/apex/com.android.media.swcodec/lib");
-#endif
+ RegisterCodecServices();
::android::hardware::joinRpcThreadpool();
}