diff --git a/reproduce.py b/reproduce.py
index fa8cabfd4d1a1894dae78e7703de9f68b2a5d29d..7b1cb753bb0a4d508b8cdfd4cad5b078b996ea67 100755
--- a/reproduce.py
+++ b/reproduce.py
@@ -12,13 +12,28 @@ REPO_DIR = "briar"
 REFERENCE_APK_URL = 'https://briarproject.org/apk/briar-%s.apk'
 REFERENCE_JAR_URL = 'https://briarproject.org/jar/briar-headless-%s.jar'
 GRADLE_APK_TASK = "briar-android:assembleRelease"
-GRADLE_JAR_TASK = "briar-headless:assemble"
+GRADLE_JAR_TASK = "briar-headless:%s"
 APK_PATH = "briar-android/build/outputs/apk/official/release/" + \
            "briar-android-official-release-unsigned.apk"
 OLD_APK_PATH = "briar-android/build/outputs/apk/release/briar-android-release-unsigned.apk"
-JAR_PATH= "briar-headless/build/libs/briar-headless.jar"
+JAR_PATH= "briar-headless/build/libs/briar-headless-%s.jar"
 BUILD_DIR = "briar-build"
 
+JAR_FLAVOURS = [
+                   {
+                       "task": "x86LinuxJar",
+                       "file": "linux-x86_64"
+                   },
+                   {
+                       "task": "aarch64LinuxJar",
+                       "file": "linux-aarch64"
+                   },
+                   {
+                       "task": "armhfLinuxJar",
+                       "file": "linux-armhf"
+                   }
+               ]
+
 
 def main():
     if len(sys.argv) > 2:
@@ -34,10 +49,21 @@ def main():
     reference_apk = "briar-%s.apk" % version
     check_call(['wget', '--no-verbose', apk_url, '-O', reference_apk])
 
-    jar_url = REFERENCE_JAR_URL % version
-    reference_jar = "briar-headless-%s.jar" % version
-    if version >= "1.2.10":
-        check_call(['wget', '--no-verbose', jar_url, '-O', reference_jar])
+    reference_jars = list()
+    if version >= "1.2.17":
+        for flavour in JAR_FLAVOURS:
+            suffix = flavour['file'] + "-" + version
+            jar_url = REFERENCE_JAR_URL % suffix
+            reference_jar = "briar-headless-%s.jar" % suffix
+            reference_jars.append(reference_jar)
+            if version >= "1.2.10":
+                check_call(['wget', '--no-verbose', jar_url, '-O', reference_jar])
+    else:
+        jar_url = REFERENCE_JAR_URL % version
+        reference_jar = "briar-headless-%s.jar" % version
+        reference_jars.append(reference_jar)
+        if version >= "1.2.10":
+            check_call(['wget', '--no-verbose', jar_url, '-O', reference_jar])
 
     # use non-deterministic file system for building the app to detect issues
     if not os.path.exists(BUILD_DIR):
@@ -46,18 +72,32 @@ def main():
     atexit.register(unmount)
 
     # build the app
-    check_call(["./gradlew", "--no-daemon", GRADLE_APK_TASK, GRADLE_JAR_TASK], cwd=BUILD_DIR)
+    if version >= "1.2.17":
+        tasks = list()
+        for flavour in JAR_FLAVOURS:
+            tasks.append(GRADLE_JAR_TASK % flavour["task"])
+        check_call(["./gradlew", "--no-daemon", GRADLE_APK_TASK, *tasks], cwd=BUILD_DIR)
+    else:
+        gradle_jar_task = "briar-headless:assemble"
+        check_call(["./gradlew", "--no-daemon", GRADLE_APK_TASK, gradle_jar_task], cwd=BUILD_DIR)
 
     # check if both APKs match
     apk = os.path.join(BUILD_DIR, APK_PATH if version >= "1.1.0" else OLD_APK_PATH)
     if not verify_apk(reference_apk, apk):
         sys.exit(1)
 
-    # check if both jars match
+    # check if jars match pairwise
     if version >= "1.2.10":
-        jar = os.path.join(BUILD_DIR, JAR_PATH)
-        if not verify_jar(reference_jar, jar):
-            sys.exit(1)
+        if version >= "1.2.17":
+            for i in range(len(JAR_FLAVOURS)):
+                flavour = JAR_FLAVOURS[i]
+                jar = os.path.join(BUILD_DIR, JAR_PATH % flavour["file"])
+                if not verify_jar(reference_jars[i], jar):
+                    sys.exit(1)
+        else:
+            jar = os.path.join(BUILD_DIR, "briar-headless/build/libs/briar-headless.jar")
+            if not verify_jar(reference_jars[0], jar):
+                sys.exit(1)
 
     print("Version '%s' was built reproducible! :)" % tag)