diff options
author | 2019-09-06 11:01:18 -0700 | |
---|---|---|
committer | 2019-10-09 14:38:15 -0700 | |
commit | b13018865ef7b1a7b4f59bafe70b6d93069e97ab (patch) | |
tree | 01617c9e199654374c3f6ed5cf5387d6a1c03872 /libs/binder/AppOpsManager.cpp | |
parent | b92c27b6c019c5b9bf4f8b695535e26e70fd1b1b (diff) |
Note appOps with featureIds from native code
Test: atest CtsAppOpsTestCases
Bug: 136595429
Change-Id: I31cc35134035d19aa7b98567fd998ff7f406b271
Diffstat (limited to 'libs/binder/AppOpsManager.cpp')
-rw-r--r-- | libs/binder/AppOpsManager.cpp | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/libs/binder/AppOpsManager.cpp b/libs/binder/AppOpsManager.cpp index 9da9c13e54..60f047fd90 100644 --- a/libs/binder/AppOpsManager.cpp +++ b/libs/binder/AppOpsManager.cpp @@ -115,18 +115,23 @@ int32_t AppOpsManager::checkAudioOpNoThrow(int32_t op, int32_t usage, int32_t ui } int32_t AppOpsManager::noteOp(int32_t op, int32_t uid, const String16& callingPackage) { - return noteOp(op, uid, callingPackage, String16("noteOp from native code")); + return noteOp(op, uid, callingPackage, String16(), String16()); } int32_t AppOpsManager::noteOp(int32_t op, int32_t uid, const String16& callingPackage, - const String16& message) { + const String16& featureId, const String16& message) { sp<IAppOpsService> service = getService(); int32_t mode = service != nullptr ? service->noteOperation(op, uid, callingPackage) : APP_OPS_MANAGER_UNAVAILABLE_MODE; if (mode == AppOpsManager::MODE_ALLOWED) { - markAppOpNoted(uid, callingPackage, op, message); + if (message.size() == 0) { + markAppOpNoted(uid, callingPackage, op, featureId, + String16("noteOp from native code")); + } else { + markAppOpNoted(uid, callingPackage, op, featureId, message); + } } return mode; @@ -134,19 +139,23 @@ int32_t AppOpsManager::noteOp(int32_t op, int32_t uid, const String16& callingPa int32_t AppOpsManager::startOpNoThrow(int32_t op, int32_t uid, const String16& callingPackage, bool startIfModeDefault) { - return startOpNoThrow(op, uid, callingPackage, startIfModeDefault, - String16("startOpNoThrow from native code")); + return startOpNoThrow(op, uid, callingPackage, startIfModeDefault, String16(), String16()); } int32_t AppOpsManager::startOpNoThrow(int32_t op, int32_t uid, const String16& callingPackage, - bool startIfModeDefault, const String16& message) { + bool startIfModeDefault, const String16& featureId, const String16& message) { sp<IAppOpsService> service = getService(); int32_t mode = service != nullptr ? service->startOperation(getToken(service), op, uid, callingPackage, startIfModeDefault) : APP_OPS_MANAGER_UNAVAILABLE_MODE; if (mode == AppOpsManager::MODE_ALLOWED) { - markAppOpNoted(uid, callingPackage, op, message); + if (message.size() == 0) { + markAppOpNoted(uid, callingPackage, op, featureId, + String16("startOp from native code")); + } else { + markAppOpNoted(uid, callingPackage, op, featureId, message); + } } return mode; @@ -198,7 +207,7 @@ bool AppOpsManager::shouldCollectNotes(int32_t opcode) { } void AppOpsManager::markAppOpNoted(int32_t uid, const String16& packageName, int32_t opCode, - const String16& message) { + const String16& featureId, const String16& message) { // check it the appops needs to be collected and cache result if (appOpsToNote[opCode] == 0) { if (shouldCollectNotes(opCode)) { @@ -212,14 +221,16 @@ void AppOpsManager::markAppOpNoted(int32_t uid, const String16& packageName, int return; } - noteAsyncOp(String16(), uid, packageName, opCode, message); + noteAsyncOp(String16(), uid, packageName, opCode, featureId, message); } void AppOpsManager::noteAsyncOp(const String16& callingPackageName, int32_t uid, - const String16& packageName, int32_t opCode, const String16& message) { + const String16& packageName, int32_t opCode, const String16& featureId, + const String16& message) { sp<IAppOpsService> service = getService(); if (service != nullptr) { - return service->noteAsyncOp(callingPackageName, uid, packageName, opCode, message); + return service->noteAsyncOp(callingPackageName, uid, packageName, opCode, featureId, + message); } } |