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

Commit 71bb1a58 authored by Elliott Hughes's avatar Elliott Hughes Committed by android-build-merger
Browse files

Merge "Remove nativeperms." am: cdb84a37 am: fbb699d0 am: dd5472bc am: 7dde9178

am: 7eda031a

Change-Id: Ie6a7a551f88822ac5bebbc8db451ced1943c1010
parents d6171d00 7eda031a
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