diff --git a/libs/hwui/Android.bp b/libs/hwui/Android.bp
index ac2fd98..aa842ff 100644
--- a/libs/hwui/Android.bp
+++ b/libs/hwui/Android.bp
@@ -171,7 +171,6 @@
 
 cc_defaults {
     name: "android_graphics_apex",
-    host_supported: true,
     cflags: [
         "-Wno-unused-parameter",
         "-Wno-non-virtual-dtor",
@@ -231,7 +230,6 @@
 
 cc_defaults {
     name: "android_graphics_jni",
-    host_supported: true,
     cflags: [
         "-Wno-unused-parameter",
         "-Wno-non-virtual-dtor",
@@ -537,7 +535,11 @@
 
 cc_test {
     name: "hwui_unit_tests",
-    defaults: ["hwui_test_defaults"],
+    defaults: [
+        "hwui_test_defaults",
+        "android_graphics_apex",
+        "android_graphics_jni",
+    ],
 
     static_libs: [
         "libgmock",
@@ -549,6 +551,7 @@
 
     srcs: [
         "tests/unit/main.cpp",
+        "tests/unit/ABitmapTests.cpp",
         "tests/unit/CacheManagerTests.cpp",
         "tests/unit/CanvasContextTests.cpp",
         "tests/unit/CommonPoolTests.cpp",
diff --git a/libs/hwui/apex/android_bitmap.cpp b/libs/hwui/apex/android_bitmap.cpp
index b56a619..3780ba0 100644
--- a/libs/hwui/apex/android_bitmap.cpp
+++ b/libs/hwui/apex/android_bitmap.cpp
@@ -163,10 +163,9 @@
 
 void ABitmap_notifyPixelsChanged(ABitmap* bitmapHandle) {
     Bitmap* bitmap = TypeCast::toBitmap(bitmapHandle);
-    if (bitmap->isImmutable()) {
-        ALOGE("Attempting to modify an immutable Bitmap!");
+    if (!bitmap->isImmutable()) {
+        bitmap->notifyPixelsChanged();
     }
-    return bitmap->notifyPixelsChanged();
 }
 
 namespace {
diff --git a/libs/hwui/tests/unit/ABitmapTests.cpp b/libs/hwui/tests/unit/ABitmapTests.cpp
new file mode 100644
index 0000000..8e2f7e0
--- /dev/null
+++ b/libs/hwui/tests/unit/ABitmapTests.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <gtest/gtest.h>
+
+#include "android/graphics/bitmap.h"
+#include "apex/TypeCast.h"
+#include "hwui/Bitmap.h"
+#include "tests/common/TestUtils.h"
+
+using namespace android;
+using namespace android::uirenderer;
+
+TEST(ABitmap, notifyPixelsChanged) {
+    // generate a bitmap and its public API handle
+    sk_sp<Bitmap> bitmap(TestUtils::createBitmap(1, 1));
+    ABitmap* abmp = android::TypeCast::toABitmap(bitmap.get());
+
+    // verify that notification changes the genID
+    uint32_t genID = bitmap->getGenerationID();
+    ABitmap_notifyPixelsChanged(abmp);
+    ASSERT_TRUE(bitmap->getGenerationID() != genID);
+
+    // mark the bitmap as immutable
+    ASSERT_FALSE(bitmap->isImmutable());
+    bitmap->setImmutable();
+    ASSERT_TRUE(bitmap->isImmutable());
+
+    // attempt to notify that the pixels have changed
+    genID = bitmap->getGenerationID();
+    ABitmap_notifyPixelsChanged(abmp);
+    ASSERT_TRUE(bitmap->getGenerationID() == genID);
+}
