Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dbdd8812 authored by Steven Moreland's avatar Steven Moreland
Browse files

libhwminijail from hardware/interfaces to libhidl.

This library is not a hardware interface, so it doesn't
belong directly in hardware/interfaces. Moving it to
libhidl because it is intended to be a helper library for
hal implementations that want to use minijail/seccomp.

Test: pass
Change-Id: I3f9503f491788492c6692d6584eb088e47862c7a
parent c3e80fa0
Loading
Loading
Loading
Loading

minijail/Android.bp

deleted100644 → 0
+0 −13
Original line number Diff line number Diff line
cc_library_shared {
    name: "libhwminijail",
    defaults: ["hidl_defaults"],
    vendor: true,
    export_include_dirs: ["include"],

    srcs: ["HardwareMinijail.cpp"],

    shared_libs: [
        "libbase",
        "libminijail",
    ],
}

minijail/HardwareMinijail.cpp

deleted100644 → 0
+0 −45
Original line number Diff line number Diff line
//
// Copyright (C) 2017 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>
#include <libminijail.h>

#include <hwminijail/HardwareMinijail.h>

namespace android {
namespace hardware {

void SetupMinijail(const std::string& seccomp_policy_path) {
    if (access(seccomp_policy_path.c_str(), R_OK) == -1) {
        LOG(WARNING) << "Could not find seccomp policy file at: " << seccomp_policy_path;
        return;
    }

    struct minijail* jail = minijail_new();
    if (jail == NULL) {
        LOG(FATAL) << "Failed to create minijail.";
    }

    minijail_no_new_privs(jail);
    minijail_log_seccomp_filter_failures(jail);
    minijail_use_seccomp_filter(jail);
    minijail_parse_seccomp_filters(jail, seccomp_policy_path.c_str());
    minijail_enter(jail);
    minijail_destroy(jail);
}

}  // namespace hardware
}  // namespace android
+0 −30
Original line number Diff line number Diff line
//
// Copyright (C) 2017 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.
//

#ifndef ANDROID_HARDWARE_CONFIGSTORE_MINIJAIL_H
#define ANDROID_HARDWARE_CONFIGSTORE_MINIJAIL_H

#include <string>

namespace android {
namespace hardware {

void SetupMinijail(const std::string& seccomp_policy_path);

}  // namespace hardware
}  // namespace android

#endif  // ANDROID_HARDWARE_CONFIGSTORE_UTILS_H