diff --git a/tools/releasetools/apex_utils.py b/tools/releasetools/apex_utils.py
index 4ca0917..4fac6f3 100644
--- a/tools/releasetools/apex_utils.py
+++ b/tools/releasetools/apex_utils.py
@@ -157,8 +157,10 @@
                   os.getenv('PATH')]
     for key, val in arguments_dict.items():
       repack_cmd.extend(['--' + key, val])
+    # Add quote to the signing_args as we will pass
+    # --signing_args "--signing_helper_with_files=%path" to apexer
     if signing_args:
-      repack_cmd.extend(['--signing_args', signing_args])
+      repack_cmd.extend(['--signing_args', '"{}"'.format(signing_args)])
     # optional arguments for apex repacking
     manifest_json = os.path.join(apex_dir, 'apex_manifest.json')
     if os.path.exists(manifest_json):
diff --git a/tools/releasetools/test_apex_utils.py b/tools/releasetools/test_apex_utils.py
index b9f2de5..07284ad 100644
--- a/tools/releasetools/test_apex_utils.py
+++ b/tools/releasetools/test_apex_utils.py
@@ -189,7 +189,7 @@
 
     signing_helper = os.path.join(self.testdata_dir, 'signing_helper.sh')
     os.chmod(signing_helper, 0o700)
-    payload_signer_args = '--signing_helper_with_files {}'.format(
+    payload_signer_args = '--signing_helper_with_files={}'.format(
         signing_helper)
     signer.ProcessApexFile(apk_keys, self.payload_key, payload_pubkey,
                            payload_signer_args)
