From 3b5d19215982aefd2b75b7e7beb770ff1a6f51a2 Mon Sep 17 00:00:00 2001 From: Markus Hintersteiner Date: Tue, 18 Feb 2025 15:28:34 +0100 Subject: [PATCH 1/3] Drop device name --- .../android/core/AnrV2EventProcessor.java | 3 --- .../io/sentry/android/core/ContextUtils.java | 10 ------- .../sentry/android/core/DeviceInfoUtil.java | 4 --- .../sentry/android/core/DeviceInfoUtilTest.kt | 26 ------------------- 4 files changed, 43 deletions(-) diff --git a/sentry-android-core/src/main/java/io/sentry/android/core/AnrV2EventProcessor.java b/sentry-android-core/src/main/java/io/sentry/android/core/AnrV2EventProcessor.java index 216a4424c2a..825c28c7c8f 100644 --- a/sentry-android-core/src/main/java/io/sentry/android/core/AnrV2EventProcessor.java +++ b/sentry-android-core/src/main/java/io/sentry/android/core/AnrV2EventProcessor.java @@ -632,9 +632,6 @@ private void setDevice(final @NotNull SentryBaseEvent event) { @SuppressLint("NewApi") private @NotNull Device getDevice() { Device device = new Device(); - if (options.isSendDefaultPii()) { - device.setName(ContextUtils.getDeviceName(context)); - } device.setManufacturer(Build.MANUFACTURER); device.setBrand(Build.BRAND); device.setFamily(ContextUtils.getFamily(options.getLogger())); diff --git a/sentry-android-core/src/main/java/io/sentry/android/core/ContextUtils.java b/sentry-android-core/src/main/java/io/sentry/android/core/ContextUtils.java index 5dcd901a917..e945df2aa9c 100644 --- a/sentry-android-core/src/main/java/io/sentry/android/core/ContextUtils.java +++ b/sentry-android-core/src/main/java/io/sentry/android/core/ContextUtils.java @@ -14,7 +14,6 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Build; -import android.provider.Settings; import android.util.DisplayMetrics; import io.sentry.ILogger; import io.sentry.SentryLevel; @@ -90,10 +89,6 @@ private ContextUtils() {} // to avoid doing a bunch of Binder calls we use LazyEvaluator to cache the values that are static // during the app process running - private static final @NotNull AndroidLazyEvaluator deviceName = - new AndroidLazyEvaluator<>( - (context) -> Settings.Global.getString(context.getContentResolver(), "device_name")); - private static final @NotNull LazyEvaluator isForegroundImportance = new LazyEvaluator<>( () -> { @@ -403,10 +398,6 @@ public static boolean isForegroundImportance() { } } - static @Nullable String getDeviceName(final @NotNull Context context) { - return deviceName.getValue(context); - } - static @NotNull String[] getArchitectures() { return Build.SUPPORTED_ABIS; } @@ -521,7 +512,6 @@ public static Context getApplicationContext(final @NotNull Context context) { @TestOnly static void resetInstance() { - deviceName.resetValue(); isForegroundImportance.resetValue(); staticPackageInfo33.resetValue(); staticPackageInfo.resetValue(); diff --git a/sentry-android-core/src/main/java/io/sentry/android/core/DeviceInfoUtil.java b/sentry-android-core/src/main/java/io/sentry/android/core/DeviceInfoUtil.java index 3fa131285ec..b2b4c2cdc8a 100644 --- a/sentry-android-core/src/main/java/io/sentry/android/core/DeviceInfoUtil.java +++ b/sentry-android-core/src/main/java/io/sentry/android/core/DeviceInfoUtil.java @@ -101,10 +101,6 @@ public Device collectDeviceInformation( final boolean collectDeviceIO, final boolean collectDynamicData) { // TODO: missing usable memory final @NotNull Device device = new Device(); - - if (options.isSendDefaultPii()) { - device.setName(ContextUtils.getDeviceName(context)); - } device.setManufacturer(Build.MANUFACTURER); device.setBrand(Build.BRAND); device.setFamily(ContextUtils.getFamily(options.getLogger())); diff --git a/sentry-android-core/src/test/java/io/sentry/android/core/DeviceInfoUtilTest.kt b/sentry-android-core/src/test/java/io/sentry/android/core/DeviceInfoUtilTest.kt index c01da4b6e73..d54d6ecdef7 100644 --- a/sentry-android-core/src/test/java/io/sentry/android/core/DeviceInfoUtilTest.kt +++ b/sentry-android-core/src/test/java/io/sentry/android/core/DeviceInfoUtilTest.kt @@ -3,7 +3,6 @@ package io.sentry.android.core import android.content.Context import android.content.Intent import android.os.BatteryManager -import android.provider.Settings import androidx.test.core.app.ApplicationProvider import androidx.test.ext.junit.runners.AndroidJUnit4 import io.sentry.android.core.internal.util.CpuInfoUtils @@ -29,7 +28,6 @@ class DeviceInfoUtilTest { 75 ).putExtra(BatteryManager.EXTRA_PLUGGED, 0) ) - Settings.Global.putString(context.contentResolver, "device_name", "sentry") DeviceInfoUtil.resetInstance() } @@ -51,30 +49,6 @@ class DeviceInfoUtilTest { assertNotNull(deviceInfo.memorySize) } - @Test - fun `does not include device name when PII is disabled`() { - val deviceInfoUtil = DeviceInfoUtil.getInstance( - context, - SentryAndroidOptions().apply { - isSendDefaultPii = false - } - ) - val deviceInfo = deviceInfoUtil.collectDeviceInformation(false, false) - assertNull(deviceInfo.name) - } - - @Test - fun `does include device name when pii is enabled`() { - val deviceInfoUtil = DeviceInfoUtil.getInstance( - context, - SentryAndroidOptions().apply { - isSendDefaultPii = true - } - ) - val deviceInfo = deviceInfoUtil.collectDeviceInformation(false, false) - assertNotNull(deviceInfo.name) - } - @Test fun `does include cpu data`() { CpuInfoUtils.getInstance().setCpuMaxFrequencies(listOf(1024)) From 6f5390016c21d96c09047d73ebc4cfb896de3405 Mon Sep 17 00:00:00 2001 From: Markus Hintersteiner Date: Tue, 18 Feb 2025 15:53:07 +0100 Subject: [PATCH 2/3] Update Changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 157f9b5cbc5..3eac374d430 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ - The class `io.sentry.spring.jakarta.webflux.ReactorUtils` is now deprecated, please use `io.sentry.reactor.SentryReactorUtils` in the new `sentry-reactor` module instead ([#4155](https://github.com/getsentry/sentry-java/pull/4155)) - The new module will be exposed as an `api` dependency when using `sentry-spring-boot-jakarta` (Spring Boot 3) or `sentry-spring-jakarta` (Spring 6). Therefore, if you're using one of those modules, changing your imports will suffice. +- The user's `device.name` is not reported anymore via the device context, even if `options.isSendDefaultPii` is enabled ([#4179](https://github.com/getsentry/sentry-java/pull/4179)) ## 8.2.0 From 738102284f3ca0041e1427a90f18fea9876ad5a6 Mon Sep 17 00:00:00 2001 From: Markus Hintersteiner Date: Mon, 17 Mar 2025 08:53:09 +0100 Subject: [PATCH 3/3] Update Changelog --- CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dcb88b5d2de..2e81bd10e0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ - Reduce excessive CPU usage when serializing breadcrumbs to disk for ANRs ([#4181](https://github.com/getsentry/sentry-java/pull/4181)) - Ensure app start type is set, even when ActivityLifecycleIntegration is not running ([#4250](https://github.com/getsentry/sentry-java/pull/4250)) +### Behavioral Changes + +- The user's `device.name` is not reported anymore via the device context, even if `options.isSendDefaultPii` is enabled ([#4179](https://github.com/getsentry/sentry-java/pull/4179)) + ### Dependencies - Bump Gradle from v8.12.1 to v8.13.0 ([#4209](https://github.com/getsentry/sentry-java/pull/4209)) @@ -100,7 +104,6 @@ - The class `io.sentry.spring.jakarta.webflux.ReactorUtils` is now deprecated, please use `io.sentry.reactor.SentryReactorUtils` in the new `sentry-reactor` module instead ([#4155](https://github.com/getsentry/sentry-java/pull/4155)) - The new module will be exposed as an `api` dependency when using `sentry-spring-boot-jakarta` (Spring Boot 3) or `sentry-spring-jakarta` (Spring 6). Therefore, if you're using one of those modules, changing your imports will suffice. -- The user's `device.name` is not reported anymore via the device context, even if `options.isSendDefaultPii` is enabled ([#4179](https://github.com/getsentry/sentry-java/pull/4179)) ## 8.2.0