android: Add support for Android surface extension
diff --git a/vk-layer-generate.py b/vk-layer-generate.py
index ebeddd1..ec12f9d 100755
--- a/vk-layer-generate.py
+++ b/vk-layer-generate.py
@@ -1403,6 +1403,7 @@
                                    'vkGetPhysicalDeviceSurfaceFormatsKHR',
                                    'vkGetPhysicalDeviceSurfacePresentModesKHR',
                                    'vkCreateXcbSurfaceKHR',
+                                   'vkCreateAndroidSurfaceKHR',
                                    'vkGetPhysicalDeviceXcbPresentationSupportKHR'])]
         # TODO: Add cases for Mir, Wayland and Xlib
         else: # android
@@ -1542,10 +1543,11 @@
                                              'CreateGraphicsPipelines'
                                              ]
         # TODO : This is hacky, need to make this a more general-purpose solution for all layers
-        ifdef_dict = {'CreateXcbSurfaceKHR': 'VK_USE_PLATFORM_XCB_KHR'}
+        ifdef_dict = {'CreateXcbSurfaceKHR': 'VK_USE_PLATFORM_XCB_KHR', 'CreateAndroidSurfaceKHR': 'VK_USE_PLATFORM_ANDROID_KHR'}
         # Give special treatment to create functions that return multiple new objects
         # This dict stores array name and size of array
         custom_create_dict = {'pDescriptorSets' : 'pAllocateInfo->descriptorSetCount'}
+        pre_call_txt += '%s\n' % (self.lineinfo.get())
         if proto.name in explicit_object_tracker_functions:
             funcs.append('%s%s\n'
                      '{\n'
@@ -1679,7 +1681,8 @@
                                    'vkGetPhysicalDeviceSurfaceCapabilitiesKHR',
                                    'vkGetPhysicalDeviceSurfaceFormatsKHR',
                                    'vkGetPhysicalDeviceSurfacePresentModesKHR',
-                                   'vkCreateXcbSurfaceKHR'
+                                   'vkCreateXcbSurfaceKHR',
+                                   'vkCreateAndroidSurfaceKHR'
                                    ])]
         # TODO: Add cases for Mir, Wayland and Xlib
         else: # android
diff --git a/vulkan.py b/vulkan.py
index 566a4fd..41378dd 100755
--- a/vulkan.py
+++ b/vulkan.py
@@ -1114,6 +1114,18 @@
              Param("xcb_visualid_t", "visual_id")]),
     ],
 )
+ext_khr_android_surface = Extension(
+    name="VK_KHR_android_surface",
+    headers=["vulkan/vulkan.h"],
+    objects=[],
+    protos=[
+        Proto("VkResult", "CreateAndroidSurfaceKHR",
+            [Param("VkInstance", "instance"),
+             Param("const VkAndroidSurfaceCreateInfoKHR*", "pCreateInfo"),
+             Param("const VkAllocationCallbacks*", "pAllocator"),
+             Param("VkSurfaceKHR*", "pSurface")]),
+    ],
+)
 ext_khr_win32_surface = Extension(
     name="VK_KHR_win32_surface",
     headers=["vulkan/vulkan.h"],
@@ -1192,8 +1204,8 @@
     extensions = [core, ext_khr_surface, ext_khr_device_swapchain, ext_khr_win32_surface]
     extensions_all = [core, ext_khr_surface, ext_khr_device_swapchain, ext_khr_win32_surface, lunarg_debug_report, lunarg_debug_marker]
 else:
-    extensions = [core, ext_khr_surface, ext_khr_device_swapchain, ext_khr_xcb_surface]
-    extensions_all = [core, ext_khr_surface, ext_khr_device_swapchain, ext_khr_xcb_surface, lunarg_debug_report, lunarg_debug_marker]
+    extensions = [core, ext_khr_surface, ext_khr_device_swapchain, ext_khr_xcb_surface, ext_khr_android_surface]
+    extensions_all = [core, ext_khr_surface, ext_khr_device_swapchain, ext_khr_xcb_surface, ext_khr_android_surface, lunarg_debug_report, lunarg_debug_marker]
 
 object_dispatch_list = [
     "VkInstance",