Merge cherrypicks of [15151696, 15151717, 15151893, 15151895, 15151897, 15151898, 15150909, 15151854, 15151855, 15151385, 15151702, 15151705, 15151707] into security-aosp-pi-release

Change-Id: I2a7b0f8b95ec8de222377a0bdef14a83dc77c69d
diff --git a/src/codec/SkPngCodec.cpp b/src/codec/SkPngCodec.cpp
index ebfe745..9646569 100644
--- a/src/codec/SkPngCodec.cpp
+++ b/src/codec/SkPngCodec.cpp
@@ -952,7 +952,7 @@
                     imageInfo = imageInfo.makeColorType(kAlpha_8_SkColorType);
                 }
             }
-        } else if (SkEncodedInfo::kOpaque_Alpha == alpha) {
+        } else if (encodedColorType == PNG_COLOR_TYPE_RGB) {
             png_color_8p sigBits;
             if (png_get_sBIT(fPng_ptr, fInfo_ptr, &sigBits)) {
                 if (5 == sigBits->red && 6 == sigBits->green && 5 == sigBits->blue) {
@@ -962,6 +962,18 @@
             }
         }
 
+#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
+        if (encodedColorType != PNG_COLOR_TYPE_GRAY_ALPHA
+            && SkEncodedInfo::kOpaque_Alpha == alpha) {
+            png_color_8p sigBits;
+            if (png_get_sBIT(fPng_ptr, fInfo_ptr, &sigBits)) {
+                if (5 == sigBits->red && 6 == sigBits->green && 5 == sigBits->blue) {
+                    SkAndroidFrameworkUtils::SafetyNetLog("190188264");
+                }
+            }
+        }
+#endif // SK_BUILD_FOR_ANDROID_FRAMEWORK
+
         if (1 == numberPasses) {
             *fOutCodec = new SkPngNormalDecoder(encodedInfo, imageInfo,
                    std::unique_ptr<SkStream>(fStream), fChunkReader, fPng_ptr, fInfo_ptr, bitDepth);