1 /*
2 **
3 ** Copyright 2018, The Android Open Source Project
4 **
5 ** Licensed under the Apache License, Version 2.0 (the "License");
6 ** you may not use this file except in compliance with the License.
7 ** You may obtain a copy of the License at
8 **
9 ** http://www.apache.org/licenses/LICENSE-2.0
10 **
11 ** Unless required by applicable law or agreed to in writing, software
12 ** distributed under the License is distributed on an "AS IS" BASIS,
13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 ** See the License for the specific language governing permissions and
15 ** limitations under the License.
16 */
17
18 #include <android-base/logging.h>
19
20 // from LOCAL_C_INCLUDES
21 #include "minijail.h"
22 #include <hidl/HidlTransportSupport.h>
23
24 using namespace android;
25
26 // kSystemSeccompPolicyPath points to the policy for the swcodecs themselves and
27 // is part of the updates. kVendorSeccompPolicyPath points to any additional
28 // policies that the vendor may need for the device.
29 static const char kSystemSeccompPolicyPath[] =
30 "/apex/com.android.media.swcodec/etc/seccomp_policy/mediaswcodec.policy";
31 static const char kVendorSeccompPolicyPath[] =
32 "/vendor/etc/seccomp_policy/mediaswcodec.policy";
33
34 extern "C" void RegisterCodecServices();
35
main(int argc __unused,char ** argv)36 int main(int argc __unused, char** argv)
37 {
38 LOG(INFO) << "media swcodec service starting";
39 signal(SIGPIPE, SIG_IGN);
40 SetUpMinijail(kSystemSeccompPolicyPath, kVendorSeccompPolicyPath);
41 strcpy(argv[0], "media.swcodec");
42
43 ::android::hardware::configureRpcThreadpool(64, false);
44
45 RegisterCodecServices();
46
47 ::android::hardware::joinRpcThreadpool();
48 }
49