diff options
author | 2023-02-28 22:00:21 +0000 | |
---|---|---|
committer | 2023-03-13 16:40:38 +0000 | |
commit | 76004e0290b32d978df26e08fc57a5c957ddf22a (patch) | |
tree | de0c6dc984ca92e6fd4ae7298a80650e050ccc28 | |
parent | 119087d530580a511f25c6948b6aeb222f3756a9 (diff) |
Adding in FGS Logger AIDL methods for use in C++ code
Test: manual testing on device
Bug: b/263304156
Change-Id: I3b934cbc72dae718479e45a2a794046745a3ca2f
-rw-r--r-- | libs/binder/IActivityManager.cpp | 47 | ||||
-rw-r--r-- | libs/binder/include_activitymanager/binder/IActivityManager.h | 7 |
2 files changed, 54 insertions, 0 deletions
diff --git a/libs/binder/IActivityManager.cpp b/libs/binder/IActivityManager.cpp index 08169f5538..ebdaa4cc99 100644 --- a/libs/binder/IActivityManager.cpp +++ b/libs/binder/IActivityManager.cpp @@ -131,6 +131,53 @@ public: *outResult = reply.readInt32(); return NO_ERROR; } + + virtual status_t logFgsApiBegin(int32_t apiType, int32_t appUid, int32_t appPid) { + Parcel data, reply; + data.writeInterfaceToken(IActivityManager::getInterfaceDescriptor()); + data.writeInt32(apiType); + data.writeInt32(appUid); + data.writeInt32(appPid); + status_t err = remote()->transact(LOG_FGS_API_BEGIN_TRANSACTION, data, &reply); + if (err != NO_ERROR || ((err = reply.readExceptionCode()) != NO_ERROR)) { + ALOGD("FGS Logger Transaction failed"); + ALOGD("%d", err); + return err; + } + return NO_ERROR; + } + + virtual status_t logFgsApiEnd(int32_t apiType, int32_t appUid, int32_t appPid) { + Parcel data, reply; + data.writeInterfaceToken(IActivityManager::getInterfaceDescriptor()); + data.writeInt32(apiType); + data.writeInt32(appUid); + data.writeInt32(appPid); + status_t err = remote()->transact(LOG_FGS_API_END_TRANSACTION, data, &reply); + if (err != NO_ERROR || ((err = reply.readExceptionCode()) != NO_ERROR)) { + ALOGD("FGS Logger Transaction failed"); + ALOGD("%d", err); + return err; + } + return NO_ERROR; + } + + virtual status_t logFgsApiStateChanged(int32_t apiType, int32_t state, int32_t appUid, + int32_t appPid) { + Parcel data, reply; + data.writeInterfaceToken(IActivityManager::getInterfaceDescriptor()); + data.writeInt32(apiType); + data.writeInt32(state); + data.writeInt32(appUid); + data.writeInt32(appPid); + status_t err = remote()->transact(LOG_FGS_API_BEGIN_TRANSACTION, data, &reply); + if (err != NO_ERROR || ((err = reply.readExceptionCode()) != NO_ERROR)) { + ALOGD("FGS Logger Transaction failed"); + ALOGD("%d", err); + return err; + } + return NO_ERROR; + } }; // ------------------------------------------------------------------------------------ diff --git a/libs/binder/include_activitymanager/binder/IActivityManager.h b/libs/binder/include_activitymanager/binder/IActivityManager.h index 4632b2eb0f..20d12aea9a 100644 --- a/libs/binder/include_activitymanager/binder/IActivityManager.h +++ b/libs/binder/include_activitymanager/binder/IActivityManager.h @@ -42,6 +42,10 @@ public: const pid_t pid, const uid_t uid, int32_t* outResult) = 0; + virtual status_t logFgsApiBegin(int32_t apiType, int32_t appUid, int32_t appPid) = 0; + virtual status_t logFgsApiEnd(int32_t apiType, int32_t appUid, int32_t appPid) = 0; + virtual status_t logFgsApiStateChanged(int32_t apiType, int32_t state, int32_t appUid, + int32_t appPid) = 0; enum { OPEN_CONTENT_URI_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION, @@ -50,6 +54,9 @@ public: IS_UID_ACTIVE_TRANSACTION, GET_UID_PROCESS_STATE_TRANSACTION, CHECK_PERMISSION_TRANSACTION, + LOG_FGS_API_BEGIN_TRANSACTION, + LOG_FGS_API_END_TRANSACTION, + LOG_FGS_API_STATE_CHANGED_TRANSACTION }; }; |