Loading services/mediacodec/Android.mk +30 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,36 @@ LOCAL_INIT_RC := android.hardware.media.omx@1.0-service.rc include $(BUILD_EXECUTABLE) #################################################################### # service executable include $(CLEAR_VARS) # seccomp is not required for coverage build. ifneq ($(NATIVE_COVERAGE),true) LOCAL_REQUIRED_MODULES_arm := crash_dump.policy mediacodec.policy LOCAL_REQUIRED_MODULES_x86 := crash_dump.policy mediacodec.policy endif LOCAL_SRC_FILES := main_swcodecservice.cpp LOCAL_SHARED_LIBRARIES := \ libavservices_minijail \ libbase \ libbinder \ libcutils \ libhidltransport \ libhwbinder \ liblog \ libmedia \ libutils \ libziparchive \ LOCAL_MODULE := mediaswcodec LOCAL_INIT_RC := mediaswcodec.rc LOCAL_32_BIT_ONLY := true include $(BUILD_EXECUTABLE) #################################################################### # service seccomp policy ifeq ($(TARGET_ARCH), $(filter $(TARGET_ARCH), x86 x86_64 arm arm64)) include $(CLEAR_VARS) Loading services/mediacodec/main_codecservice.cpp +14 −30 Original line number Diff line number Diff line Loading @@ -48,21 +48,6 @@ int main(int argc __unused, char** argv) ::android::hardware::configureRpcThreadpool(64, false); // Registration of customized codec services void *registrantLib = dlopen( "libmedia_codecserviceregistrant.so", RTLD_NOW | RTLD_LOCAL); if (registrantLib) { RegisterCodecServicesFunc registerCodecServices = reinterpret_cast<RegisterCodecServicesFunc>( dlsym(registrantLib, "RegisterCodecServices")); if (registerCodecServices) { registerCodecServices(); } else { LOG(WARNING) << "Cannot register additional services " "-- corrupted library."; } } else { // Default codec services using namespace ::android::hardware::media::omx::V1_0; sp<IOmxStore> omxStore = new implementation::OmxStore(); Loading @@ -79,7 +64,6 @@ int main(int argc __unused, char** argv) } else { LOG(INFO) << "IOmx HAL service created."; } } ::android::hardware::joinRpcThreadpool(); } services/mediacodec/main_swcodecservice.cpp 0 → 100644 +66 −0 Original line number Diff line number Diff line /* ** ** Copyright 2018, 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. */ #include <android-base/logging.h> // from LOCAL_C_INCLUDES #include "minijail.h" #include <binder/ProcessState.h> #include <hidl/HidlTransportSupport.h> #include <media/CodecServiceRegistrant.h> #include <dlfcn.h> using namespace android; // TODO: replace policy with software codec-only policies // Must match location in Android.mk. static const char kSystemSeccompPolicyPath[] = "/system/etc/seccomp_policy/mediacodec.policy"; static const char kVendorSeccompPolicyPath[] = "/vendor/etc/seccomp_policy/mediacodec.policy"; int main(int argc __unused, char** /*argv*/) { LOG(INFO) << "media swcodec service starting"; signal(SIGPIPE, SIG_IGN); SetUpMinijail(kSystemSeccompPolicyPath, kVendorSeccompPolicyPath); android::ProcessState::self()->startThreadPool(); ::android::hardware::configureRpcThreadpool(64, false); // Registration of customized codec services void *registrantLib = dlopen( "libmedia_codecserviceregistrant.so", RTLD_NOW | RTLD_LOCAL); if (registrantLib) { RegisterCodecServicesFunc registerCodecServices = reinterpret_cast<RegisterCodecServicesFunc>( dlsym(registrantLib, "RegisterCodecServices")); if (registerCodecServices) { registerCodecServices(); } else { LOG(WARNING) << "Cannot register codec services " "-- corrupted library."; } } else { LOG(ERROR) << "Cannot find codec service registrant."; } ::android::hardware::joinRpcThreadpool(); } services/mediacodec/mediaswcodec.rc 0 → 100644 +6 −0 Original line number Diff line number Diff line service media.swcodec /system/bin/mediaswcodec class main user mediacodec group camera drmrpc mediadrm ioprio rt 4 writepid /dev/cpuset/foreground/tasks Loading
services/mediacodec/Android.mk +30 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,36 @@ LOCAL_INIT_RC := android.hardware.media.omx@1.0-service.rc include $(BUILD_EXECUTABLE) #################################################################### # service executable include $(CLEAR_VARS) # seccomp is not required for coverage build. ifneq ($(NATIVE_COVERAGE),true) LOCAL_REQUIRED_MODULES_arm := crash_dump.policy mediacodec.policy LOCAL_REQUIRED_MODULES_x86 := crash_dump.policy mediacodec.policy endif LOCAL_SRC_FILES := main_swcodecservice.cpp LOCAL_SHARED_LIBRARIES := \ libavservices_minijail \ libbase \ libbinder \ libcutils \ libhidltransport \ libhwbinder \ liblog \ libmedia \ libutils \ libziparchive \ LOCAL_MODULE := mediaswcodec LOCAL_INIT_RC := mediaswcodec.rc LOCAL_32_BIT_ONLY := true include $(BUILD_EXECUTABLE) #################################################################### # service seccomp policy ifeq ($(TARGET_ARCH), $(filter $(TARGET_ARCH), x86 x86_64 arm arm64)) include $(CLEAR_VARS) Loading
services/mediacodec/main_codecservice.cpp +14 −30 Original line number Diff line number Diff line Loading @@ -48,21 +48,6 @@ int main(int argc __unused, char** argv) ::android::hardware::configureRpcThreadpool(64, false); // Registration of customized codec services void *registrantLib = dlopen( "libmedia_codecserviceregistrant.so", RTLD_NOW | RTLD_LOCAL); if (registrantLib) { RegisterCodecServicesFunc registerCodecServices = reinterpret_cast<RegisterCodecServicesFunc>( dlsym(registrantLib, "RegisterCodecServices")); if (registerCodecServices) { registerCodecServices(); } else { LOG(WARNING) << "Cannot register additional services " "-- corrupted library."; } } else { // Default codec services using namespace ::android::hardware::media::omx::V1_0; sp<IOmxStore> omxStore = new implementation::OmxStore(); Loading @@ -79,7 +64,6 @@ int main(int argc __unused, char** argv) } else { LOG(INFO) << "IOmx HAL service created."; } } ::android::hardware::joinRpcThreadpool(); }
services/mediacodec/main_swcodecservice.cpp 0 → 100644 +66 −0 Original line number Diff line number Diff line /* ** ** Copyright 2018, 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. */ #include <android-base/logging.h> // from LOCAL_C_INCLUDES #include "minijail.h" #include <binder/ProcessState.h> #include <hidl/HidlTransportSupport.h> #include <media/CodecServiceRegistrant.h> #include <dlfcn.h> using namespace android; // TODO: replace policy with software codec-only policies // Must match location in Android.mk. static const char kSystemSeccompPolicyPath[] = "/system/etc/seccomp_policy/mediacodec.policy"; static const char kVendorSeccompPolicyPath[] = "/vendor/etc/seccomp_policy/mediacodec.policy"; int main(int argc __unused, char** /*argv*/) { LOG(INFO) << "media swcodec service starting"; signal(SIGPIPE, SIG_IGN); SetUpMinijail(kSystemSeccompPolicyPath, kVendorSeccompPolicyPath); android::ProcessState::self()->startThreadPool(); ::android::hardware::configureRpcThreadpool(64, false); // Registration of customized codec services void *registrantLib = dlopen( "libmedia_codecserviceregistrant.so", RTLD_NOW | RTLD_LOCAL); if (registrantLib) { RegisterCodecServicesFunc registerCodecServices = reinterpret_cast<RegisterCodecServicesFunc>( dlsym(registrantLib, "RegisterCodecServices")); if (registerCodecServices) { registerCodecServices(); } else { LOG(WARNING) << "Cannot register codec services " "-- corrupted library."; } } else { LOG(ERROR) << "Cannot find codec service registrant."; } ::android::hardware::joinRpcThreadpool(); }
services/mediacodec/mediaswcodec.rc 0 → 100644 +6 −0 Original line number Diff line number Diff line service media.swcodec /system/bin/mediaswcodec class main user mediacodec group camera drmrpc mediadrm ioprio rt 4 writepid /dev/cpuset/foreground/tasks