libvulkan: Don't try to load compressed/unaligned libraries from APK

Bug: 28825642
Change-Id: I46ea3a54010cccf9e23696a4aff52a42a31d92b1
diff --git a/vulkan/libvulkan/layers_extensions.cpp b/vulkan/libvulkan/layers_extensions.cpp
index aa35657..82169ff 100644
--- a/vulkan/libvulkan/layers_extensions.cpp
+++ b/vulkan/libvulkan/layers_extensions.cpp
@@ -366,8 +366,15 @@
             reinterpret_cast<const char*>(name.name) + prefix.length(),
             name.name_length - prefix.length());
         // only enumerate direct entries of the directory, not subdirectories
-        if (filename.find('/') == filename.npos)
-            functor(filename);
+        if (filename.find('/') != filename.npos)
+            continue;
+        // Check whether it *may* be possible to load the library directly from
+        // the APK. Loading still may fail for other reasons, but this at least
+        // lets us avoid failed-to-load log messages in the typical case of
+        // compressed and/or unaligned libraries.
+        if (entry.method != kCompressStored || entry.offset % PAGE_SIZE != 0)
+            continue;
+        functor(filename);
     }
     EndIteration(iter_cookie);
     CloseArchive(zip);