diff --git a/sdkmanager/sdkuilib/src/main/java/com/android/sdkuilib/internal/repository/core/PackagesDiffLogic.java b/sdkmanager/sdkuilib/src/main/java/com/android/sdkuilib/internal/repository/core/PackagesDiffLogic.java
index 01ea803..75bf6d6 100755
--- a/sdkmanager/sdkuilib/src/main/java/com/android/sdkuilib/internal/repository/core/PackagesDiffLogic.java
+++ b/sdkmanager/sdkuilib/src/main/java/com/android/sdkuilib/internal/repository/core/PackagesDiffLogic.java
@@ -34,10 +34,10 @@
 import com.android.sdklib.internal.repository.updater.PkgItem.PkgState;
 import com.android.sdklib.repository.FullRevision;
 import com.android.sdklib.repository.FullRevision.PreviewComparison;
-import com.android.utils.SparseArray;
 import com.android.sdkuilib.internal.repository.SwtUpdaterData;
 import com.android.sdkuilib.internal.repository.ui.PackagesPageIcons;
 import com.android.utils.Pair;
+import com.android.utils.SparseArray;
 import com.google.common.collect.Maps;
 
 import java.util.ArrayList;
@@ -265,7 +265,9 @@
                             break;
                         }
                     }
-                    if (p instanceof SystemImagePackage && item.getState() == PkgState.INSTALLED) {
+                    if (p instanceof SystemImagePackage &&
+                            ((SystemImagePackage) p).isPlatform() &&
+                            item.getState() == PkgState.INSTALLED) {
                         hasSysImg = true;
                         break;
                     }
@@ -297,7 +299,9 @@
                     // No system image in the platform, try a system image package
                     for (PkgItem item : items) {
                         Package p = item.getMainPackage();
-                        if (p instanceof SystemImagePackage && item.getState() == PkgState.NEW) {
+                        if (p instanceof SystemImagePackage &&
+                                ((SystemImagePackage) p).isPlatform() &&
+                                item.getState() == PkgState.NEW) {
                             item.setChecked(true);
                         }
                     }
@@ -595,7 +599,11 @@
 
             if (!enablePreviews && newPkg.getRevision().isPreview()) {
                 // This is a preview and previews are not enabled. Ignore the package.
-                continue nextPkg;
+                // Starting with Tools 23, we explicitly allows Build-Tools RC packages to
+                // always be visible so only RCs for Tools & Platform-Tools will be hidden.
+                if (!(newPkg instanceof BuildToolPackage)) {
+                    continue nextPkg;
+                }
             }
 
             for (PkgCategory cat : cats) {
diff --git a/sdkmanager/sdkuilib/src/test/java/com/android/sdkuilib/internal/repository/core/PackagesDiffLogicTest.java b/sdkmanager/sdkuilib/src/test/java/com/android/sdkuilib/internal/repository/core/PackagesDiffLogicTest.java
index c4e3a81..1235bf6 100755
--- a/sdkmanager/sdkuilib/src/test/java/com/android/sdkuilib/internal/repository/core/PackagesDiffLogicTest.java
+++ b/sdkmanager/sdkuilib/src/test/java/com/android/sdkuilib/internal/repository/core/PackagesDiffLogicTest.java
@@ -1471,19 +1471,26 @@
                 new MockToolPackage(src1, new FullRevision(4, 0, 0, 1), 3),       // Tools 4 rc1
                 new MockPlatformToolPackage(src1, new FullRevision(3, 0, 0)),     // Plat-T 3
                 new MockPlatformToolPackage(src1, new FullRevision(5, 0, 0, 1)),  // Plat-T 5 rc1
+                new MockBuildToolPackage(src1, new FullRevision(6, 0, 0)),
+                new MockBuildToolPackage(src1, new FullRevision(7, 0, 0, 1))
         });
         m.updateEnd(true /*sortByApi*/);
 
         assertEquals(
-                "PkgCategoryApi <API=TOOLS, label=Tools, #items=2>\n" +
+                "PkgCategoryApi <API=TOOLS, label=Tools, #items=3>\n" +
                 "-- <NEW, pkg:Android SDK Tools, revision 2>\n" +
                 "-- <NEW, pkg:Android SDK Platform-tools, revision 3>\n" +
+                "-- <NEW, pkg:Android SDK Build-tools, revision 6>\n" +
+                "PkgCategoryApi <API=TOOLS-PREVIEW, label=Tools (Preview Channel), #items=1>\n" +
+                "-- <NEW, pkg:Android SDK Build-tools, revision 7 rc1>\n" +
                 "PkgCategoryApi <API=EXTRAS, label=Extras, #items=0>\n",
                 getTree(m, true /*displaySortByApi*/));
         assertEquals(
-                "PkgCategorySource <source=repo1 (1.example.com), #items=2>\n" +
+                "PkgCategorySource <source=repo1 (1.example.com), #items=4>\n" +
                 "-- <NEW, pkg:Android SDK Tools, revision 2>\n" +
-                "-- <NEW, pkg:Android SDK Platform-tools, revision 3>\n",
+                "-- <NEW, pkg:Android SDK Platform-tools, revision 3>\n" +
+                "-- <NEW, pkg:Android SDK Build-tools, revision 7 rc1>\n" +
+                "-- <NEW, pkg:Android SDK Build-tools, revision 6>\n",
                 getTree(m, false /*displaySortByApi*/));
     }
 
