diff --git a/buildozer.spec b/buildozer.spec
index 845e2cf36733ec327020107999e2bf7803d0d83c..d7cf50aae7559231345a01535d695aeab1091b02 100644
--- a/buildozer.spec
+++ b/buildozer.spec
@@ -36,7 +36,7 @@ version = 1.0
 
 # (list) Application requirements
 # comma separated e.g. requirements = sqlite3,kivy
-requirements = kivy
+requirements = python3,kivy
 
 # (str) Custom source folders for requirements
 # Sets custom source for any requirements with recipes
@@ -88,16 +88,16 @@ fullscreen = 0
 android.permissions = INTERNET
 
 # (int) Android API to use
-#android.api = 19
+android.api = 21
 
 # (int) Minimum API required
-#android.minapi = 9
+android.minapi = 21
 
 # (int) Android SDK version to use
 #android.sdk = 20
 
 # (str) Android NDK version to use
-#android.ndk = 9c
+android.ndk = 17c
 
 # (bool) Use --private data storage (True) or --dir public storage (False)
 #android.private_storage = True
@@ -146,8 +146,11 @@ android.permissions = INTERNET
 # bootstrap)
 #android.gradle_dependencies =
 
+# (list) Java classes to add as activities to the manifest.
+#android.add_activites = com.example.ExampleActivity
+
 # (str) python-for-android branch to use, defaults to stable
-#p4a.branch = stable
+p4a.branch = master
 
 # (str) OUYA Console category. Should be one of GAME or APP
 # If you leave this blank, OUYA support will not be enabled
@@ -159,6 +162,9 @@ android.permissions = INTERNET
 # (str) XML file to include as an intent filters in <activity> tag
 #android.manifest.intent_filters =
 
+# (str) launchMode to set for the main activity
+#android.manifest.launch_mode = standard
+
 # (list) Android additional libraries to copy into libs/armeabi
 #android.add_libs_armeabi = libs/android/*.so
 #android.add_libs_armeabi_v7a = libs/android-v7/*.so
@@ -189,7 +195,7 @@ android.arch = armeabi-v7a
 # Python for android (p4a) specific
 #
 
-# (str) python-for-android git clone directory (if empty, it will be automatically cloned from GitHub)
+# (str) python-for-android git clone directory (if empty, it will be automatically cloned from github)
 #p4a.source_dir =
 
 # (str) The directory in which python-for-android should look for your own build recipes (if any)
@@ -201,6 +207,9 @@ android.arch = armeabi-v7a
 # (str) Bootstrap to use for android builds
 # p4a.bootstrap = sdl2
 
+# (int) port number to specify an explicit --port= p4a argument (eg for bootstrap flask)
+#p4a.port =
+
 
 #
 # iOS specific
@@ -220,7 +229,7 @@ android.arch = armeabi-v7a
 [buildozer]
 
 # (int) Log level (0 = error only, 1 = info, 2 = debug (with command output))
-log_level = 2
+log_level = 1
 
 # (int) Display warning if buildozer is run as root (0 = False, 1 = True)
 warn_on_root = 1
diff --git a/main.py b/main.py
index 6b32546e6d0dd9dc06205d4c90cf47ccd4437baa..9094c391d7f7e441781c81da60037666905e89c6 100644
--- a/main.py
+++ b/main.py
@@ -23,7 +23,8 @@ class RestApp(App):
 
     def on_locations_not_loaded(self, _, error):
         self.root.ids.results.add_widget(Label(text='[Failed to load locations]'))
-        Logger.error('RestApp: {error}'.format(error=error))
+        Logger.error(f'RestApp: {error}')
+
 
 if __name__ == '__main__':
     app = RestApp()
diff --git a/openmrs.py b/openmrs.py
index 6e67b59861e8b2d14d257ad54917a1de4ea90835..cceb404c83e9eb0031a0a351644ea6a870d870a7 100644
--- a/openmrs.py
+++ b/openmrs.py
@@ -11,16 +11,15 @@ except ImportError:
 class RESTConnection(object):
     @staticmethod
     def _construct_url(authority, port, resource):
-        return 'http://{authority}:{port}/openmrs/ws/rest/v1/{resource}' \
-            .format(authority=authority, port=port, resource=resource)
+        return f'http://{authority}:{port}/openmrs/ws/rest/v1/{resource}'
 
     def __init__(self, authority, port, username, password):
         self.authority = authority
         self.port = port
-        credentials = '{username}:{password}'.format(username=username, password=password)
+        credentials = f'{username}:{password}'
         credentials = base64.standard_b64encode(credentials.encode('UTF8')).decode('UTF8')
         self.headers = {
-            'Authorization': 'Basic {credentials}'.format(credentials=credentials),
+            'Authorization': f'Basic {credentials}',
             'Content-type': 'application/json',
         }