diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2017-06-13 22:34:24 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-06-13 22:34:25 +0000 |
commit | 1f50a2c0e0a8e76832b7743e474d8ad0323e8506 (patch) | |
tree | 914418a8c95170ac8e62df1c76eeb6a60654c805 /services/sensorservice | |
parent | 771666079bbec3753ae114d41712f008f24e5590 (diff) | |
parent | 58d450af6d956538e938661bbe7aef9f32e50bad (diff) | |
download | native-1f50a2c0e0a8e76832b7743e474d8ad0323e8506.tar.gz |
Merge "Adding package name for HIDL connection and default package name"
Diffstat (limited to 'services/sensorservice')
-rw-r--r-- | services/sensorservice/SensorService.cpp | 10 | ||||
-rw-r--r-- | services/sensorservice/hidl/Android.bp | 1 | ||||
-rw-r--r-- | services/sensorservice/hidl/SensorManager.cpp | 7 |
3 files changed, 15 insertions, 3 deletions
diff --git a/services/sensorservice/SensorService.cpp b/services/sensorservice/SensorService.cpp index 209eea5202..4e99756663 100644 --- a/services/sensorservice/SensorService.cpp +++ b/services/sensorservice/SensorService.cpp @@ -933,8 +933,14 @@ sp<ISensorEventConnection> SensorService::createSensorEventConnection(const Stri } uid_t uid = IPCThreadState::self()->getCallingUid(); - sp<SensorEventConnection> result(new SensorEventConnection(this, uid, packageName, - requestedMode == DATA_INJECTION, opPackageName)); + pid_t pid = IPCThreadState::self()->getCallingPid(); + + String8 connPackageName = + (packageName == "") ? String8::format("unknown_package_pid_%d", pid) : packageName; + String16 connOpPackageName = + (opPackageName == String16("")) ? String16(connPackageName) : opPackageName; + sp<SensorEventConnection> result(new SensorEventConnection(this, uid, connPackageName, + requestedMode == DATA_INJECTION, connOpPackageName)); if (requestedMode == DATA_INJECTION) { if (mActiveConnections.indexOf(result) < 0) { mActiveConnections.add(result); diff --git a/services/sensorservice/hidl/Android.bp b/services/sensorservice/hidl/Android.bp index 8bbc4c59a8..02c13fa579 100644 --- a/services/sensorservice/hidl/Android.bp +++ b/services/sensorservice/hidl/Android.bp @@ -14,6 +14,7 @@ cc_library_shared { "libbase", "libhidlbase", "libhidltransport", + "libhwbinder", "libutils", "libsensor", "android.frameworks.sensorservice@1.0", diff --git a/services/sensorservice/hidl/SensorManager.cpp b/services/sensorservice/hidl/SensorManager.cpp index 991944e8b4..a5e23cab32 100644 --- a/services/sensorservice/hidl/SensorManager.cpp +++ b/services/sensorservice/hidl/SensorManager.cpp @@ -30,6 +30,9 @@ #include "DirectReportChannel.h" #include "utils.h" +#include <hwbinder/IPCThreadState.h> +#include <utils/String8.h> + namespace android { namespace frameworks { namespace sensorservice { @@ -172,7 +175,9 @@ Return<void> SensorManager::createEventQueue( } sp<::android::Looper> looper = getLooper(); - sp<::android::SensorEventQueue> internalQueue = getInternalManager().createEventQueue(); + String8 package(String8::format("hidl_client_pid_%d", + android::hardware::IPCThreadState::self()->getCallingPid())); + sp<::android::SensorEventQueue> internalQueue = getInternalManager().createEventQueue(package); if (internalQueue == nullptr) { LOG(WARNING) << "::android::SensorManager::createEventQueue returns nullptr."; _hidl_cb(nullptr, Result::UNKNOWN_ERROR); |