diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py
index 52b3520..01b13a9 100644
--- a/Lib/ctypes/util.py
+++ b/Lib/ctypes/util.py
@@ -71,7 +71,23 @@ if os.name == "ce":
     def find_library(name):
         return name
 
-if os.name == "posix" and sys.platform == "darwin":
+# This patch overrides the find_library to look in the right places on
+# Android
+if True:
+    def find_library(name):
+        # Check the user app lib dir
+        app_root = os.path.abspath('./').split(os.path.sep)[0:4]
+        lib_search = os.path.sep.join(app_root) + os.path.sep + 'lib'
+        for filename in os.listdir(lib_search):
+            if filename.endswith('.so') and name in filename:
+                return lib_search + os.path.sep + filename
+        # Check the normal Android system libraries
+        for filename in os.listdir('/system/lib'):
+            if filename.endswith('.so') and name in filename:
+                return lib_search + os.path.sep + filename
+        return None
+
+elif os.name == "posix" and sys.platform == "darwin":
     from ctypes.macholib.dyld import dyld_find as _dyld_find
     def find_library(name):
         possible = ['lib%s.dylib' % name,
