diff --git a/core/java/android/net/NetworkIdentity.java b/core/java/android/net/NetworkIdentity.java index 0775bdaaf3803..acd7b56027d99 100644 --- a/core/java/android/net/NetworkIdentity.java +++ b/core/java/android/net/NetworkIdentity.java @@ -157,7 +157,7 @@ public class NetworkIdentity implements Comparable { * Scrub given IMSI on production builds. */ public static String scrubSubscriberId(String subscriberId) { - if ("eng".equals(Build.TYPE)) { + if (Build.IS_ENG) { return subscriberId; } else if (subscriberId != null) { // TODO: parse this as MCC+MNC instead of hard-coding diff --git a/core/java/android/os/StrictMode.java b/core/java/android/os/StrictMode.java index 40cea131241f1..3e071437b097c 100644 --- a/core/java/android/os/StrictMode.java +++ b/core/java/android/os/StrictMode.java @@ -125,9 +125,6 @@ public final class StrictMode { private static final String TAG = "StrictMode"; private static final boolean LOG_V = Log.isLoggable(TAG, Log.VERBOSE); - private static final boolean IS_USER_BUILD = "user".equals(Build.TYPE); - private static final boolean IS_ENG_BUILD = "eng".equals(Build.TYPE); - /** * Boolean system property to disable strict mode checks outright. * Set this to 'true' to force disable; 'false' has no effect on other @@ -1191,7 +1188,7 @@ public final class StrictMode { // For debug builds, log event loop stalls to dropbox for analysis. // Similar logic also appears in ActivityThread.java for system apps. - if (!doFlashes && (IS_USER_BUILD || suppress)) { + if (!doFlashes && (Build.IS_USER || suppress)) { setCloseGuardEnabled(false); return false; } @@ -1199,7 +1196,7 @@ public final class StrictMode { // Eng builds have flashes on all the time. The suppression property // overrides this, so we force the behavior only after the short-circuit // check above. - if (IS_ENG_BUILD) { + if (Build.IS_ENG) { doFlashes = true; } @@ -1208,7 +1205,7 @@ public final class StrictMode { StrictMode.DETECT_DISK_READ | StrictMode.DETECT_NETWORK; - if (!IS_USER_BUILD) { + if (!Build.IS_USER) { threadPolicyMask |= StrictMode.PENALTY_DROPBOX; } if (doFlashes) { @@ -1219,23 +1216,25 @@ public final class StrictMode { // VM Policy controls CloseGuard, detection of Activity leaks, // and instance counting. - if (IS_USER_BUILD) { + if (Build.IS_USER) { setCloseGuardEnabled(false); } else { VmPolicy.Builder policyBuilder = new VmPolicy.Builder().detectAll(); - if (!IS_ENG_BUILD) { + if (!Build.IS_ENG) { // Activity leak detection causes too much slowdown for userdebug because of the // GCs. policyBuilder = policyBuilder.disable(DETECT_VM_ACTIVITY_LEAKS); } policyBuilder = policyBuilder.penaltyDropBox(); - if (IS_ENG_BUILD) { + if (Build.IS_ENG) { policyBuilder.penaltyLog(); } // All core system components need to tag their sockets to aid // system health investigations if (android.os.Process.myUid() < android.os.Process.FIRST_APPLICATION_UID) { - policyBuilder.detectUntaggedSockets(); + policyBuilder.enable(DETECT_VM_UNTAGGED_SOCKET); + } else { + policyBuilder.disable(DETECT_VM_UNTAGGED_SOCKET); } setVmPolicy(policyBuilder.build()); setCloseGuardEnabled(vmClosableObjectLeaksEnabled()); @@ -2294,7 +2293,7 @@ public final class StrictMode { * @hide */ public static Span enterCriticalSpan(String name) { - if (IS_USER_BUILD) { + if (Build.IS_USER) { return NO_OP_SPAN; } if (name == null || name.isEmpty()) { diff --git a/core/java/android/util/BootTimingsTraceLog.java b/core/java/android/util/BootTimingsTraceLog.java index 2e4319cca0b9a..7a702a92d3b1d 100644 --- a/core/java/android/util/BootTimingsTraceLog.java +++ b/core/java/android/util/BootTimingsTraceLog.java @@ -29,7 +29,7 @@ import java.util.Deque; */ public class BootTimingsTraceLog { // Debug boot time for every step if it's non-user build. - private static final boolean DEBUG_BOOT_TIME = !"user".equals(Build.TYPE); + private static final boolean DEBUG_BOOT_TIME = !Build.IS_USER; private final Deque> mStartTimes = DEBUG_BOOT_TIME ? new ArrayDeque<>() : null; private final String mTag; diff --git a/core/java/android/view/InputEventConsistencyVerifier.java b/core/java/android/view/InputEventConsistencyVerifier.java index 46ef379d5c9ce..7e8ec0469e565 100644 --- a/core/java/android/view/InputEventConsistencyVerifier.java +++ b/core/java/android/view/InputEventConsistencyVerifier.java @@ -30,7 +30,7 @@ import android.util.Log; * @hide */ public final class InputEventConsistencyVerifier { - private static final boolean IS_ENG_BUILD = "eng".equals(Build.TYPE); + private static final boolean IS_ENG_BUILD = Build.IS_ENG; private static final String EVENT_TYPE_KEY = "KeyEvent"; private static final String EVENT_TYPE_TRACKBALL = "TrackballEvent"; diff --git a/core/java/android/view/accessibility/AccessibilityCache.java b/core/java/android/view/accessibility/AccessibilityCache.java index 604e9854cd63a..0f21c5c85f4b4 100644 --- a/core/java/android/view/accessibility/AccessibilityCache.java +++ b/core/java/android/view/accessibility/AccessibilityCache.java @@ -40,7 +40,7 @@ public final class AccessibilityCache { private static final boolean DEBUG = false; - private static final boolean CHECK_INTEGRITY = "eng".equals(Build.TYPE); + private static final boolean CHECK_INTEGRITY = Build.IS_ENG; /** * {@link AccessibilityEvent} types that are critical for the cache to stay up to date diff --git a/core/java/com/android/internal/app/procstats/SparseMappingTable.java b/core/java/com/android/internal/app/procstats/SparseMappingTable.java index f941836d2c099..956ce99c0ad8d 100644 --- a/core/java/com/android/internal/app/procstats/SparseMappingTable.java +++ b/core/java/com/android/internal/app/procstats/SparseMappingTable.java @@ -646,7 +646,7 @@ public class SparseMappingTable { */ private static void logOrThrow(String message, Throwable th) { Slog.e(TAG, message, th); - if (Build.TYPE.equals("eng")) { + if (Build.IS_ENG) { throw new RuntimeException(message, th); } } diff --git a/core/tests/utiltests/src/android/util/RemoteIntArray.java b/core/tests/utiltests/src/android/util/RemoteIntArray.java index 7dc3400779b0f..11d0888179d11 100644 --- a/core/tests/utiltests/src/android/util/RemoteIntArray.java +++ b/core/tests/utiltests/src/android/util/RemoteIntArray.java @@ -32,7 +32,7 @@ import java.util.concurrent.TimeoutException; final class RemoteIntArray implements ServiceConnection, Closeable { private static final long BIND_REMOTE_SERVICE_TIMEOUT = - ("eng".equals(Build.TYPE)) ? 120000 : 10000; + Build.IS_ENG ? 120000 : 10000; private final Object mLock = new Object(); diff --git a/packages/Shell/src/com/android/shell/BugreportWarningActivity.java b/packages/Shell/src/com/android/shell/BugreportWarningActivity.java index bdf41714d26c8..2191d939e5914 100644 --- a/packages/Shell/src/com/android/shell/BugreportWarningActivity.java +++ b/packages/Shell/src/com/android/shell/BugreportWarningActivity.java @@ -64,7 +64,7 @@ public class BugreportWarningActivity extends AlertActivity final int state = getWarningState(this, STATE_UNKNOWN); final boolean checked; - if (Build.TYPE.equals("user")) { + if (Build.IS_USER) { checked = state == STATE_HIDE; // Only checks if specifically set to. } else { checked = state != STATE_SHOW; // Checks by default. diff --git a/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java b/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java index 8bfcc74f7b044..e69b0a81b97e0 100644 --- a/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java +++ b/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java @@ -577,7 +577,7 @@ public class BugreportReceiverTest { mUiBot.getVisibleObject(mContext.getString(R.string.bugreport_confirm_dont_repeat)); final boolean firstTime = propertyState == null || propertyState == STATE_UNKNOWN; if (firstTime) { - if (Build.TYPE.equals("user")) { + if (Build.IS_USER) { assertFalse("Checkbox should NOT be checked by default on user builds", dontShowAgain.isChecked()); mUiBot.click(dontShowAgain, "dont-show-again"); diff --git a/packages/SystemUI/src/com/android/systemui/recents/Recents.java b/packages/SystemUI/src/com/android/systemui/recents/Recents.java index 9ba32b354d8fe..f7663fc14fe2e 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/Recents.java +++ b/packages/SystemUI/src/com/android/systemui/recents/Recents.java @@ -207,7 +207,7 @@ public class Recents extends SystemUI mImpl = new RecentsImpl(mContext); // Check if there is a recents override package - if ("userdebug".equals(Build.TYPE) || "eng".equals(Build.TYPE)) { + if (Build.IS_USERDEBUG || Build.IS_ENG) { String cnStr = SystemProperties.get(RECENTS_OVERRIDE_SYSPROP_KEY); if (!cnStr.isEmpty()) { mOverrideRecentsPackageName = cnStr; diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index de853df851396..1d0bfaafaf7cf 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -507,8 +507,6 @@ public class ActivityManagerService extends IActivityManager.Stub static final String SYSTEM_DEBUGGABLE = "ro.debuggable"; - static final boolean IS_USER_BUILD = "user".equals(Build.TYPE); - // Amount of time after a call to stopAppSwitches() during which we will // prevent further untrusted switches from happening. static final long APP_SWITCH_DELAY_TIME = 5*1000; @@ -5730,7 +5728,7 @@ public class ActivityManagerService extends IActivityManager.Stub } final void logAppTooSlow(ProcessRecord app, long startTime, String msg) { - if (true || IS_USER_BUILD) { + if (true || Build.IS_USER) { return; } String tracesPath = SystemProperties.get("dalvik.vm.stack-trace-file", null); @@ -14540,7 +14538,7 @@ public class ActivityManagerService extends IActivityManager.Stub final ProcessRecord r = handleApplicationWtfInner(callingUid, callingPid, app, tag, crashInfo); - final boolean isFatal = "eng".equals(Build.TYPE) || Settings.Global + final boolean isFatal = Build.IS_ENG || Settings.Global .getInt(mContext.getContentResolver(), Settings.Global.WTF_IS_FATAL, 0) != 0; final boolean isSystem = (r == null) || r.persistent; @@ -20587,7 +20585,7 @@ public class ActivityManagerService extends IActivityManager.Stub && config.navigation == Configuration.NAVIGATION_NONAV); int modeType = config.uiMode & Configuration.UI_MODE_TYPE_MASK; final boolean uiModeSupportsDialogs = (modeType != Configuration.UI_MODE_TYPE_CAR - && !(modeType == Configuration.UI_MODE_TYPE_WATCH && "user".equals(Build.TYPE)) + && !(modeType == Configuration.UI_MODE_TYPE_WATCH && Build.IS_USER) && modeType != Configuration.UI_MODE_TYPE_TELEVISION && modeType != Configuration.UI_MODE_TYPE_VR_HEADSET); return inputMethodExists && uiModeSupportsDialogs; diff --git a/services/core/java/com/android/server/am/ActivityRecord.java b/services/core/java/com/android/server/am/ActivityRecord.java index 68f4d0d99f93a..c7cac3be5bc93 100644 --- a/services/core/java/com/android/server/am/ActivityRecord.java +++ b/services/core/java/com/android/server/am/ActivityRecord.java @@ -91,7 +91,6 @@ import static com.android.server.am.ActivityManagerDebugConfig.POSTFIX_THUMBNAIL import static com.android.server.am.ActivityManagerDebugConfig.POSTFIX_VISIBILITY; import static com.android.server.am.ActivityManagerDebugConfig.TAG_AM; import static com.android.server.am.ActivityManagerDebugConfig.TAG_WITH_CLASS_NAME; -import static com.android.server.am.ActivityManagerService.IS_USER_BUILD; import static com.android.server.am.ActivityManagerService.TAKE_FULLSCREEN_SCREENSHOTS; import static com.android.server.am.ActivityStack.ActivityState.DESTROYED; import static com.android.server.am.ActivityStack.ActivityState.DESTROYING; @@ -1801,7 +1800,7 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo } void startLaunchTickingLocked() { - if (IS_USER_BUILD) { + if (Build.IS_USER) { return; } if (launchTickTime == 0) { diff --git a/services/core/java/com/android/server/am/AppErrorDialog.java b/services/core/java/com/android/server/am/AppErrorDialog.java index c9c1d005a85a5..51ce30ef08f32 100644 --- a/services/core/java/com/android/server/am/AppErrorDialog.java +++ b/services/core/java/com/android/server/am/AppErrorDialog.java @@ -21,6 +21,7 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.res.Resources; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Message; @@ -32,8 +33,6 @@ import android.view.WindowManager; import android.widget.FrameLayout; import android.widget.TextView; -import static com.android.server.am.ActivityManagerService.IS_USER_BUILD; - final class AppErrorDialog extends BaseErrorDialog implements View.OnClickListener { private final ActivityManagerService mService; @@ -124,7 +123,7 @@ final class AppErrorDialog extends BaseErrorDialog implements View.OnClickListen close.setVisibility(!hasRestart ? View.VISIBLE : View.GONE); close.setOnClickListener(this); - boolean showMute = !IS_USER_BUILD && Settings.Global.getInt(context.getContentResolver(), + boolean showMute = !Build.IS_USER && Settings.Global.getInt(context.getContentResolver(), Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0; final TextView mute = findViewById(com.android.internal.R.id.aerr_mute); mute.setOnClickListener(this); diff --git a/services/core/java/com/android/server/am/AppNotRespondingDialog.java b/services/core/java/com/android/server/am/AppNotRespondingDialog.java index a3a67784fadc0..d9c6a3023903c 100644 --- a/services/core/java/com/android/server/am/AppNotRespondingDialog.java +++ b/services/core/java/com/android/server/am/AppNotRespondingDialog.java @@ -35,8 +35,6 @@ import android.view.WindowManager; import android.widget.FrameLayout; import android.widget.TextView; -import static com.android.server.am.ActivityManagerService.IS_USER_BUILD; - final class AppNotRespondingDialog extends BaseErrorDialog implements View.OnClickListener { private static final String TAG = "AppNotRespondingDialog"; diff --git a/services/core/java/com/android/server/hdmi/HdmiLogger.java b/services/core/java/com/android/server/hdmi/HdmiLogger.java index 537df815e3a2e..ebe52c0dfbf04 100644 --- a/services/core/java/com/android/server/hdmi/HdmiLogger.java +++ b/services/core/java/com/android/server/hdmi/HdmiLogger.java @@ -44,7 +44,6 @@ final class HdmiLogger { private static final long ERROR_LOG_DURATTION_MILLIS = 20 * 1000; // 20s private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); - private static final boolean IS_USER_BUILD = "user".equals(Build.TYPE); private static final ThreadLocal sLogger = new ThreadLocal<>(); diff --git a/services/core/java/com/android/server/pm/EphemeralResolverConnection.java b/services/core/java/com/android/server/pm/EphemeralResolverConnection.java index 562ab3319d647..4600c3210389d 100644 --- a/services/core/java/com/android/server/pm/EphemeralResolverConnection.java +++ b/services/core/java/com/android/server/pm/EphemeralResolverConnection.java @@ -56,9 +56,9 @@ final class EphemeralResolverConnection implements DeathRecipient { private static final String TAG = "PackageManager"; // This is running in a critical section and the timeout must be sufficiently low private static final long BIND_SERVICE_TIMEOUT_MS = - ("eng".equals(Build.TYPE)) ? 500 : 300; + Build.IS_ENG ? 500 : 300; private static final long CALL_SERVICE_TIMEOUT_MS = - ("eng".equals(Build.TYPE)) ? 200 : 100; + Build.IS_ENG ? 200 : 100; private static final boolean DEBUG_EPHEMERAL = Build.IS_DEBUGGABLE; private final Object mLock = new Object(); diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index e59b9e383d134..a4046ac66de6e 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -3050,7 +3050,7 @@ public class PackageManagerService extends IPackageManager.Stub } // Disable package parsing on eng builds to allow for faster incremental development. - if ("eng".equals(Build.TYPE)) { + if (Build.IS_ENG) { return null; } @@ -3085,7 +3085,7 @@ public class PackageManagerService extends IPackageManager.Stub // NOTE: When no BUILD_NUMBER is set by the build system, it defaults to a build // that starts with "eng." to signify that this is an engineering build and not // destined for release. - if ("userdebug".equals(Build.TYPE) && Build.VERSION.INCREMENTAL.startsWith("eng.")) { + if (Build.IS_USERDEBUG && Build.VERSION.INCREMENTAL.startsWith("eng.")) { Slog.w(TAG, "Wiping cache directory because the system partition changed."); // Heuristic: If the /system directory has been modified recently due to an "adb sync" @@ -5533,7 +5533,7 @@ public class PackageManagerService extends IPackageManager.Stub if (eventIdIndex == -1) { if (AppOpsManager.permissionToOpCode(name) == AppOpsManager.OP_NONE - || "user".equals(Build.TYPE)) { + || Build.IS_USER) { Log.i(TAG, "Unknown permission " + name); return MetricsEvent.ACTION_PERMISSION_REQUEST_UNKNOWN; diff --git a/services/print/java/com/android/server/print/RemotePrintSpooler.java b/services/print/java/com/android/server/print/RemotePrintSpooler.java index f4c9c86fda2ac..abd2244959cf7 100644 --- a/services/print/java/com/android/server/print/RemotePrintSpooler.java +++ b/services/print/java/com/android/server/print/RemotePrintSpooler.java @@ -72,7 +72,7 @@ final class RemotePrintSpooler { private static final boolean DEBUG = false; private static final long BIND_SPOOLER_SERVICE_TIMEOUT = - ("eng".equals(Build.TYPE)) ? 120000 : 10000; + (Build.IS_ENG) ? 120000 : 10000; private final Object mLock = new Object(); diff --git a/telecomm/java/android/telecom/Log.java b/telecomm/java/android/telecom/Log.java index de205380c3a75..3361b5b6e7777 100644 --- a/telecomm/java/android/telecom/Log.java +++ b/telecomm/java/android/telecom/Log.java @@ -56,7 +56,7 @@ public class Log { public static boolean ERROR = isLoggable(android.util.Log.ERROR); private static final boolean FORCE_LOGGING = false; /* STOP SHIP if true */ - private static final boolean USER_BUILD = Build.TYPE.equals("user"); + private static final boolean USER_BUILD = Build.IS_USER; // Used to synchronize singleton logging lazy initialization private static final Object sSingletonSync = new Object(); diff --git a/telephony/java/android/telephony/Rlog.java b/telephony/java/android/telephony/Rlog.java index 2a31e3a7bda28..e0b46e10eab5d 100644 --- a/telephony/java/android/telephony/Rlog.java +++ b/telephony/java/android/telephony/Rlog.java @@ -33,7 +33,7 @@ import java.security.NoSuchAlgorithmException; */ public final class Rlog { - private static final boolean USER_BUILD = Build.TYPE.equals("user"); + private static final boolean USER_BUILD = Build.IS_USER; private Rlog() { }