IPermissionController.h revision e752a5cc64b78f799525aa4e44e5f74e8c402465
1c6926b01add6df32ec3e31f94b2ecb116ca37329Shinichiro Hamaji/* 2c6926b01add6df32ec3e31f94b2ecb116ca37329Shinichiro Hamaji * Copyright (C) 2005 The Android Open Source Project 3c6926b01add6df32ec3e31f94b2ecb116ca37329Shinichiro Hamaji * 4c6926b01add6df32ec3e31f94b2ecb116ca37329Shinichiro Hamaji * Licensed under the Apache License, Version 2.0 (the "License"); 5c6926b01add6df32ec3e31f94b2ecb116ca37329Shinichiro Hamaji * you may not use this file except in compliance with the License. 6c6926b01add6df32ec3e31f94b2ecb116ca37329Shinichiro Hamaji * You may obtain a copy of the License at 7c6926b01add6df32ec3e31f94b2ecb116ca37329Shinichiro Hamaji * 8c6926b01add6df32ec3e31f94b2ecb116ca37329Shinichiro Hamaji * http://www.apache.org/licenses/LICENSE-2.0 9c6926b01add6df32ec3e31f94b2ecb116ca37329Shinichiro Hamaji * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17// 18#ifndef ANDROID_IPERMISSION_CONTROLLER_H 19#define ANDROID_IPERMISSION_CONTROLLER_H 20 21#include <binder/IInterface.h> 22#include <stdlib.h> 23 24namespace android { 25 26// ---------------------------------------------------------------------- 27 28class IPermissionController : public IInterface 29{ 30public: 31 DECLARE_META_INTERFACE(PermissionController) 32 33 virtual bool checkPermission(const String16& permission, int32_t pid, int32_t uid) = 0; 34 35 virtual void getPackagesForUid(const uid_t uid, Vector<String16> &packages) = 0; 36 37 virtual bool isRuntimePermission(const String16& permission) = 0; 38 39 virtual int getPackageUid(const String16& package, int flags) = 0; 40 41 enum { 42 CHECK_PERMISSION_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION, 43 GET_PACKAGES_FOR_UID_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION + 1, 44 IS_RUNTIME_PERMISSION_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION + 2, 45 GET_PACKAGE_UID_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION + 3 46 }; 47}; 48 49// ---------------------------------------------------------------------- 50 51class BnPermissionController : public BnInterface<IPermissionController> 52{ 53public: 54 virtual status_t onTransact( uint32_t code, 55 const Parcel& data, 56 Parcel* reply, 57 uint32_t flags = 0); 58}; 59 60// ---------------------------------------------------------------------- 61 62}; // namespace android 63 64#endif // ANDROID_IPERMISSION_CONTROLLER_H 65 66