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

Commit cdb84a37 authored by Elliott Hughes's avatar Elliott Hughes Committed by Gerrit Code Review
Browse files

Merge "Remove nativeperms."

parents 5667bea3 2062e879
Loading
Loading
Loading
Loading
+0 −13
Original line number Diff line number Diff line
BasedOnStyle: Google
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: true
AllowShortLoopsOnASingleLine: true
BinPackArguments: true
BinPackParameters: true
ColumnLimit: 80
CommentPragmas: NOLINT:.*
ContinuationIndentWidth: 8
DerivePointerAlignment: false
IndentWidth: 4
PointerAlignment: Left
TabWidth: 4

services/nativeperms/Android.bp

deleted100644 → 0
+0 −34
Original line number Diff line number Diff line
// Copyright 2016 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.
//

cc_binary {
    name: "nativeperms",
    srcs: [
        "nativeperms.cpp",
        "android/os/IPermissionController.aidl",
    ],
    cflags: [
        "-Wall",
        "-Werror",
    ],
    shared_libs: [
        "libbinder",
        "libbrillo",
        "libbrillo-binder",
        "libchrome",
        "libutils",
    ],
    init_rc: ["nativeperms.rc"],
}
+0 −25
Original line number Diff line number Diff line
/* //device/java/android/android/os/IPowerManager.aidl
**
** Copyright 2007, 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.
*/

package android.os;

/** @hide */
interface IPermissionController {
    boolean checkPermission(String permission, int pid, int uid);
    String[] getPackagesForUid(int uid);
    boolean isRuntimePermission(String permission);
}
+0 −4
Original line number Diff line number Diff line
IPermissionController.aidl in this directory is a verbatim copy of
https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/os/IPermissionController.aidl,
because some Brillo manifests do not currently include the frameworks/base repo.
TODO(jorgelo): Figure out a way to use the .aidl file in frameworks/base.
+0 −87
Original line number Diff line number Diff line
/*
 * Copyright 2016 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 <base/at_exit.h>
#include <base/logging.h>
#include <base/message_loop/message_loop.h>
#include <binder/IServiceManager.h>
#include <binder/Status.h>
#include <brillo/binder_watcher.h>
#include <brillo/message_loops/base_message_loop.h>
#include <brillo/syslog_logging.h>
#include <utils/String16.h>

#include "android/os/BnPermissionController.h"

namespace {
static android::String16 serviceName("permission");
}

namespace android {

class PermissionService : public android::os::BnPermissionController {
   public:
    ::android::binder::Status checkPermission(
            const ::android::String16& permission, int32_t pid, int32_t uid,
            bool* _aidl_return) {
        (void)permission;
        (void)pid;
        (void)uid;
        *_aidl_return = true;
        return binder::Status::ok();
    }

    ::android::binder::Status getPackagesForUid(
            int32_t uid, ::std::vector<::android::String16>* _aidl_return) {
        (void)uid;
        // Brillo doesn't currently have installable packages.
        if (_aidl_return) {
            _aidl_return->clear();
        }
        return binder::Status::ok();
    }

    ::android::binder::Status isRuntimePermission(
            const ::android::String16& permission, bool* _aidl_return) {
        (void)permission;
        // Brillo doesn't currently have runtime permissions.
        *_aidl_return = false;
        return binder::Status::ok();
    }
};

}  // namespace android

int main() {
    base::AtExitManager atExitManager;
    brillo::InitLog(brillo::kLogToSyslog);
    // Register the service with servicemanager.
    android::status_t status = android::defaultServiceManager()->addService(
            serviceName, new android::PermissionService());
    CHECK(status == android::OK) << "Failed to get IPermissionController "
                                    "binder from servicemanager.";

    // Create a message loop.
    base::MessageLoopForIO messageLoopForIo;
    brillo::BaseMessageLoop messageLoop{&messageLoopForIo};

    // Initialize a binder watcher.
    brillo::BinderWatcher watcher(&messageLoop);
    watcher.Init();

    // Run the message loop.
    messageLoop.Run();
}
Loading