Merge "cameraserver: Fix logging for vendor clients in connectDevice" into qt-r1-dev

gugelfrei
Jayant Chowdhary 5 years ago committed by Android (Google) Code Review
commit 418653c613

@ -1149,6 +1149,8 @@ status_t CameraService::handleEvictionsLocked(const String8& cameraId, int clien
clientPid, clientPid,
states[states.size() - 1]); states[states.size() - 1]);
resource_policy::ClientPriority clientPriority = clientDescriptor->getPriority();
// Find clients that would be evicted // Find clients that would be evicted
auto evicted = mActiveClientManager.wouldEvict(clientDescriptor); auto evicted = mActiveClientManager.wouldEvict(clientDescriptor);
@ -1166,8 +1168,7 @@ status_t CameraService::handleEvictionsLocked(const String8& cameraId, int clien
String8 msg = String8::format("%s : DENIED connect device %s client for package %s " String8 msg = String8::format("%s : DENIED connect device %s client for package %s "
"(PID %d, score %d state %d) due to eviction policy", curTime.string(), "(PID %d, score %d state %d) due to eviction policy", curTime.string(),
cameraId.string(), packageName.string(), clientPid, cameraId.string(), packageName.string(), clientPid,
priorityScores[priorityScores.size() - 1], clientPriority.getScore(), clientPriority.getState());
states[states.size() - 1]);
for (auto& i : incompatibleClients) { for (auto& i : incompatibleClients) {
msg.appendFormat("\n - Blocked by existing device %s client for package %s" msg.appendFormat("\n - Blocked by existing device %s client for package %s"
@ -1212,9 +1213,8 @@ status_t CameraService::handleEvictionsLocked(const String8& cameraId, int clien
i->getKey().string(), String8{clientSp->getPackageName()}.string(), i->getKey().string(), String8{clientSp->getPackageName()}.string(),
i->getOwnerId(), i->getPriority().getScore(), i->getOwnerId(), i->getPriority().getScore(),
i->getPriority().getState(), cameraId.string(), i->getPriority().getState(), cameraId.string(),
packageName.string(), clientPid, packageName.string(), clientPid, clientPriority.getScore(),
priorityScores[priorityScores.size() - 1], clientPriority.getState()));
states[states.size() - 1]));
// Notify the client of disconnection // Notify the client of disconnection
clientSp->notifyError(hardware::camera2::ICameraDeviceCallbacks::ERROR_CAMERA_DISCONNECTED, clientSp->notifyError(hardware::camera2::ICameraDeviceCallbacks::ERROR_CAMERA_DISCONNECTED,
@ -1348,14 +1348,19 @@ Status CameraService::connectDevice(
Status ret = Status::ok(); Status ret = Status::ok();
String8 id = String8(cameraId); String8 id = String8(cameraId);
sp<CameraDeviceClient> client = nullptr; sp<CameraDeviceClient> client = nullptr;
String16 clientPackageNameAdj = clientPackageName;
if (hardware::IPCThreadState::self()->isServingCall()) {
std::string vendorClient =
StringPrintf("vendor.client.pid<%d>", CameraThreadState::getCallingPid());
clientPackageNameAdj = String16(vendorClient.c_str());
}
ret = connectHelper<hardware::camera2::ICameraDeviceCallbacks,CameraDeviceClient>(cameraCb, id, ret = connectHelper<hardware::camera2::ICameraDeviceCallbacks,CameraDeviceClient>(cameraCb, id,
/*api1CameraId*/-1, /*api1CameraId*/-1,
CAMERA_HAL_API_VERSION_UNSPECIFIED, clientPackageName, CAMERA_HAL_API_VERSION_UNSPECIFIED, clientPackageNameAdj,
clientUid, USE_CALLING_PID, API_2, /*shimUpdateOnly*/ false, /*out*/client); clientUid, USE_CALLING_PID, API_2, /*shimUpdateOnly*/ false, /*out*/client);
if(!ret.isOk()) { if(!ret.isOk()) {
logRejected(id, CameraThreadState::getCallingPid(), String8(clientPackageName), logRejected(id, CameraThreadState::getCallingPid(), String8(clientPackageNameAdj),
ret.toString8()); ret.toString8());
return ret; return ret;
} }
@ -2368,11 +2373,7 @@ CameraService::BasicClient::BasicClient(const sp<CameraService>& cameraService,
} }
mClientPackageName = packages[0]; mClientPackageName = packages[0];
} }
if (hardware::IPCThreadState::self()->isServingCall()) { if (!hardware::IPCThreadState::self()->isServingCall()) {
std::string vendorClient =
StringPrintf("vendor.client.pid<%d>", CameraThreadState::getCallingPid());
mClientPackageName = String16(vendorClient.c_str());
} else {
mAppOpsManager = std::make_unique<AppOpsManager>(); mAppOpsManager = std::make_unique<AppOpsManager>();
} }
} }

Loading…
Cancel
Save