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

Commit 57101c30 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 4725392 from 7e959e42 to pi-release

Change-Id: I0ff0bdf526ad161e409b347b2cd090c88a79470d
parents 570d8fc9 7e959e42
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -49,6 +49,19 @@ public:
        return reply.readInt32() != 0;
    }

    virtual int32_t noteOp(const String16& op, int32_t uid, const String16& packageName)
    {
        Parcel data, reply;
        data.writeInterfaceToken(IPermissionController::getInterfaceDescriptor());
        data.writeString16(op);
        data.writeInt32(uid);
        data.writeString16(packageName);
        remote()->transact(NOTE_OP_TRANSACTION, data, &reply);
        // fail on exception
        if (reply.readExceptionCode() != 0) return 2; // MODE_ERRORED
        return reply.readInt32();
    }

    virtual void getPackagesForUid(const uid_t uid, Vector<String16>& packages)
    {
        Parcel data, reply;
@@ -111,6 +124,17 @@ status_t BnPermissionController::onTransact(
            return NO_ERROR;
        } break;

        case NOTE_OP_TRANSACTION: {
            CHECK_INTERFACE(IPermissionController, data, reply);
            String16 op = data.readString16();
            int32_t uid = data.readInt32();
            String16 packageName = data.readString16();
            int32_t res = noteOp(op, uid, packageName);
            reply->writeNoException();
            reply->writeInt32(res);
            return NO_ERROR;
        } break;

        case GET_PACKAGES_FOR_UID_TRANSACTION: {
            CHECK_INTERFACE(IPermissionController, data, reply);
            int32_t uid = data.readInt32();
+6 −0
Original line number Diff line number Diff line
@@ -59,6 +59,12 @@ bool PermissionController::checkPermission(const String16& permission, int32_t p
    return service != NULL ? service->checkPermission(permission, pid, uid) : false;
}

int32_t PermissionController::noteOp(const String16& op, int32_t uid, const String16& packageName)
{
    sp<IPermissionController> service = getService();
    return service != NULL ? service->noteOp(op, uid, packageName) : MODE_ERRORED;
}

void PermissionController::getPackagesForUid(const uid_t uid, Vector<String16> &packages)
{
    sp<IPermissionController> service = getService();
+6 −3
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@ public:

    virtual bool checkPermission(const String16& permission, int32_t pid, int32_t uid) = 0;

    virtual int32_t noteOp(const String16& op, int32_t uid, const String16& packageName) = 0;

    virtual void getPackagesForUid(const uid_t uid, Vector<String16> &packages) = 0;

    virtual bool isRuntimePermission(const String16& permission) = 0;
@@ -40,9 +42,10 @@ public:

    enum {
        CHECK_PERMISSION_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION,
        GET_PACKAGES_FOR_UID_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION + 1,
        IS_RUNTIME_PERMISSION_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION + 2,
        GET_PACKAGE_UID_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION + 3
        NOTE_OP_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION + 1,
        GET_PACKAGES_FOR_UID_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION + 2,
        IS_RUNTIME_PERMISSION_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION + 3,
        GET_PACKAGE_UID_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION + 4
    };
};

+8 −0
Original line number Diff line number Diff line
@@ -35,9 +35,17 @@ public:
        MATCH_INSTANT = 1<<23
    };

    enum {
        MODE_ALLOWED = 0,
        MODE_IGNORED = 1,
        MODE_ERRORED = 2,
        MODE_DEFAULT = 3,
    };

    PermissionController();

    bool checkPermission(const String16& permission, int32_t pid, int32_t uid);
    int32_t noteOp(const String16& op, int32_t uid, const String16& packageName);
    void getPackagesForUid(const uid_t uid, Vector<String16>& packages);
    bool isRuntimePermission(const String16& permission);
    int getPackageUid(const String16& package, int flags);
+9 −0
Original line number Diff line number Diff line
@@ -41,10 +41,19 @@ int dvrGetApi(void* api, size_t struct_size, int version) {
    }                                                          \
  } while (0)

#define DVR_V1_API_ENTRY_DEPRECATED(name)                      \
  do {                                                         \
    if ((offsetof(DvrApi_v1, name) + sizeof(dvr_api->name)) <= \
        clamped_struct_size) {                                 \
      dvr_api->name = nullptr;                                 \
    }                                                          \
  } while (0)

#include "include/dvr/dvr_api_entries.h"

// Undefine macro definitions to play nice with Google3 style rules.
#undef DVR_V1_API_ENTRY
#undef DVR_V1_API_ENTRY_DEPRECATED

    return 0;
  }
Loading