diff --git a/briar-android/.gitignore b/briar-android/.gitignore
index 216c35063ecddba09d050a3e6d558df0f1190226..f30761ae8846712f8c769c1ed6f4ba998768745f 100644
--- a/briar-android/.gitignore
+++ b/briar-android/.gitignore
@@ -3,3 +3,5 @@ gen
 build
 local.properties
 .settings
+assets/geoip.zip
+assets/tor-*.zip
diff --git a/briar-android/assets/geoip.zip b/briar-android/assets/geoip.zip
deleted file mode 100644
index bbe4b8522f9856b1bfbdb4f6821c72c246f29651..0000000000000000000000000000000000000000
Binary files a/briar-android/assets/geoip.zip and /dev/null differ
diff --git a/briar-android/assets/tor-arm-pie.zip b/briar-android/assets/tor-arm-pie.zip
deleted file mode 100644
index 914b2253421a452ebe908b22239e971b0c977371..0000000000000000000000000000000000000000
Binary files a/briar-android/assets/tor-arm-pie.zip and /dev/null differ
diff --git a/briar-android/assets/tor-arm.zip b/briar-android/assets/tor-arm.zip
deleted file mode 100644
index e7a4c0a2ca4cf2caa6ea9c5108415f4be877f538..0000000000000000000000000000000000000000
Binary files a/briar-android/assets/tor-arm.zip and /dev/null differ
diff --git a/briar-android/assets/tor-x86-pie.zip b/briar-android/assets/tor-x86-pie.zip
deleted file mode 100644
index d7528a8c9c2e11f90f5c3a2a57577122a1d51311..0000000000000000000000000000000000000000
Binary files a/briar-android/assets/tor-x86-pie.zip and /dev/null differ
diff --git a/briar-android/assets/tor-x86.zip b/briar-android/assets/tor-x86.zip
deleted file mode 100644
index 0f13441f82d9834ba3896f3f49ccd5f939924ea2..0000000000000000000000000000000000000000
Binary files a/briar-android/assets/tor-x86.zip and /dev/null differ
diff --git a/briar-android/build.gradle b/briar-android/build.gradle
index 7e79c0dffb8beccb996572f080d61001d71f22e5..01c2cb118f9b57bac0940aa2a0db0042bd9e2e04 100644
--- a/briar-android/build.gradle
+++ b/briar-android/build.gradle
@@ -1,6 +1,10 @@
+import de.undercouch.gradle.tasks.download.Download
+import de.undercouch.gradle.tasks.download.Verify
+
 apply plugin: 'com.android.application'
 apply plugin: 'witness'
 apply plugin: 'com.neenbedankt.android-apt'
+apply plugin: 'de.undercouch.download'
 
 repositories {
 	jcenter()
@@ -80,7 +84,6 @@ android {
 
 	buildTypes {
 		debug {
-			// Set this to true to run proguard in debug
 			minifyEnabled true
 			proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
 		}
@@ -94,7 +97,80 @@ android {
 		sourceCompatibility JavaVersion.VERSION_1_6
 		targetCompatibility JavaVersion.VERSION_1_6
 	}
+
 	lintOptions {
 		abortOnError false
 	}
 }
+
+task downloadTorGeoIp(type: Download) {
+    src 'https://briarproject.org/build/geoip-2015-12-01.zip'
+    dest 'assets/geoip.zip'
+    onlyIfNewer true
+}
+
+task downloadTorBinaryArm(type: Download) {
+    src 'https://briarproject.org/build/tor-0.2.7.6-arm.zip'
+    dest 'assets/tor-arm.zip'
+    onlyIfNewer true
+}
+
+task downloadTorBinaryArmPie(type: Download) {
+    src 'https://briarproject.org/build/tor-0.2.7.6-arm-pie.zip'
+    dest 'assets/tor-arm-pie.zip'
+    onlyIfNewer true
+}
+
+task downloadTorBinaryX86(type: Download) {
+    src 'https://briarproject.org/build/tor-0.2.7.6-x86.zip'
+    dest 'assets/tor-x86.zip'
+    onlyIfNewer true
+}
+
+task downloadTorBinaryX86Pie(type: Download) {
+    src 'https://briarproject.org/build/tor-0.2.7.6-x86-pie.zip'
+    dest 'assets/tor-x86-pie.zip'
+    onlyIfNewer true
+}
+
+task verifyTorGeoIp(type: Verify, dependsOn: 'downloadTorGeoIp') {
+    src 'assets/geoip.zip'
+    algorithm 'SHA-256'
+    checksum '9bcdaf0a7ba0933735328d8ec466c25c25dbb459efc2bce9e55c774eabea5162'
+}
+
+task verifyTorBinaryArm(type: Verify, dependsOn: 'downloadTorBinaryArm') {
+    src 'assets/tor-arm.zip'
+    algorithm 'SHA-256'
+    checksum '83272962eda701cd5d74d2418651c4ff0f0b1dff51f558a292d1a1c42bf12146'
+}
+
+task verifyTorBinaryArmPie(type: Verify, dependsOn: 'downloadTorBinaryArmPie') {
+    src 'assets/tor-arm-pie.zip'
+    algorithm 'SHA-256'
+    checksum 'd0300d1e45de11ebb24ed62b9c492be9c2e88590b7822195ab38c7a76ffcf646'
+}
+
+task verifyTorBinaryX86(type: Verify, dependsOn: 'downloadTorBinaryX86') {
+    src 'assets/tor-x86.zip'
+    algorithm 'SHA-256'
+    checksum 'b8813d97b01ee1b9c9a4233c1b9bbe9f9f6b494ae6f9cbd84de8a3911911615e'
+}
+
+task verifyTorBinaryX86Pie(type: Verify, dependsOn: 'downloadTorBinaryX86Pie') {
+    src 'assets/tor-x86-pie.zip'
+    algorithm 'SHA-256'
+    checksum '9c66e765aa196dc089951a1b2140cc8290305c2fcbf365121f99e01a233baf4e'
+}
+
+project.afterEvaluate {
+    preBuild.dependsOn {
+        [
+                'verifyTorGeoIp',
+                'verifyTorBinaryArm',
+                'verifyTorBinaryArmPie',
+                'verifyTorBinaryX86',
+                'verifyTorBinaryX86Pie'
+        ]
+    }
+}
diff --git a/build.gradle b/build.gradle
index ced77342bc37c91ea29a98393749e5577da03864..8b5763eb946f993f5f229b357daed03af0b342e6 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,10 +5,13 @@ buildscript {
 		maven {
 			url "https://plugins.gradle.org/m2/"
 		}
+		jcenter()
 	}
+
 	dependencies {
 		classpath 'com.android.tools.build:gradle:1.5.0'
 		classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
+		classpath 'de.undercouch:gradle-download-task:2.1.0'
 		classpath files('briar-core/libs/gradle-witness.jar')
 	}
 }
\ No newline at end of file