diff options
6 files changed, 108 insertions, 156 deletions
diff --git a/android/app/src/com/android/bluetooth/gatt/AppAdvertiseStats.java b/android/app/src/com/android/bluetooth/gatt/AppAdvertiseStats.java index d997426cd5..44154b31bd 100644 --- a/android/app/src/com/android/bluetooth/gatt/AppAdvertiseStats.java +++ b/android/app/src/com/android/bluetooth/gatt/AppAdvertiseStats.java @@ -35,7 +35,6 @@ import androidx.annotation.VisibleForTesting; import com.android.bluetooth.BluetoothStatsLog; import com.android.bluetooth.btservice.MetricsLogger; -import com.android.bluetooth.flags.Flags; import java.time.Duration; import java.time.Instant; @@ -219,15 +218,13 @@ class AppAdvertiseStats { } void recordAdvertiseErrorCount(int status) { - if (Flags.bleScanAdvMetricsRedesign()) { - BluetoothStatsLog.write( - BluetoothStatsLog.LE_ADV_ERROR_REPORTED, - new int[] {mAppUid}, - new String[] {mAppName}, - BluetoothStatsLog.LE_ADV_ERROR_REPORTED__LE_ADV_OP_CODE__ERROR_CODE_ON_START, - convertStatusCode(status), - getAttributionTag()); - } + BluetoothStatsLog.write( + BluetoothStatsLog.LE_ADV_ERROR_REPORTED, + new int[] {mAppUid}, + new String[] {mAppName}, + BluetoothStatsLog.LE_ADV_ERROR_REPORTED__LE_ADV_OP_CODE__ERROR_CODE_ON_START, + convertStatusCode(status), + getAttributionTag()); MetricsLogger.getInstance().cacheCount(BluetoothProtoEnums.LE_ADV_ERROR_ON_START_COUNT, 1); } @@ -421,23 +418,21 @@ class AppAdvertiseStats { } private void recordAdvertiseEnableCount(boolean enable, int instanceCount, long durationMs) { - if (Flags.bleScanAdvMetricsRedesign()) { - MetricsLogger.getInstance() - .logAdvStateChanged( - new int[] {mAppUid}, - new String[] {mAppName}, - enable /* enabled */, - convertAdvInterval(mInterval), - convertTxPowerLevel(mTxPowerLevel), - mConnectable, - mPeriodicAdvertisingEnabled, - mScanResponseData != null && mScannable /* hasScanResponse */, - !mLegacy /* isExtendedAdv */, - instanceCount, - durationMs, - mAppImportance, - getAttributionTag()); - } + MetricsLogger.getInstance() + .logAdvStateChanged( + new int[] {mAppUid}, + new String[] {mAppName}, + enable /* enabled */, + convertAdvInterval(mInterval), + convertTxPowerLevel(mTxPowerLevel), + mConnectable, + mPeriodicAdvertisingEnabled, + mScanResponseData != null && mScannable /* hasScanResponse */, + !mLegacy /* isExtendedAdv */, + instanceCount, + durationMs, + mAppImportance, + getAttributionTag()); if (enable) { MetricsLogger.getInstance().cacheCount(BluetoothProtoEnums.LE_ADV_COUNT_ENABLE, 1); if (mConnectable) { diff --git a/android/app/src/com/android/bluetooth/le_scan/AppScanStats.java b/android/app/src/com/android/bluetooth/le_scan/AppScanStats.java index b5090eabd7..07d7209b40 100644 --- a/android/app/src/com/android/bluetooth/le_scan/AppScanStats.java +++ b/android/app/src/com/android/bluetooth/le_scan/AppScanStats.java @@ -34,7 +34,6 @@ import com.android.bluetooth.BluetoothStatsLog; import com.android.bluetooth.Utils.TimeProvider; import com.android.bluetooth.btservice.AdapterService; import com.android.bluetooth.btservice.MetricsLogger; -import com.android.bluetooth.flags.Flags; import com.android.bluetooth.util.WorkSourceUtil; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; @@ -395,24 +394,22 @@ class AppScanStats { private void recordScanAppCountMetricsStart(LastScan scan) { MetricsLogger logger = MetricsLogger.getInstance(); logger.cacheCount(BluetoothProtoEnums.LE_SCAN_COUNT_TOTAL_ENABLE, 1); - if (Flags.bleScanAdvMetricsRedesign()) { - logger.logAppScanStateChanged( - mWorkSourceUtil.getUids(), - mWorkSourceUtil.getTags(), - true /* enabled */, - scan.isFilterScan, - scan.isCallbackScan, - convertScanCallbackType(scan.scanCallbackType), - convertScanType(scan), - convertScanMode(scan.scanMode), - scan.reportDelayMillis, - 0 /* app_scan_duration_ms */, - mOngoingScans.size(), - sIsScreenOn, - isAppDead, - mAppImportance, - scan.getAttributionTag()); - } + logger.logAppScanStateChanged( + mWorkSourceUtil.getUids(), + mWorkSourceUtil.getTags(), + true /* enabled */, + scan.isFilterScan, + scan.isCallbackScan, + convertScanCallbackType(scan.scanCallbackType), + convertScanType(scan), + convertScanMode(scan.scanMode), + scan.reportDelayMillis, + 0 /* app_scan_duration_ms */, + mOngoingScans.size(), + sIsScreenOn, + isAppDead, + mAppImportance, + scan.getAttributionTag()); if (scan.isAutoBatchScan) { logger.cacheCount(BluetoothProtoEnums.LE_SCAN_COUNT_AUTO_BATCH_ENABLE, 1); } else if (scan.isBatchScan) { @@ -429,24 +426,22 @@ class AppScanStats { private void recordScanAppCountMetricsStop(LastScan scan) { MetricsLogger logger = MetricsLogger.getInstance(); logger.cacheCount(BluetoothProtoEnums.LE_SCAN_COUNT_TOTAL_DISABLE, 1); - if (Flags.bleScanAdvMetricsRedesign()) { - logger.logAppScanStateChanged( - mWorkSourceUtil.getUids(), - mWorkSourceUtil.getTags(), - false /* enabled */, - scan.isFilterScan, - scan.isCallbackScan, - convertScanCallbackType(scan.scanCallbackType), - convertScanType(scan), - convertScanMode(scan.scanMode), - scan.reportDelayMillis, - scan.duration, - mOngoingScans.size(), - sIsScreenOn, - isAppDead, - mAppImportance, - scan.getAttributionTag()); - } + logger.logAppScanStateChanged( + mWorkSourceUtil.getUids(), + mWorkSourceUtil.getTags(), + false /* enabled */, + scan.isFilterScan, + scan.isCallbackScan, + convertScanCallbackType(scan.scanCallbackType), + convertScanType(scan), + convertScanMode(scan.scanMode), + scan.reportDelayMillis, + scan.duration, + mOngoingScans.size(), + sIsScreenOn, + isAppDead, + mAppImportance, + scan.getAttributionTag()); if (scan.isAutoBatchScan) { logger.cacheCount(BluetoothProtoEnums.LE_SCAN_COUNT_AUTO_BATCH_DISABLE, 1); } else if (scan.isBatchScan) { @@ -523,49 +518,43 @@ class AppScanStats { } synchronized void recordScanTimeoutCountMetrics(int scannerId, long scanTimeoutMillis) { - if (Flags.bleScanAdvMetricsRedesign()) { - BluetoothStatsLog.write( - BluetoothStatsLog.LE_SCAN_ABUSED, - mWorkSourceUtil.getUids(), - mWorkSourceUtil.getTags(), - convertScanType(getScanFromScannerId(scannerId)), - BluetoothStatsLog.LE_SCAN_ABUSED__LE_SCAN_ABUSE_REASON__REASON_SCAN_TIMEOUT, - scanTimeoutMillis, - getAttributionTagFromScannerId(scannerId)); - } + BluetoothStatsLog.write( + BluetoothStatsLog.LE_SCAN_ABUSED, + mWorkSourceUtil.getUids(), + mWorkSourceUtil.getTags(), + convertScanType(getScanFromScannerId(scannerId)), + BluetoothStatsLog.LE_SCAN_ABUSED__LE_SCAN_ABUSE_REASON__REASON_SCAN_TIMEOUT, + scanTimeoutMillis, + getAttributionTagFromScannerId(scannerId)); MetricsLogger.getInstance() .cacheCount(BluetoothProtoEnums.LE_SCAN_ABUSE_COUNT_SCAN_TIMEOUT, 1); } synchronized void recordHwFilterNotAvailableCountMetrics( int scannerId, long numOfFilterSupported) { - if (Flags.bleScanAdvMetricsRedesign()) { - BluetoothStatsLog.write( - BluetoothStatsLog.LE_SCAN_ABUSED, - mWorkSourceUtil.getUids(), - mWorkSourceUtil.getTags(), - convertScanType(getScanFromScannerId(scannerId)), - BluetoothStatsLog.LE_SCAN_ABUSED__LE_SCAN_ABUSE_REASON__REASON_HW_FILTER_NA, - numOfFilterSupported, - getAttributionTagFromScannerId(scannerId)); - } + BluetoothStatsLog.write( + BluetoothStatsLog.LE_SCAN_ABUSED, + mWorkSourceUtil.getUids(), + mWorkSourceUtil.getTags(), + convertScanType(getScanFromScannerId(scannerId)), + BluetoothStatsLog.LE_SCAN_ABUSED__LE_SCAN_ABUSE_REASON__REASON_HW_FILTER_NA, + numOfFilterSupported, + getAttributionTagFromScannerId(scannerId)); MetricsLogger.getInstance() .cacheCount(BluetoothProtoEnums.LE_SCAN_ABUSE_COUNT_HW_FILTER_NOT_AVAILABLE, 1); } synchronized void recordTrackingHwFilterNotAvailableCountMetrics( int scannerId, long numOfTrackableAdv) { - if (Flags.bleScanAdvMetricsRedesign()) { - BluetoothStatsLog.write( - BluetoothStatsLog.LE_SCAN_ABUSED, - mWorkSourceUtil.getUids(), - mWorkSourceUtil.getTags(), - convertScanType(getScanFromScannerId(scannerId)), - BluetoothStatsLog - .LE_SCAN_ABUSED__LE_SCAN_ABUSE_REASON__REASON_TRACKING_HW_FILTER_NA, - numOfTrackableAdv, - getAttributionTagFromScannerId(scannerId)); - } + BluetoothStatsLog.write( + BluetoothStatsLog.LE_SCAN_ABUSED, + mWorkSourceUtil.getUids(), + mWorkSourceUtil.getTags(), + convertScanType(getScanFromScannerId(scannerId)), + BluetoothStatsLog + .LE_SCAN_ABUSED__LE_SCAN_ABUSE_REASON__REASON_TRACKING_HW_FILTER_NA, + numOfTrackableAdv, + getAttributionTagFromScannerId(scannerId)); MetricsLogger.getInstance() .cacheCount( BluetoothProtoEnums.LE_SCAN_ABUSE_COUNT_TRACKING_HW_FILTER_NOT_AVAILABLE, @@ -608,10 +597,6 @@ class AppScanStats { return false; } recordScanRadioDurationMetrics(timeProvider); - if (!Flags.bleScanAdvMetricsRedesign()) { - sRadioStartTime = 0; - sIsRadioStarted = false; - } } return true; } @@ -627,21 +612,19 @@ class AppScanStats { double scanWeight = getScanWeight(sRadioScanMode) * 0.01; long weightedDuration = (long) (radioScanDuration * scanWeight); - if (Flags.bleScanAdvMetricsRedesign()) { - logger.logRadioScanStopped( - getRadioScanUids(), - getRadioScanTags(), - sRadioScanType, - convertScanMode(sRadioScanMode), - sRadioScanIntervalMs, - sRadioScanWindowMs, - sIsScreenOn, - radioScanDuration, - sRadioScanAppImportance, - getRadioScanAttributionTag()); - sRadioStartTime = 0; - sIsRadioStarted = false; - } + logger.logRadioScanStopped( + getRadioScanUids(), + getRadioScanTags(), + sRadioScanType, + convertScanMode(sRadioScanMode), + sRadioScanIntervalMs, + sRadioScanWindowMs, + sIsScreenOn, + radioScanDuration, + sRadioScanAppImportance, + getRadioScanAttributionTag()); + sRadioStartTime = 0; + sIsRadioStarted = false; if (weightedDuration > 0) { logger.cacheCount(BluetoothProtoEnums.LE_SCAN_RADIO_DURATION_REGULAR, weightedDuration); if (sIsScreenOn) { @@ -711,16 +694,14 @@ class AppScanStats { if (!sIsRadioStarted) { return; } - if (Flags.bleScanAdvMetricsRedesign()) { - BluetoothStatsLog.write( - BluetoothStatsLog.LE_SCAN_RESULT_RECEIVED, - getRadioScanUids(), - getRadioScanTags(), - 1 /* num_results */, - BluetoothStatsLog.LE_SCAN_RESULT_RECEIVED__LE_SCAN_TYPE__SCAN_TYPE_REGULAR, - sIsScreenOn, - getRadioScanAttributionTag()); - } + BluetoothStatsLog.write( + BluetoothStatsLog.LE_SCAN_RESULT_RECEIVED, + getRadioScanUids(), + getRadioScanTags(), + 1 /* num_results */, + BluetoothStatsLog.LE_SCAN_RESULT_RECEIVED__LE_SCAN_TYPE__SCAN_TYPE_REGULAR, + sIsScreenOn, + getRadioScanAttributionTag()); MetricsLogger logger = MetricsLogger.getInstance(); logger.cacheCount(BluetoothProtoEnums.LE_SCAN_RESULTS_COUNT_REGULAR, 1); if (sIsScreenOn) { @@ -736,16 +717,14 @@ class AppScanStats { synchronized (sLock) { isScreenOn = sIsScreenOn; } - if (Flags.bleScanAdvMetricsRedesign()) { - BluetoothStatsLog.write( - BluetoothStatsLog.LE_SCAN_RESULT_RECEIVED, - getRadioScanUids(), - getRadioScanTags(), - numRecords, - BluetoothStatsLog.LE_SCAN_RESULT_RECEIVED__LE_SCAN_TYPE__SCAN_TYPE_BATCH, - sIsScreenOn, - getRadioScanAttributionTag()); - } + BluetoothStatsLog.write( + BluetoothStatsLog.LE_SCAN_RESULT_RECEIVED, + getRadioScanUids(), + getRadioScanTags(), + numRecords, + BluetoothStatsLog.LE_SCAN_RESULT_RECEIVED__LE_SCAN_TYPE__SCAN_TYPE_BATCH, + sIsScreenOn, + getRadioScanAttributionTag()); MetricsLogger logger = MetricsLogger.getInstance(); logger.cacheCount(BluetoothProtoEnums.LE_SCAN_RESULTS_COUNT_BATCH_BUNDLE, 1); logger.cacheCount(BluetoothProtoEnums.LE_SCAN_RESULTS_COUNT_BATCH, numRecords); diff --git a/android/app/src/com/android/bluetooth/le_scan/ScanManager.java b/android/app/src/com/android/bluetooth/le_scan/ScanManager.java index f2e1799921..e31bd36bbb 100644 --- a/android/app/src/com/android/bluetooth/le_scan/ScanManager.java +++ b/android/app/src/com/android/bluetooth/le_scan/ScanManager.java @@ -1292,18 +1292,6 @@ public class ScanManager { && client.mSettings.getScanMode() != ScanSettings.SCAN_MODE_OPPORTUNISTIC) { Log.d(TAG, "start gattClientScanNative from startRegularScan()"); mNativeInterface.gattClientScan(true); - if (!Flags.bleScanAdvMetricsRedesign()) { - if (client.mStats != null - && !AppScanStats.recordScanRadioStart( - client.mScanModeApp, - client.mScannerId, - client.mStats, - getScanWindowMillis(client.mSettings), - getScanIntervalMillis(client.mSettings), - mTimeProvider)) { - Log.w(TAG, "Scan radio already started"); - } - } } } diff --git a/android/app/tests/unit/src/com/android/bluetooth/gatt/AppAdvertiseStatsTest.java b/android/app/tests/unit/src/com/android/bluetooth/gatt/AppAdvertiseStatsTest.java index 01c4000778..e2bcfb75e2 100644 --- a/android/app/tests/unit/src/com/android/bluetooth/gatt/AppAdvertiseStatsTest.java +++ b/android/app/tests/unit/src/com/android/bluetooth/gatt/AppAdvertiseStatsTest.java @@ -305,7 +305,6 @@ public class AppAdvertiseStatsTest { } @Test - @EnableFlags(Flags.FLAG_BLE_SCAN_ADV_METRICS_REDESIGN) public void testAdvertiseCounterMetrics() { int appUid = 0; int id = 1; diff --git a/android/app/tests/unit/src/com/android/bluetooth/le_scan/ScanManagerTest.java b/android/app/tests/unit/src/com/android/bluetooth/le_scan/ScanManagerTest.java index 7059517c66..54a3679ee6 100644 --- a/android/app/tests/unit/src/com/android/bluetooth/le_scan/ScanManagerTest.java +++ b/android/app/tests/unit/src/com/android/bluetooth/le_scan/ScanManagerTest.java @@ -1227,7 +1227,6 @@ public class ScanManagerTest { } @Test - @EnableFlags(Flags.FLAG_BLE_SCAN_ADV_METRICS_REDESIGN) public void testMetricsAppScanScreenOn() { // Set filtered scan flag final boolean isFiltered = true; @@ -1324,7 +1323,6 @@ public class ScanManagerTest { } @Test - @EnableFlags(Flags.FLAG_BLE_SCAN_ADV_METRICS_REDESIGN) public void testMetricsRadioScanScreenOnOffMultiScan() { // Set filtered scan flag final boolean isFiltered = true; diff --git a/flags/gap.aconfig b/flags/gap.aconfig index d12e294ec7..4a03337332 100644 --- a/flags/gap.aconfig +++ b/flags/gap.aconfig @@ -30,13 +30,6 @@ flag { } flag { - name: "ble_scan_adv_metrics_redesign" - namespace: "bluetooth" - description: "Reimplement BLE scan and advertisement metrics logging." - bug: "328303508" -} - -flag { name: "msft_addr_tracking_quirk" namespace: "bluetooth" description: "Scanning with MSFT paddress tracking for Realtek BT controllers" |