summaryrefslogtreecommitdiff
path: root/libs/permission/AppOpsManager.cpp
diff options
context:
space:
mode:
author Karishma Vakil <kvakil@google.com> 2023-11-06 19:25:20 +0000
committer Karishma Vakil <kvakil@google.com> 2023-11-09 16:53:26 +0000
commit215b124ece74293e8ea091e15bc8ad152686f494 (patch)
tree14dfef8b8cd961d58bea84945bf77f8c36daa4ce /libs/permission/AppOpsManager.cpp
parent14f7ae8fa66cf12bd6ef641635d9d0a73bf92993 (diff)
Revert "[DeviceAware] Use AttributionSourceState in native AppOp..."
Revert submission 24499968-appops-deviceid Reason for revert: Causing perf regression b/308786093 Reverted changes: /q/submissionid:24499968-appops-deviceid Change-Id: I7e0da4a493b85e1296b41db09e114dd0c8b9e244
Diffstat (limited to 'libs/permission/AppOpsManager.cpp')
-rw-r--r--libs/permission/AppOpsManager.cpp63
1 files changed, 16 insertions, 47 deletions
diff --git a/libs/permission/AppOpsManager.cpp b/libs/permission/AppOpsManager.cpp
index b407d02087..695927418d 100644
--- a/libs/permission/AppOpsManager.cpp
+++ b/libs/permission/AppOpsManager.cpp
@@ -31,9 +31,6 @@
namespace android {
-using ::android::String16;
-using ::android::String8;
-
static const sp<IBinder>& getClientId() {
static pthread_mutex_t gClientIdMutex = PTHREAD_MUTEX_INITIALIZER;
static sp<IBinder> gClientId;
@@ -46,11 +43,6 @@ static const sp<IBinder>& getClientId() {
return gClientId;
}
-
-static std::string getString(const String16& stringToConvert) {
- return std::string(String8(stringToConvert).c_str());
-}
-
AppOpsManager::AppOpsManager()
{
}
@@ -86,14 +78,9 @@ sp<IAppOpsService> AppOpsManager::getService()
int32_t AppOpsManager::checkOp(int32_t op, int32_t uid, const String16& callingPackage)
{
sp<IAppOpsService> service = getService();
- if (service == nullptr) {
- return AppOpsManager::MODE_IGNORED;
- }
- AttributionSourceState attributionSourceState;
- attributionSourceState.uid = uid;
- attributionSourceState.packageName = getString(callingPackage);
-
- return service->checkOperationWithState(op, attributionSourceState);
+ return service != nullptr
+ ? service->checkOperation(op, uid, callingPackage)
+ : AppOpsManager::MODE_IGNORED;
}
int32_t AppOpsManager::checkAudioOpNoThrow(int32_t op, int32_t usage, int32_t uid,
@@ -112,18 +99,12 @@ int32_t AppOpsManager::noteOp(int32_t op, int32_t uid, const String16& callingPa
int32_t AppOpsManager::noteOp(int32_t op, int32_t uid, const String16& callingPackage,
const std::optional<String16>& attributionTag, const String16& message) {
sp<IAppOpsService> service = getService();
- if (service == nullptr) {
- return AppOpsManager::MODE_IGNORED;
- }
- AttributionSourceState attributionSourceState;
- attributionSourceState.uid = uid;
- attributionSourceState.packageName = getString(callingPackage);
- if (attributionTag.has_value()) {
- attributionSourceState.attributionTag = getString(attributionTag.value());
- }
+ int32_t mode = service != nullptr
+ ? service->noteOperation(op, uid, callingPackage, attributionTag,
+ shouldCollectNotes(op), message, uid == AID_SYSTEM)
+ : AppOpsManager::MODE_IGNORED;
- return service->noteOperationWithState(op, attributionSourceState,
- shouldCollectNotes(op), message, uid == AID_SYSTEM);
+ return mode;
}
int32_t AppOpsManager::startOpNoThrow(int32_t op, int32_t uid, const String16& callingPackage,
@@ -136,18 +117,13 @@ int32_t AppOpsManager::startOpNoThrow(int32_t op, int32_t uid, const String16& c
bool startIfModeDefault, const std::optional<String16>& attributionTag,
const String16& message) {
sp<IAppOpsService> service = getService();
- if (service == nullptr) {
- return AppOpsManager::MODE_IGNORED;
- }
- AttributionSourceState attributionSourceState;
- attributionSourceState.uid = uid;
- attributionSourceState.packageName = getString(callingPackage);
- if (attributionTag.has_value()) {
- attributionSourceState.attributionTag = getString(attributionTag.value());
- }
+ int32_t mode = service != nullptr
+ ? service->startOperation(getClientId(), op, uid, callingPackage,
+ attributionTag, startIfModeDefault, shouldCollectNotes(op), message,
+ uid == AID_SYSTEM)
+ : AppOpsManager::MODE_IGNORED;
- return service->startOperationWithState(getClientId(), op, attributionSourceState,
- startIfModeDefault,shouldCollectNotes(op), message, uid == AID_SYSTEM);
+ return mode;
}
void AppOpsManager::finishOp(int32_t op, int32_t uid, const String16& callingPackage) {
@@ -157,16 +133,9 @@ void AppOpsManager::finishOp(int32_t op, int32_t uid, const String16& callingPac
void AppOpsManager::finishOp(int32_t op, int32_t uid, const String16& callingPackage,
const std::optional<String16>& attributionTag) {
sp<IAppOpsService> service = getService();
- if (service == nullptr) {
- return;
- }
- AttributionSourceState attributionSourceState;
- attributionSourceState.uid = uid;
- attributionSourceState.packageName = getString(callingPackage);
- if (attributionTag.has_value()) {
- attributionSourceState.attributionTag = getString(attributionTag.value());
+ if (service != nullptr) {
+ service->finishOperation(getClientId(), op, uid, callingPackage, attributionTag);
}
- service->finishOperationWithState(getClientId(), op, attributionSourceState);
}
void AppOpsManager::startWatchingMode(int32_t op, const String16& packageName,