Loading services/audiopolicy/service/AudioPolicyService.cpp +78 −34 Original line number Diff line number Diff line Loading @@ -446,17 +446,19 @@ void AudioPolicyService::updateUidStates_l() sp<AudioRecordClient> topActive; sp<AudioRecordClient> latestActive; sp<AudioRecordClient> topSensitiveActive; sp<AudioRecordClient> latestSensitiveActive; nsecs_t topStartNs = 0; nsecs_t latestStartNs = 0; nsecs_t topSensitiveStartNs = 0; nsecs_t latestSensitiveStartNs = 0; bool isA11yOnTop = mUidPolicy->isA11yOnTop(); bool isAssistantOnTop = false; bool isSensitiveActive = false; bool isInCall = mPhoneState == AUDIO_MODE_IN_CALL; bool rttCallActive = (mPhoneState == AUDIO_MODE_IN_CALL || mPhoneState == AUDIO_MODE_IN_COMMUNICATION) bool isInCommunication = mPhoneState == AUDIO_MODE_IN_COMMUNICATION; bool rttCallActive = (isInCall || isInCommunication) && mUidPolicy->isRttEnabled(); bool onlyHotwordActive = true; Loading @@ -479,32 +481,46 @@ void AudioPolicyService::updateUidStates_l() continue; } bool isAssistant = mUidPolicy->isAssistantUid(current->uid); bool isAccessibility = mUidPolicy->isA11yUid(current->uid); if (appState == APP_STATE_TOP && !isAccessibility) { // Clients capturing for Accessibility services are not considered // for top or latest active to avoid masking regular clients started before if (!isAccessibility) { bool isAssistant = mUidPolicy->isAssistantUid(current->uid); bool isPrivacySensitive = (current->attributes.flags & AUDIO_FLAG_CAPTURE_PRIVATE) != 0; if (appState == APP_STATE_TOP) { if (isPrivacySensitive) { if (current->startTimeNs > topSensitiveStartNs) { topSensitiveActive = current; topSensitiveStartNs = current->startTimeNs; } } else { if (current->startTimeNs > topStartNs) { topActive = current; topStartNs = current->startTimeNs; } } if (isAssistant) { isAssistantOnTop = true; } } // Client capturing for HOTWORD or Accessibility services not considered // Clients capturing for HOTWORD are not considered // for latest active to avoid masking regular clients started before if (current->startTimeNs > latestStartNs && !(current->attributes.source == AUDIO_SOURCE_HOTWORD || ((isA11yOnTop || rttCallActive) && isAssistant)) && !isAccessibility) { latestActive = current; latestStartNs = current->startTimeNs; } if ((current->attributes.flags & AUDIO_FLAG_CAPTURE_PRIVATE) != 0) { if (!(current->attributes.source == AUDIO_SOURCE_HOTWORD || ((isA11yOnTop || rttCallActive) && isAssistant))) { if (isPrivacySensitive) { if (current->startTimeNs > latestSensitiveStartNs) { latestSensitiveActive = current; latestSensitiveStartNs = current->startTimeNs; } isSensitiveActive = true; } else { if (current->startTimeNs > latestStartNs) { latestActive = current; latestStartNs = current->startTimeNs; } } } } if (current->attributes.source != AUDIO_SOURCE_HOTWORD) { onlyHotwordActive = false; Loading @@ -514,6 +530,21 @@ void AudioPolicyService::updateUidStates_l() // if no active client with UI on Top, consider latest active as top if (topActive == nullptr) { topActive = latestActive; topStartNs = latestStartNs; } if (topSensitiveActive == nullptr) { topSensitiveActive = latestSensitiveActive; topSensitiveStartNs = latestSensitiveStartNs; } // If both privacy sensitive and regular capture are active: // if the regular capture is privileged // allow concurrency // else // favor the privacy sensitive case if (topActive != nullptr && topSensitiveActive != nullptr && !topActive->canCaptureCallOrOutput) { topActive = nullptr; } for (size_t i =0; i < mAudioRecordClients.size(); i++) { Loading @@ -524,8 +555,17 @@ void AudioPolicyService::updateUidStates_l() audio_source_t source = current->attributes.source; bool isTopOrLatestActive = topActive == nullptr ? false : current->uid == topActive->uid; bool isLatestSensitive = latestSensitiveActive == nullptr ? false : current->uid == latestSensitiveActive->uid; bool isTopOrLatestSensitive = topSensitiveActive == nullptr ? false : current->uid == topSensitiveActive->uid; auto canCaptureIfInCallOrCommunication = [&](const auto &recordClient) { bool canCaptureCall = recordClient->canCaptureCallOrOutput; bool canCaptureCommunication = recordClient->canCaptureCallOrOutput || recordClient->uid == mPhoneStateOwnerUid || isServiceUid(mPhoneStateOwnerUid); return !(isInCall && !canCaptureCall) && !(isInCommunication && !canCaptureCommunication); }; // By default allow capture if: // The assistant is not on TOP Loading @@ -533,9 +573,10 @@ void AudioPolicyService::updateUidStates_l() // AND there is no active privacy sensitive capture or call // OR client has CAPTURE_AUDIO_OUTPUT privileged permission bool allowCapture = !isAssistantOnTop && ((isTopOrLatestActive && !isLatestSensitive) || isLatestSensitive) && !(isSensitiveActive && !(isLatestSensitive || current->canCaptureCallOrOutput)) && !(isInCall && !current->canCaptureCallOrOutput); && (isTopOrLatestActive || isTopOrLatestSensitive) && !(isSensitiveActive && !(isTopOrLatestSensitive || current->canCaptureCallOrOutput)) && canCaptureIfInCallOrCommunication(current); if (isVirtualSource(source)) { // Allow capture for virtual (remote submix, call audio TX or RX...) sources Loading @@ -554,8 +595,9 @@ void AudioPolicyService::updateUidStates_l() } } else { if (((isAssistantOnTop && source == AUDIO_SOURCE_VOICE_RECOGNITION) || source == AUDIO_SOURCE_HOTWORD) && (!(isSensitiveActive || isInCall) || current->canCaptureCallOrOutput)) { source == AUDIO_SOURCE_HOTWORD) && !(isSensitiveActive && !current->canCaptureCallOrOutput) && canCaptureIfInCallOrCommunication(current)) { allowCapture = true; } } Loading @@ -567,7 +609,8 @@ void AudioPolicyService::updateUidStates_l() // OR // Is on TOP AND the source is VOICE_RECOGNITION or HOTWORD if (!isAssistantOnTop && (!(isSensitiveActive || isInCall) || current->canCaptureCallOrOutput)) { && !(isSensitiveActive && !current->canCaptureCallOrOutput) && canCaptureIfInCallOrCommunication(current)) { allowCapture = true; } if (isA11yOnTop) { Loading @@ -580,7 +623,8 @@ void AudioPolicyService::updateUidStates_l() // All active clients are using HOTWORD source // AND no call is active // OR client has CAPTURE_AUDIO_OUTPUT privileged permission if (onlyHotwordActive && !(isInCall && !current->canCaptureCallOrOutput)) { if (onlyHotwordActive && canCaptureIfInCallOrCommunication(current)) { allowCapture = true; } } Loading services/camera/libcameraservice/api2/HeicEncoderInfoManager.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -91,6 +91,8 @@ bool HeicEncoderInfoManager::isSizeSupported(int32_t width, int32_t height, bool // The "measured-frame-rate-WIDTHxHEIGHT-range" key is optional. // Hardcode to some default value (3.33ms * tile count) based on resolution. *stall = 3333333LL * width * height / (kGridWidth * kGridHeight); *useHeic = chooseHeic; *useGrid = enableGrid; return true; } Loading Loading @@ -275,9 +277,13 @@ bool HeicEncoderInfoManager::getHevcCodecDetails( ALOGE("%s: Failed to get codec info for %s", __FUNCTION__, mime); break; } ALOGV("%s: [%s] codec found", __FUNCTION__, info->getCodecName()); // Filter out software ones as they may be too slow if (!(info->getAttributes() & MediaCodecInfo::kFlagIsHardwareAccelerated)) { ALOGV("%s: [%s] Filter out software ones as they may be too slow", __FUNCTION__, info->getCodecName()); continue; } Loading services/camera/libcameraservice/common/CameraProviderManager.cpp +21 −8 Original line number Diff line number Diff line Loading @@ -326,8 +326,11 @@ status_t CameraProviderManager::setTorchMode(const std::string &id, bool enabled // Pass the camera ID to start interface so that it will save it to the map of ICameraProviders // that are currently in use. const sp<provider::V2_4::ICameraProvider> interface = deviceInfo->mParentProvider->startProviderInterface(); sp<ProviderInfo> parentProvider = deviceInfo->mParentProvider.promote(); if (parentProvider == nullptr) { return DEAD_OBJECT; } const sp<provider::V2_4::ICameraProvider> interface = parentProvider->startProviderInterface(); if (interface == nullptr) { return DEAD_OBJECT; } Loading Loading @@ -380,8 +383,11 @@ status_t CameraProviderManager::openSession(const std::string &id, if (deviceInfo == nullptr) return NAME_NOT_FOUND; auto *deviceInfo3 = static_cast<ProviderInfo::DeviceInfo3*>(deviceInfo); const sp<provider::V2_4::ICameraProvider> provider = deviceInfo->mParentProvider->startProviderInterface(); sp<ProviderInfo> parentProvider = deviceInfo->mParentProvider.promote(); if (parentProvider == nullptr) { return DEAD_OBJECT; } const sp<provider::V2_4::ICameraProvider> provider = parentProvider->startProviderInterface(); if (provider == nullptr) { return DEAD_OBJECT; } Loading Loading @@ -423,8 +429,11 @@ status_t CameraProviderManager::openSession(const std::string &id, if (deviceInfo == nullptr) return NAME_NOT_FOUND; auto *deviceInfo1 = static_cast<ProviderInfo::DeviceInfo1*>(deviceInfo); const sp<provider::V2_4::ICameraProvider> provider = deviceInfo->mParentProvider->startProviderInterface(); sp<ProviderInfo> parentProvider = deviceInfo->mParentProvider.promote(); if (parentProvider == nullptr) { return DEAD_OBJECT; } const sp<provider::V2_4::ICameraProvider> provider = parentProvider->startProviderInterface(); if (provider == nullptr) { return DEAD_OBJECT; } Loading Loading @@ -999,7 +1008,8 @@ status_t CameraProviderManager::ProviderInfo::DeviceInfo3::fillHeicStreamCombina if (sizeAvail) continue; int64_t stall = 0; bool useHeic, useGrid; bool useHeic = false; bool useGrid = false; if (camera3::HeicCompositeStream::isSizeSupportedByHeifEncoder( halStreamConfigs.data.i32[i+1], halStreamConfigs.data.i32[i+2], &useHeic, &useGrid, &stall)) { Loading Loading @@ -2044,7 +2054,10 @@ sp<InterfaceT> CameraProviderManager::ProviderInfo::DeviceInfo::startDeviceInter sp<InterfaceT> device; ATRACE_CALL(); if (mSavedInterface == nullptr) { device = mParentProvider->startDeviceInterface<InterfaceT>(mName); sp<ProviderInfo> parentProvider = mParentProvider.promote(); if (parentProvider != nullptr) { device = parentProvider->startDeviceInterface<InterfaceT>(mName); } } else { device = (InterfaceT *) mSavedInterface.get(); } Loading services/camera/libcameraservice/common/CameraProviderManager.h +1 −1 Original line number Diff line number Diff line Loading @@ -447,7 +447,7 @@ private: std::map<std::string, hardware::camera::common::V1_0::CameraDeviceStatus> mPhysicalStatus; sp<ProviderInfo> mParentProvider; wp<ProviderInfo> mParentProvider; bool hasFlashUnit() const { return mHasFlashUnit; } bool supportNativeZoomRatio() const { return mSupportNativeZoomRatio; } Loading services/mediametrics/MediaMetricsService.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -113,6 +113,7 @@ status_t MediaMetricsService::submitInternal(mediametrics::Item *item, bool rele case AID_MEDIA_CODEC: case AID_MEDIA_EX: case AID_MEDIA_DRM: // case AID_SHELL: // DEBUG ONLY - used for mediametrics_tests to add new keys case AID_SYSTEM: // trusted source, only override default values isTrusted = true; Loading Loading @@ -145,9 +146,10 @@ status_t MediaMetricsService::submitInternal(mediametrics::Item *item, bool rele } } ALOGV("%s: given uid %d; sanitized uid: %d sanitized pkg: %s " ALOGV("%s: isTrusted:%d given uid %d; sanitized uid: %d sanitized pkg: %s " "sanitized pkg version: %lld", __func__, (int)isTrusted, uid_given, item->getUid(), item->getPkgName().c_str(), (long long)item->getPkgVersionCode()); Loading Loading
services/audiopolicy/service/AudioPolicyService.cpp +78 −34 Original line number Diff line number Diff line Loading @@ -446,17 +446,19 @@ void AudioPolicyService::updateUidStates_l() sp<AudioRecordClient> topActive; sp<AudioRecordClient> latestActive; sp<AudioRecordClient> topSensitiveActive; sp<AudioRecordClient> latestSensitiveActive; nsecs_t topStartNs = 0; nsecs_t latestStartNs = 0; nsecs_t topSensitiveStartNs = 0; nsecs_t latestSensitiveStartNs = 0; bool isA11yOnTop = mUidPolicy->isA11yOnTop(); bool isAssistantOnTop = false; bool isSensitiveActive = false; bool isInCall = mPhoneState == AUDIO_MODE_IN_CALL; bool rttCallActive = (mPhoneState == AUDIO_MODE_IN_CALL || mPhoneState == AUDIO_MODE_IN_COMMUNICATION) bool isInCommunication = mPhoneState == AUDIO_MODE_IN_COMMUNICATION; bool rttCallActive = (isInCall || isInCommunication) && mUidPolicy->isRttEnabled(); bool onlyHotwordActive = true; Loading @@ -479,32 +481,46 @@ void AudioPolicyService::updateUidStates_l() continue; } bool isAssistant = mUidPolicy->isAssistantUid(current->uid); bool isAccessibility = mUidPolicy->isA11yUid(current->uid); if (appState == APP_STATE_TOP && !isAccessibility) { // Clients capturing for Accessibility services are not considered // for top or latest active to avoid masking regular clients started before if (!isAccessibility) { bool isAssistant = mUidPolicy->isAssistantUid(current->uid); bool isPrivacySensitive = (current->attributes.flags & AUDIO_FLAG_CAPTURE_PRIVATE) != 0; if (appState == APP_STATE_TOP) { if (isPrivacySensitive) { if (current->startTimeNs > topSensitiveStartNs) { topSensitiveActive = current; topSensitiveStartNs = current->startTimeNs; } } else { if (current->startTimeNs > topStartNs) { topActive = current; topStartNs = current->startTimeNs; } } if (isAssistant) { isAssistantOnTop = true; } } // Client capturing for HOTWORD or Accessibility services not considered // Clients capturing for HOTWORD are not considered // for latest active to avoid masking regular clients started before if (current->startTimeNs > latestStartNs && !(current->attributes.source == AUDIO_SOURCE_HOTWORD || ((isA11yOnTop || rttCallActive) && isAssistant)) && !isAccessibility) { latestActive = current; latestStartNs = current->startTimeNs; } if ((current->attributes.flags & AUDIO_FLAG_CAPTURE_PRIVATE) != 0) { if (!(current->attributes.source == AUDIO_SOURCE_HOTWORD || ((isA11yOnTop || rttCallActive) && isAssistant))) { if (isPrivacySensitive) { if (current->startTimeNs > latestSensitiveStartNs) { latestSensitiveActive = current; latestSensitiveStartNs = current->startTimeNs; } isSensitiveActive = true; } else { if (current->startTimeNs > latestStartNs) { latestActive = current; latestStartNs = current->startTimeNs; } } } } if (current->attributes.source != AUDIO_SOURCE_HOTWORD) { onlyHotwordActive = false; Loading @@ -514,6 +530,21 @@ void AudioPolicyService::updateUidStates_l() // if no active client with UI on Top, consider latest active as top if (topActive == nullptr) { topActive = latestActive; topStartNs = latestStartNs; } if (topSensitiveActive == nullptr) { topSensitiveActive = latestSensitiveActive; topSensitiveStartNs = latestSensitiveStartNs; } // If both privacy sensitive and regular capture are active: // if the regular capture is privileged // allow concurrency // else // favor the privacy sensitive case if (topActive != nullptr && topSensitiveActive != nullptr && !topActive->canCaptureCallOrOutput) { topActive = nullptr; } for (size_t i =0; i < mAudioRecordClients.size(); i++) { Loading @@ -524,8 +555,17 @@ void AudioPolicyService::updateUidStates_l() audio_source_t source = current->attributes.source; bool isTopOrLatestActive = topActive == nullptr ? false : current->uid == topActive->uid; bool isLatestSensitive = latestSensitiveActive == nullptr ? false : current->uid == latestSensitiveActive->uid; bool isTopOrLatestSensitive = topSensitiveActive == nullptr ? false : current->uid == topSensitiveActive->uid; auto canCaptureIfInCallOrCommunication = [&](const auto &recordClient) { bool canCaptureCall = recordClient->canCaptureCallOrOutput; bool canCaptureCommunication = recordClient->canCaptureCallOrOutput || recordClient->uid == mPhoneStateOwnerUid || isServiceUid(mPhoneStateOwnerUid); return !(isInCall && !canCaptureCall) && !(isInCommunication && !canCaptureCommunication); }; // By default allow capture if: // The assistant is not on TOP Loading @@ -533,9 +573,10 @@ void AudioPolicyService::updateUidStates_l() // AND there is no active privacy sensitive capture or call // OR client has CAPTURE_AUDIO_OUTPUT privileged permission bool allowCapture = !isAssistantOnTop && ((isTopOrLatestActive && !isLatestSensitive) || isLatestSensitive) && !(isSensitiveActive && !(isLatestSensitive || current->canCaptureCallOrOutput)) && !(isInCall && !current->canCaptureCallOrOutput); && (isTopOrLatestActive || isTopOrLatestSensitive) && !(isSensitiveActive && !(isTopOrLatestSensitive || current->canCaptureCallOrOutput)) && canCaptureIfInCallOrCommunication(current); if (isVirtualSource(source)) { // Allow capture for virtual (remote submix, call audio TX or RX...) sources Loading @@ -554,8 +595,9 @@ void AudioPolicyService::updateUidStates_l() } } else { if (((isAssistantOnTop && source == AUDIO_SOURCE_VOICE_RECOGNITION) || source == AUDIO_SOURCE_HOTWORD) && (!(isSensitiveActive || isInCall) || current->canCaptureCallOrOutput)) { source == AUDIO_SOURCE_HOTWORD) && !(isSensitiveActive && !current->canCaptureCallOrOutput) && canCaptureIfInCallOrCommunication(current)) { allowCapture = true; } } Loading @@ -567,7 +609,8 @@ void AudioPolicyService::updateUidStates_l() // OR // Is on TOP AND the source is VOICE_RECOGNITION or HOTWORD if (!isAssistantOnTop && (!(isSensitiveActive || isInCall) || current->canCaptureCallOrOutput)) { && !(isSensitiveActive && !current->canCaptureCallOrOutput) && canCaptureIfInCallOrCommunication(current)) { allowCapture = true; } if (isA11yOnTop) { Loading @@ -580,7 +623,8 @@ void AudioPolicyService::updateUidStates_l() // All active clients are using HOTWORD source // AND no call is active // OR client has CAPTURE_AUDIO_OUTPUT privileged permission if (onlyHotwordActive && !(isInCall && !current->canCaptureCallOrOutput)) { if (onlyHotwordActive && canCaptureIfInCallOrCommunication(current)) { allowCapture = true; } } Loading
services/camera/libcameraservice/api2/HeicEncoderInfoManager.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -91,6 +91,8 @@ bool HeicEncoderInfoManager::isSizeSupported(int32_t width, int32_t height, bool // The "measured-frame-rate-WIDTHxHEIGHT-range" key is optional. // Hardcode to some default value (3.33ms * tile count) based on resolution. *stall = 3333333LL * width * height / (kGridWidth * kGridHeight); *useHeic = chooseHeic; *useGrid = enableGrid; return true; } Loading Loading @@ -275,9 +277,13 @@ bool HeicEncoderInfoManager::getHevcCodecDetails( ALOGE("%s: Failed to get codec info for %s", __FUNCTION__, mime); break; } ALOGV("%s: [%s] codec found", __FUNCTION__, info->getCodecName()); // Filter out software ones as they may be too slow if (!(info->getAttributes() & MediaCodecInfo::kFlagIsHardwareAccelerated)) { ALOGV("%s: [%s] Filter out software ones as they may be too slow", __FUNCTION__, info->getCodecName()); continue; } Loading
services/camera/libcameraservice/common/CameraProviderManager.cpp +21 −8 Original line number Diff line number Diff line Loading @@ -326,8 +326,11 @@ status_t CameraProviderManager::setTorchMode(const std::string &id, bool enabled // Pass the camera ID to start interface so that it will save it to the map of ICameraProviders // that are currently in use. const sp<provider::V2_4::ICameraProvider> interface = deviceInfo->mParentProvider->startProviderInterface(); sp<ProviderInfo> parentProvider = deviceInfo->mParentProvider.promote(); if (parentProvider == nullptr) { return DEAD_OBJECT; } const sp<provider::V2_4::ICameraProvider> interface = parentProvider->startProviderInterface(); if (interface == nullptr) { return DEAD_OBJECT; } Loading Loading @@ -380,8 +383,11 @@ status_t CameraProviderManager::openSession(const std::string &id, if (deviceInfo == nullptr) return NAME_NOT_FOUND; auto *deviceInfo3 = static_cast<ProviderInfo::DeviceInfo3*>(deviceInfo); const sp<provider::V2_4::ICameraProvider> provider = deviceInfo->mParentProvider->startProviderInterface(); sp<ProviderInfo> parentProvider = deviceInfo->mParentProvider.promote(); if (parentProvider == nullptr) { return DEAD_OBJECT; } const sp<provider::V2_4::ICameraProvider> provider = parentProvider->startProviderInterface(); if (provider == nullptr) { return DEAD_OBJECT; } Loading Loading @@ -423,8 +429,11 @@ status_t CameraProviderManager::openSession(const std::string &id, if (deviceInfo == nullptr) return NAME_NOT_FOUND; auto *deviceInfo1 = static_cast<ProviderInfo::DeviceInfo1*>(deviceInfo); const sp<provider::V2_4::ICameraProvider> provider = deviceInfo->mParentProvider->startProviderInterface(); sp<ProviderInfo> parentProvider = deviceInfo->mParentProvider.promote(); if (parentProvider == nullptr) { return DEAD_OBJECT; } const sp<provider::V2_4::ICameraProvider> provider = parentProvider->startProviderInterface(); if (provider == nullptr) { return DEAD_OBJECT; } Loading Loading @@ -999,7 +1008,8 @@ status_t CameraProviderManager::ProviderInfo::DeviceInfo3::fillHeicStreamCombina if (sizeAvail) continue; int64_t stall = 0; bool useHeic, useGrid; bool useHeic = false; bool useGrid = false; if (camera3::HeicCompositeStream::isSizeSupportedByHeifEncoder( halStreamConfigs.data.i32[i+1], halStreamConfigs.data.i32[i+2], &useHeic, &useGrid, &stall)) { Loading Loading @@ -2044,7 +2054,10 @@ sp<InterfaceT> CameraProviderManager::ProviderInfo::DeviceInfo::startDeviceInter sp<InterfaceT> device; ATRACE_CALL(); if (mSavedInterface == nullptr) { device = mParentProvider->startDeviceInterface<InterfaceT>(mName); sp<ProviderInfo> parentProvider = mParentProvider.promote(); if (parentProvider != nullptr) { device = parentProvider->startDeviceInterface<InterfaceT>(mName); } } else { device = (InterfaceT *) mSavedInterface.get(); } Loading
services/camera/libcameraservice/common/CameraProviderManager.h +1 −1 Original line number Diff line number Diff line Loading @@ -447,7 +447,7 @@ private: std::map<std::string, hardware::camera::common::V1_0::CameraDeviceStatus> mPhysicalStatus; sp<ProviderInfo> mParentProvider; wp<ProviderInfo> mParentProvider; bool hasFlashUnit() const { return mHasFlashUnit; } bool supportNativeZoomRatio() const { return mSupportNativeZoomRatio; } Loading
services/mediametrics/MediaMetricsService.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -113,6 +113,7 @@ status_t MediaMetricsService::submitInternal(mediametrics::Item *item, bool rele case AID_MEDIA_CODEC: case AID_MEDIA_EX: case AID_MEDIA_DRM: // case AID_SHELL: // DEBUG ONLY - used for mediametrics_tests to add new keys case AID_SYSTEM: // trusted source, only override default values isTrusted = true; Loading Loading @@ -145,9 +146,10 @@ status_t MediaMetricsService::submitInternal(mediametrics::Item *item, bool rele } } ALOGV("%s: given uid %d; sanitized uid: %d sanitized pkg: %s " ALOGV("%s: isTrusted:%d given uid %d; sanitized uid: %d sanitized pkg: %s " "sanitized pkg version: %lld", __func__, (int)isTrusted, uid_given, item->getUid(), item->getPkgName().c_str(), (long long)item->getPkgVersionCode()); Loading