diff --git a/sdkmanager/sdkuilib/src/test/java/com/android/sdkuilib/internal/repository/ui/SdkManagerUpgradeTest.java b/sdkmanager/sdkuilib/src/test/java/com/android/sdkuilib/internal/repository/ui/SdkManagerUpgradeTest.java
index bbefe25..a21dda5 100755
--- a/sdkmanager/sdkuilib/src/test/java/com/android/sdkuilib/internal/repository/ui/SdkManagerUpgradeTest.java
+++ b/sdkmanager/sdkuilib/src/test/java/com/android/sdkuilib/internal/repository/ui/SdkManagerUpgradeTest.java
@@ -98,20 +98,20 @@
 
         actual = pageImpl.getMockTreeDisplay();
         assertEquals(
-                "[]    Tools                           |  |            |                              \n" +
-                " L_[] Android SDK Tools               |  |      1.0.1 | Update available: rev. 20.0.3\n" +
-                " L_[] Android SDK Platform-tools      |  |     17.1.2 | Update available: rev. 18    \n" +
-                " L_[] Android SDK Build-tools         |  |         18 | Not installed                \n" +
-                " L_[] Android SDK Build-tools         |  |      3.0.1 | Installed                    \n" +
-                " L_[] Android SDK Build-tools         |  |          3 | Installed                    \n" +
-                "[]    Tools (Preview Channel)         |  |            |                              \n" +
+                "[]    Tools                           |  |            |                                   \n" +
+                " L_[] Android SDK Tools               |  |      1.0.1 | Update available: rev. 20.0.3     \n" +
+                " L_[] Android SDK Platform-tools      |  |     17.1.2 | Update available: rev. 18         \n" +
+                " L_[] Android SDK Build-tools         |  |         18 | Not installed                     \n" +
+                " L_[] Android SDK Build-tools         |  |      3.0.1 | Installed                         \n" +
+                " L_[] Android SDK Build-tools         |  |          3 | Installed                         \n" +
+                "[]    Tools (Preview Channel)         |  |            |                                   \n" +
                 // Note: locally installed previews are always shown, even when enable previews is false.
-                " L_[] Android SDK Build-tools         |  | 18.3.4 rc5 | Installed                    \n" +
-                "[]    Android 0.0 (API 0)             |  |            |                              \n" +
-                " L_[] SDK Platform                    |  |          1 | Installed                    \n" +
-                " L_[] Sys-Img v0 for (Tag 1, armeabi) |  |          0 | Installed                    \n" +
-                " L_[] Sources for Android SDK         |  |          0 | Installed                    \n" +
-                "[]    Extras                          |  |            |                              ",
+                " L_[] Android SDK Build-tools         |  | 18.3.4 rc5 | Update available: rev. 18.3.4 rc15\n" +
+                "[]    Android 0.0 (API 0)             |  |            |                                   \n" +
+                " L_[] SDK Platform                    |  |          1 | Installed                         \n" +
+                " L_[] Sys-Img v0 for (Tag 1, armeabi) |  |          0 | Installed                         \n" +
+                " L_[] Sources for Android SDK         |  |          0 | Installed                         \n" +
+                "[]    Extras                          |  |            |                                   ",
                 actual);
 
         assertEquals(
@@ -139,19 +139,19 @@
 
         actual = pageImpl.getMockTreeDisplay();
         assertEquals(
-                "[]    Tools                           |  |            |                              \n" +
-                " L_[] Android SDK Tools               |  |      1.0.1 | Update available: rev. 20.0.3\n" +
-                " L_[] Android SDK Platform-tools      |  |     17.1.2 | Update available: rev. 18    \n" +
-                " L_[] Android SDK Build-tools         |  |         18 | Not installed                \n" +
-                " L_[] Android SDK Build-tools         |  |      3.0.1 | Installed                    \n" +
-                " L_[] Android SDK Build-tools         |  |          3 | Installed                    \n" +
-                "[]    Tools (Preview Channel)         |  |            |                              \n" +
-                " L_[] Android SDK Build-tools         |  | 18.3.4 rc5 | Installed                    \n" +
-                "[]    Android 0.0 (API 0)             |  |            |                              \n" +
-                " L_[] SDK Platform                    |  |          1 | Installed                    \n" +
-                " L_[] Sys-Img v0 for (Tag 1, armeabi) |  |          0 | Installed                    \n" +
-                " L_[] Sources for Android SDK         |  |          0 | Installed                    \n" +
-                "[]    Extras                          |  |            |                              ",
+                "[]    Tools                           |  |            |                                   \n" +
+                " L_[] Android SDK Tools               |  |      1.0.1 | Update available: rev. 20.0.3     \n" +
+                " L_[] Android SDK Platform-tools      |  |     17.1.2 | Update available: rev. 18         \n" +
+                " L_[] Android SDK Build-tools         |  |         18 | Not installed                     \n" +
+                " L_[] Android SDK Build-tools         |  |      3.0.1 | Installed                         \n" +
+                " L_[] Android SDK Build-tools         |  |          3 | Installed                         \n" +
+                "[]    Tools (Preview Channel)         |  |            |                                   \n" +
+                " L_[] Android SDK Build-tools         |  | 18.3.4 rc5 | Update available: rev. 18.3.4 rc15\n" +
+                "[]    Android 0.0 (API 0)             |  |            |                                   \n" +
+                " L_[] SDK Platform                    |  |          1 | Installed                         \n" +
+                " L_[] Sys-Img v0 for (Tag 1, armeabi) |  |          0 | Installed                         \n" +
+                " L_[] Sources for Android SDK         |  |          0 | Installed                         \n" +
+                "[]    Extras                          |  |            |                                   ",
                 actual);
 
         assertEquals(
