diff --git a/packages/SettingsLib/MainSwitchPreference/Android.bp b/packages/SettingsLib/MainSwitchPreference/Android.bp
index 76d1ea7..fc06fdc 100644
--- a/packages/SettingsLib/MainSwitchPreference/Android.bp
+++ b/packages/SettingsLib/MainSwitchPreference/Android.bp
@@ -21,4 +21,8 @@
 
     sdk_version: "system_current",
     min_sdk_version: "28",
+    apex_available: [
+        "//apex_available:platform",
+        "com.android.cellbroadcast",
+    ],
 }
diff --git a/packages/SettingsLib/MainSwitchPreference/lint-baseline.xml b/packages/SettingsLib/MainSwitchPreference/lint-baseline.xml
deleted file mode 100644
index 0a5eb52..0000000
--- a/packages/SettingsLib/MainSwitchPreference/lint-baseline.xml
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.1.0" client="cli" variant="all" version="4.1.0">
-
-    <issue
-        id="NewApi"
-        message="`@android:id/switch_widget` requires API level 24 (current min is 21)"
-        errorLine1="        android:id=&quot;@android:id/switch_widget&quot;"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="frameworks/base/packages/SettingsLib/MainSwitchPreference/res/layout/settingslib_main_switch_bar.xml"
-            line="49"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="`@android:style/Widget.Material.CompoundButton.Switch` requires API level 24 (current min is 21)"
-        errorLine1="    &lt;style name=&quot;MainSwitch.Settingslib&quot; parent=&quot;@android:style/Widget.Material.CompoundButton.Switch&quot;>"
-        errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="frameworks/base/packages/SettingsLib/MainSwitchPreference/res/values/styles.xml"
-            line="24"
-            column="39"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="`@android:style/Widget.Material.CompoundButton.Switch` requires API level 24 (current min is 21)"
-        errorLine1="    &lt;style name=&quot;SwitchBar.Switch.Settingslib&quot; parent=&quot;@android:style/Widget.Material.CompoundButton.Switch&quot;>"
-        errorLine2="                                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="frameworks/base/packages/SettingsLib/MainSwitchPreference/res/values/styles.xml"
-            line="28"
-            column="43"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="`android:trackTint` requires API level 23 (current min is 21)"
-        errorLine1="        &lt;item name=&quot;android:trackTint&quot;>@color/settingslib_switchbar_switch_track_tint&lt;/item>"
-        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="frameworks/base/packages/SettingsLib/MainSwitchPreference/res/values/styles.xml"
-            line="29"
-            column="15"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        severity="Error"
-        message="`@android:color/system_neutral2_300` requires API level 31 (current min is 21)"
-        errorLine1="    &lt;color name=&quot;settingslib_thumb_off_color&quot;>@android:color/system_neutral2_300&lt;/color>"
-        errorLine2="                                              ^">
-        <location
-            file="frameworks/base/packages/SettingsLib/MainSwitchPreference/res/values-night/colors.xml"
-            line="23"
-            column="47"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        severity="Error"
-        message="`@android:color/system_accent2_700` requires API level 31 (current min is 21)"
-        errorLine1="    &lt;color name=&quot;settingslib_track_on_color&quot;>@android:color/system_accent2_700&lt;/color>"
-        errorLine2="                                             ^">
-        <location
-            file="frameworks/base/packages/SettingsLib/MainSwitchPreference/res/values-night/colors.xml"
-            line="26"
-            column="46"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        severity="Error"
-        message="`@android:color/system_neutral1_700` requires API level 31 (current min is 21)"
-        errorLine1="    &lt;color name=&quot;settingslib_track_off_color&quot;>@android:color/system_neutral1_700&lt;/color>"
-        errorLine2="                                              ^">
-        <location
-            file="frameworks/base/packages/SettingsLib/MainSwitchPreference/res/values-night/colors.xml"
-            line="29"
-            column="47"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        severity="Error"
-        message="`@android:color/system_neutral2_100` requires API level 31 (current min is 21)"
-        errorLine1="    &lt;color name=&quot;settingslib_thumb_off_color&quot;>@android:color/system_neutral2_100&lt;/color>"
-        errorLine2="                                              ^">
-        <location
-            file="frameworks/base/packages/SettingsLib/MainSwitchPreference/res/values/colors.xml"
-            line="30"
-            column="47"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        severity="Error"
-        message="`@android:color/system_neutral2_600` requires API level 31 (current min is 21)"
-        errorLine1="    &lt;color name=&quot;settingslib_track_off_color&quot;>@android:color/system_neutral2_600&lt;/color>"
-        errorLine2="                                              ^">
-        <location
-            file="frameworks/base/packages/SettingsLib/MainSwitchPreference/res/values/colors.xml"
-            line="36"
-            column="47"/>
-    </issue>
-
-</issues>
diff --git a/packages/SettingsLib/Utils/Android.bp b/packages/SettingsLib/Utils/Android.bp
index 1cf42ff..7d5eb69 100644
--- a/packages/SettingsLib/Utils/Android.bp
+++ b/packages/SettingsLib/Utils/Android.bp
@@ -13,6 +13,10 @@
     srcs: ["src/**/*.java"],
     resource_dirs: ["res"],
 
+    static_libs: [
+        "androidx.annotation_annotation",
+    ],
+
     sdk_version: "system_current",
     min_sdk_version: "21",
 
@@ -20,5 +24,6 @@
 
         "//apex_available:platform",
         "com.android.permission",
+        "com.android.cellbroadcast",
     ],
 }
diff --git a/packages/SettingsLib/Utils/lint-baseline.xml b/packages/SettingsLib/Utils/lint-baseline.xml
deleted file mode 100644
index 172bde3..0000000
--- a/packages/SettingsLib/Utils/lint-baseline.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="5" by="lint 4.1.0" client="cli" variant="all" version="4.1.0">
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.content.Context#getSystemService`"
-        errorLine1="        return context.getSystemService(UserManager.class).isManagedProfile(userId)"
-        errorLine2="                       ~~~~~~~~~~~~~~~~">
-        <location
-            file="frameworks/base/packages/SettingsLib/Utils/src/com/android/settingslib/utils/applications/AppUtils.java"
-            line="58"
-            column="24"/>
-    </issue>
-
-</issues>
diff --git a/packages/SettingsLib/Utils/src/com/android/settingslib/utils/applications/AppUtils.java b/packages/SettingsLib/Utils/src/com/android/settingslib/utils/applications/AppUtils.java
index 5dc0b72..cf45c0b 100644
--- a/packages/SettingsLib/Utils/src/com/android/settingslib/utils/applications/AppUtils.java
+++ b/packages/SettingsLib/Utils/src/com/android/settingslib/utils/applications/AppUtils.java
@@ -19,9 +19,12 @@
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
+import android.os.Build;
 import android.os.UserManager;
 import android.util.Log;
 
+import androidx.annotation.RequiresApi;
+
 import com.android.settingslib.utils.R;
 
 public class AppUtils {
@@ -49,6 +52,7 @@
      * work app for accessibility purpose.
      * If the app is in a work profile, then add a "work" prefix to the app name.
      */
+    @RequiresApi(Build.VERSION_CODES.M)
     public static String getAppContentDescription(Context context, String packageName,
             int userId) {
         final CharSequence appLabel = getApplicationLabel(context.getPackageManager(), packageName);
