diff --git a/bramble-android/build.gradle b/bramble-android/build.gradle index b372cf7f3d8d4a9fb88c16f41dc1aa2729e748c2..95c19866b5714a55ce61381cd523b3ab67148b47 100644 --- a/bramble-android/build.gradle +++ b/bramble-android/build.gradle @@ -29,76 +29,43 @@ dependencies { provided 'javax.annotation:jsr250-api:1.0' } -def torBinaryDir = 'src/main/res/raw' - -task downloadTorGeoIp(type: Download) { - src 'https://briarproject.org/build/geoip-2017-09-06.zip' - dest "$torBinaryDir/geoip.zip" - onlyIfNewer true -} - -task downloadTorBinaryArm(type: Download) { - src 'https://briarproject.org/build/tor-0.2.9.12-arm.zip' - dest "$torBinaryDir/tor_arm.zip" - onlyIfNewer true -} - -task downloadTorBinaryArmPie(type: Download) { - src 'https://briarproject.org/build/tor-0.2.9.12-arm-pie.zip' - dest "$torBinaryDir/tor_arm_pie.zip" - onlyIfNewer true -} - -task downloadTorBinaryX86(type: Download) { - src 'https://briarproject.org/build/tor-0.2.9.12-x86.zip' - dest "$torBinaryDir/tor_x86.zip" - onlyIfNewer true -} - -task downloadTorBinaryX86Pie(type: Download) { - src 'https://briarproject.org/build/tor-0.2.9.12-x86-pie.zip' - dest "$torBinaryDir/tor_x86_pie.zip" - onlyIfNewer true -} - -task verifyTorGeoIp(type: Verify, dependsOn: 'downloadTorGeoIp') { - src "$torBinaryDir/geoip.zip" - algorithm 'SHA-256' - checksum 'fe49d3adb86d3c512373101422a017dbb86c85a570524663f09dd8ce143a24f3' -} - -task verifyTorBinaryArm(type: Verify, dependsOn: 'downloadTorBinaryArm') { - src "$torBinaryDir/tor_arm.zip" - algorithm 'SHA-256' - checksum '8ed0b347ffed1d6a4d2fd14495118eb92be83e9cc06e057e15220dc288b31688' -} - -task verifyTorBinaryArmPie(type: Verify, dependsOn: 'downloadTorBinaryArmPie') { - src "$torBinaryDir/tor_arm_pie.zip" - algorithm 'SHA-256' - checksum '64403262511c29f462ca5e7c7621bfc3c944898364d1d5ad35a016bb8a034283' -} - -task verifyTorBinaryX86(type: Verify, dependsOn: 'downloadTorBinaryX86') { - src "$torBinaryDir/tor_x86.zip" - algorithm 'SHA-256' - checksum '61e014607a2079bcf1646289c67bff6372b1aded6e1d8d83d7791efda9a4d5ab' +ext.torBinaryDir = 'src/main/res/raw' +ext.torVersion = '0.2.9.12' +ext.geoipVersion = '2017-09-06' +ext.torDownloadUrl = 'https://briarproject.org/build/' + +def torBinaries = [ + "tor_arm" : '8ed0b347ffed1d6a4d2fd14495118eb92be83e9cc06e057e15220dc288b31688', + "tor_arm_pie": '64403262511c29f462ca5e7c7621bfc3c944898364d1d5ad35a016bb8a034283', + "tor_x86" : '61e014607a2079bcf1646289c67bff6372b1aded6e1d8d83d7791efda9a4d5ab', + "tor_x86_pie": '18fbc98356697dd0895836ab46d5c9877d1c539193464f7db1e82a65adaaf288', + "geoip" : 'fe49d3adb86d3c512373101422a017dbb86c85a570524663f09dd8ce143a24f3' +] + +def downloadBinary(name) { + return tasks.create("downloadBinary${name}", Download) { + src "$torDownloadUrl${name}.zip" + .replace('tor_', "tor-${torVersion}-") + .replace('geoip', "geoip-${geoipVersion}") + .replaceAll('_', '-') + dest "$torBinaryDir/${name}.zip" + onlyIfNewer true + } } -task verifyTorBinaryX86Pie(type: Verify, dependsOn: 'downloadTorBinaryX86Pie') { - src "$torBinaryDir/tor_x86_pie.zip" - algorithm 'SHA-256' - checksum '18fbc98356697dd0895836ab46d5c9877d1c539193464f7db1e82a65adaaf288' +def verifyBinary(name, chksum) { + return tasks.create([ + name : "verifyBinary${name}", + type : Verify, + dependsOn: downloadBinary(name)]) { + src "$torBinaryDir/${name}.zip" + algorithm 'SHA-256' + checksum chksum + } } project.afterEvaluate { - preBuild.dependsOn { - [ - 'verifyTorGeoIp', - 'verifyTorBinaryArm', - 'verifyTorBinaryArmPie', - 'verifyTorBinaryX86', - 'verifyTorBinaryX86Pie' - ] + torBinaries.every { key, value -> + preBuild.dependsOn.add(verifyBinary(key, value)) } }