import de.undercouch.gradle.tasks.download.Download import de.undercouch.gradle.tasks.download.Verify apply plugin: 'com.android.library' apply plugin: 'witness' apply plugin: 'de.undercouch.download' android { compileSdkVersion 26 buildToolsVersion '26.0.2' defaultConfig { minSdkVersion 14 targetSdkVersion 22 versionCode 1611 versionName "0.16.11" consumerProguardFiles 'proguard-rules.txt' } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } dependencies { compile project(path: ':bramble-core', configuration: 'default') compile fileTree(dir: 'libs', include: '*.jar') annotationProcessor 'com.google.dagger:dagger-compiler:2.0.2' provided 'javax.annotation:jsr250-api:1.0' } 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 } } 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 { torBinaries.every { key, value -> preBuild.dependsOn.add(verifyBinary(key, value)) } }