From c5a6abe3db0948288ae50e73eaaa9bdae2549b03 Mon Sep 17 00:00:00 2001 From: Adrien ASESIO Date: Wed, 25 Mar 2020 11:24:44 -0400 Subject: [PATCH 1/3] Fix: #137 --- android/proguard-rules.pro | 2 +- .../toronionproxy/OnionProxyContext.java | 4 +- ...igBuilder.java => TorSettingsBuilder.java} | 140 +++++++++--------- 3 files changed, 72 insertions(+), 74 deletions(-) rename universal/src/main/java/com/msopentech/thali/toronionproxy/{TorConfigBuilder.java => TorSettingsBuilder.java} (79%) diff --git a/android/proguard-rules.pro b/android/proguard-rules.pro index 4e8cec78..cadd4e50 100644 --- a/android/proguard-rules.pro +++ b/android/proguard-rules.pro @@ -5,5 +5,5 @@ # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html -keepattributes *Annotation* --keep public class com.msopentech.thali.toronionproxy.TorConfigBuilder { *; } +-keep public class com.msopentech.thali.toronionproxy.TorSettingsBuilder { *; } diff --git a/universal/src/main/java/com/msopentech/thali/toronionproxy/OnionProxyContext.java b/universal/src/main/java/com/msopentech/thali/toronionproxy/OnionProxyContext.java index 0fe9a442..84312a1b 100644 --- a/universal/src/main/java/com/msopentech/thali/toronionproxy/OnionProxyContext.java +++ b/universal/src/main/java/com/msopentech/thali/toronionproxy/OnionProxyContext.java @@ -206,8 +206,8 @@ public final TorSettings getSettings() { return settings; } - public final TorConfigBuilder newConfigBuilder() { - return new TorConfigBuilder(this); + public final TorSettingsBuilder newSettingsBuilder() { + return new TorSettingsBuilder(this); } /** diff --git a/universal/src/main/java/com/msopentech/thali/toronionproxy/TorConfigBuilder.java b/universal/src/main/java/com/msopentech/thali/toronionproxy/TorSettingsBuilder.java similarity index 79% rename from universal/src/main/java/com/msopentech/thali/toronionproxy/TorConfigBuilder.java rename to universal/src/main/java/com/msopentech/thali/toronionproxy/TorSettingsBuilder.java index ab119485..bcd76be5 100644 --- a/universal/src/main/java/com/msopentech/thali/toronionproxy/TorConfigBuilder.java +++ b/universal/src/main/java/com/msopentech/thali/toronionproxy/TorSettingsBuilder.java @@ -18,26 +18,24 @@ import java.net.InetSocketAddress; import java.net.Socket; import java.util.ArrayList; -import java.util.Collections; import java.util.List; -import java.util.Random; -public final class TorConfigBuilder { +public final class TorSettingsBuilder { private final TorSettings settings; private final OnionProxyContext context; private StringBuffer buffer = new StringBuffer(); - public TorConfigBuilder(OnionProxyContext context) { + public TorSettingsBuilder(OnionProxyContext context) { this.settings = context.getSettings(); this.context = context; } /** - * Updates the tor config for all methods annotated with SettingsConfig + * Updates the tor settings for all methods annotated with SettingsConfig */ - public TorConfigBuilder updateTorConfig() throws Exception { + public TorSettingsBuilder updateTorSettings() throws Exception { for(Method method : getClass().getMethods()) { for (Annotation annotation : method.getAnnotations()) { if (annotation instanceof SettingsConfig) { @@ -75,24 +73,24 @@ public String asString() { return buffer.toString(); } - public TorConfigBuilder automapHostsOnResolve() { + public TorSettingsBuilder automapHostsOnResolve() { buffer.append("AutomapHostsOnResolve 1").append('\n'); return this; } @SettingsConfig - public TorConfigBuilder automapHostsOnResolveFromSettings() { + public TorSettingsBuilder automapHostsOnResolveFromSettings() { return settings.isAutomapHostsOnResolve() ? automapHostsOnResolve() : this; } - public TorConfigBuilder bridge(String type, String config) { + public TorSettingsBuilder bridge(String type, String config) { if (!isNullOrEmpty(type) && !isNullOrEmpty(config)) { buffer.append("Bridge ").append(type).append(' ').append(config).append('\n'); } return this; } - public TorConfigBuilder bridgeCustom(String config) { + public TorSettingsBuilder bridgeCustom(String config) { if (!isNullOrEmpty(config)) { buffer.append("Bridge ").append(config).append('\n'); } @@ -100,7 +98,7 @@ public TorConfigBuilder bridgeCustom(String config) { } @SettingsConfig - public TorConfigBuilder bridgesFromSettings() { + public TorSettingsBuilder bridgesFromSettings() { try { addBridgesFromResources(); } catch (IOException e) { @@ -109,7 +107,7 @@ public TorConfigBuilder bridgesFromSettings() { return this; } - public TorConfigBuilder configurePluggableTransportsFromSettings(File pluggableTransportClient) throws IOException { + public TorSettingsBuilder configurePluggableTransportsFromSettings(File pluggableTransportClient) throws IOException { if (pluggableTransportClient == null) { return this; } @@ -128,39 +126,39 @@ public TorConfigBuilder configurePluggableTransportsFromSettings(File pluggableT return this; } - public TorConfigBuilder cookieAuthentication() { + public TorSettingsBuilder cookieAuthentication() { buffer.append("CookieAuthentication 1 ").append('\n'); buffer.append("CookieAuthFile ").append(context.getConfig().getCookieAuthFile().getAbsolutePath()).append("\n"); return this; } @SettingsConfig - public TorConfigBuilder cookieAuthenticationFromSettings() { + public TorSettingsBuilder cookieAuthenticationFromSettings() { return settings.hasCookieAuthentication() ? cookieAuthentication() : this; } - public TorConfigBuilder connectionPadding() { + public TorSettingsBuilder connectionPadding() { buffer.append("ConnectionPadding 1").append('\n'); return this; } @SettingsConfig - public TorConfigBuilder connectionPaddingFromSettings() { + public TorSettingsBuilder connectionPaddingFromSettings() { return settings.hasConnectionPadding() ? connectionPadding() : this; } - public TorConfigBuilder controlPortWriteToFile(String controlPortFile) { + public TorSettingsBuilder controlPortWriteToFile(String controlPortFile) { buffer.append("ControlPortWriteToFile ").append(controlPortFile).append('\n'); buffer.append("ControlPort auto\n"); return this; } @SettingsConfig - public TorConfigBuilder controlPortWriteToFileFromConfig() { + public TorSettingsBuilder controlPortWriteToFileFromConfig() { return controlPortWriteToFile(context.config.getControlPortFile().getAbsolutePath()); } - public TorConfigBuilder debugLogs() { + public TorSettingsBuilder debugLogs() { buffer.append("Log debug syslog").append('\n'); buffer.append("Log info syslog").append('\n'); buffer.append("SafeLogging 0").append('\n'); @@ -168,77 +166,77 @@ public TorConfigBuilder debugLogs() { } @SettingsConfig - public TorConfigBuilder debugLogsFromSettings() { + public TorSettingsBuilder debugLogsFromSettings() { return settings.hasDebugLogs() ? debugLogs() : this; } - public TorConfigBuilder disableNetwork() { + public TorSettingsBuilder disableNetwork() { buffer.append("DisableNetwork 1").append('\n'); return this; } @SettingsConfig - public TorConfigBuilder disableNetworkFromSettings() { + public TorSettingsBuilder disableNetworkFromSettings() { return settings.disableNetwork() ? disableNetwork() : this; } - public TorConfigBuilder dnsPort(String dnsPort) { + public TorSettingsBuilder dnsPort(String dnsPort) { if (!isNullOrEmpty(dnsPort)) buffer.append("DNSPort ").append(dnsPort).append('\n'); return this; } @SettingsConfig - public TorConfigBuilder dnsPortFromSettings() { + public TorSettingsBuilder dnsPortFromSettings() { return dnsPort(settings.dnsPort()); } - public TorConfigBuilder dontUseBridges() { + public TorSettingsBuilder dontUseBridges() { buffer.append("UseBridges 0").append('\n'); return this; } - public TorConfigBuilder dormantCanceledByStartup() { + public TorSettingsBuilder dormantCanceledByStartup() { buffer.append("DormantCanceledByStartup 1\n"); return this; } @SettingsConfig - public TorConfigBuilder dormantCanceledByStartupFromSettings() { + public TorSettingsBuilder dormantCanceledByStartupFromSettings() { if (settings.hasDormantCanceledByStartup()) { dormantCanceledByStartup(); } return this; } - public TorConfigBuilder entryNodes(String entryNodes) { + public TorSettingsBuilder entryNodes(String entryNodes) { if (!isNullOrEmpty(entryNodes)) buffer.append("EntryNodes ").append(entryNodes).append('\n'); return this; } - public TorConfigBuilder excludeNodes(String excludeNodes) { + public TorSettingsBuilder excludeNodes(String excludeNodes) { if (!isNullOrEmpty(excludeNodes)) buffer.append("ExcludeNodes ").append(excludeNodes).append('\n'); return this; } - public TorConfigBuilder exitNodes(String exitNodes) { + public TorSettingsBuilder exitNodes(String exitNodes) { if (!isNullOrEmpty(exitNodes)) buffer.append("ExitNodes ").append(exitNodes).append('\n'); return this; } - public TorConfigBuilder geoIpFile(String path) { + public TorSettingsBuilder geoIpFile(String path) { if (!isNullOrEmpty(path)) buffer.append("GeoIPFile ").append(path).append('\n'); return this; } - public TorConfigBuilder geoIpV6File(String path) { + public TorSettingsBuilder geoIpV6File(String path) { if (!isNullOrEmpty(path)) buffer.append("GeoIPv6File ").append(path).append('\n'); return this; } - public TorConfigBuilder httpTunnelPort(int port, String isolationFlags) { + public TorSettingsBuilder httpTunnelPort(int port, String isolationFlags) { buffer.append("HTTPTunnelPort ").append(port); if (!isNullOrEmpty(isolationFlags)) { buffer.append(" ").append(isolationFlags); @@ -248,17 +246,17 @@ public TorConfigBuilder httpTunnelPort(int port, String isolationFlags) { } @SettingsConfig - public TorConfigBuilder httpTunnelPortFromSettings() { + public TorSettingsBuilder httpTunnelPortFromSettings() { return httpTunnelPort(settings.getHttpTunnelPort(), settings.hasIsolationAddressFlagForTunnel() ? "IsolateDestAddr" : null); } - public TorConfigBuilder line(String value) { + public TorSettingsBuilder line(String value) { if (!isNullOrEmpty(value)) buffer.append(value).append("\n"); return this; } - public TorConfigBuilder makeNonExitRelay(String dnsFile, int orPort, String nickname) { + public TorSettingsBuilder makeNonExitRelay(String dnsFile, int orPort, String nickname) { buffer.append("ServerDNSResolvConfFile ").append(dnsFile).append('\n'); buffer.append("ORPort ").append(orPort).append('\n'); buffer.append("Nickname ").append(nickname).append('\n'); @@ -270,7 +268,7 @@ public TorConfigBuilder makeNonExitRelay(String dnsFile, int orPort, String nick * Sets the entry/exit/exclude nodes */ @SettingsConfig - public TorConfigBuilder nodesFromSettings() { + public TorSettingsBuilder nodesFromSettings() { entryNodes(settings.getEntryNodes()).exitNodes(settings.getExitNodes()) .excludeNodes(settings.getExcludeNodes()); return this; @@ -280,7 +278,7 @@ public TorConfigBuilder nodesFromSettings() { * Adds non exit relay to builder. This method uses a default google nameserver. */ @SettingsConfig - public TorConfigBuilder nonExitRelayFromSettings() { + public TorSettingsBuilder nonExitRelayFromSettings() { if (!settings.hasReachableAddress() && !settings.hasBridges() && settings.isRelay()) { try { File resolv = context.createGoogleNameserverFile(); @@ -293,26 +291,26 @@ public TorConfigBuilder nonExitRelayFromSettings() { return this; } - public TorConfigBuilder proxyOnAllInterfaces() { + public TorSettingsBuilder proxyOnAllInterfaces() { buffer.append("SocksListenAddress 0.0.0.0").append('\n'); return this; } @SettingsConfig - public TorConfigBuilder proxyOnAllInterfacesFromSettings() { + public TorSettingsBuilder proxyOnAllInterfacesFromSettings() { return settings.hasOpenProxyOnAllInterfaces() ? proxyOnAllInterfaces() : this; } /** * Set socks5 proxy with no authentication. This can be set if yo uare using a VPN. */ - public TorConfigBuilder proxySocks5(String host, String port) { + public TorSettingsBuilder proxySocks5(String host, String port) { buffer.append("socks5Proxy ").append(host).append(':').append(port).append('\n'); return this; } @SettingsConfig - public TorConfigBuilder proxySocks5FromSettings() { + public TorSettingsBuilder proxySocks5FromSettings() { return (settings.useSocks5() && !settings.hasBridges()) ? proxySocks5(settings .getProxySocks5Host(), settings.getProxySocks5ServerPort()) : this; @@ -322,7 +320,7 @@ public TorConfigBuilder proxySocks5FromSettings() { * Sets proxyWithAuthentication information. If proxyType, proxyHost or proxyPort is empty, * then this method does nothing. */ - public TorConfigBuilder proxyWithAuthentication(String proxyType, String proxyHost, String + public TorSettingsBuilder proxyWithAuthentication(String proxyType, String proxyHost, String proxyPort, String proxyUser, String proxyPass) { if (!isNullOrEmpty(proxyType) && !isNullOrEmpty(proxyHost) && !isNullOrEmpty(proxyPort)) { buffer.append(proxyType).append("Proxy ").append(proxyHost).append(':').append @@ -345,7 +343,7 @@ public TorConfigBuilder proxyWithAuthentication(String proxyType, String proxyHo } @SettingsConfig - public TorConfigBuilder proxyWithAuthenticationFromSettings() { + public TorSettingsBuilder proxyWithAuthenticationFromSettings() { return (!settings.useSocks5() && !settings.hasBridges()) ? proxyWithAuthentication (settings.getProxyType(), settings.getProxyHost(), settings.getProxyPort(), settings.getProxyUser(), settings @@ -353,26 +351,26 @@ public TorConfigBuilder proxyWithAuthenticationFromSettings() { this; } - public TorConfigBuilder reachableAddressPorts(String reachableAddressesPorts) { + public TorSettingsBuilder reachableAddressPorts(String reachableAddressesPorts) { if (!isNullOrEmpty(reachableAddressesPorts)) buffer.append("ReachableAddresses ").append(reachableAddressesPorts).append('\n'); return this; } @SettingsConfig - public TorConfigBuilder reachableAddressesFromSettings() { + public TorSettingsBuilder reachableAddressesFromSettings() { return settings.hasReachableAddress() ? reachableAddressPorts(settings .getReachableAddressPorts()) : this; } - public TorConfigBuilder reducedConnectionPadding() { + public TorSettingsBuilder reducedConnectionPadding() { buffer.append("ReducedConnectionPadding 1").append('\n'); return this; } @SettingsConfig - public TorConfigBuilder reducedConnectionPaddingFromSettings() { + public TorSettingsBuilder reducedConnectionPaddingFromSettings() { return settings.hasReducedConnectionPadding() ? reducedConnectionPadding() : this; } @@ -381,31 +379,31 @@ public void reset() { } @SettingsConfig - public TorConfigBuilder runAsDaemonFromSettings() { + public TorSettingsBuilder runAsDaemonFromSettings() { return settings.runAsDaemon() ? runAsDaemon() : this; } - public TorConfigBuilder runAsDaemon() { + public TorSettingsBuilder runAsDaemon() { buffer.append("RunAsDaemon 1").append('\n'); return this; } - public TorConfigBuilder safeSocksDisable() { + public TorSettingsBuilder safeSocksDisable() { buffer.append("SafeSocks 0").append('\n'); return this; } - public TorConfigBuilder safeSocksEnable() { + public TorSettingsBuilder safeSocksEnable() { buffer.append("SafeSocks 1").append('\n'); return this; } @SettingsConfig - public TorConfigBuilder safeSocksFromSettings() { + public TorSettingsBuilder safeSocksFromSettings() { return !settings.hasSafeSocks() ? safeSocksDisable() : safeSocksEnable(); } - public TorConfigBuilder setGeoIpFiles() throws IOException { + public TorSettingsBuilder setGeoIpFiles() throws IOException { TorConfig torConfig = context.getConfig(); if (torConfig.getGeoIpFile().exists()) { geoIpFile(torConfig.getGeoIpFile().getCanonicalPath()) @@ -414,7 +412,7 @@ public TorConfigBuilder setGeoIpFiles() throws IOException { return this; } - public TorConfigBuilder socksPort(String socksPort, String isolationFlag) { + public TorSettingsBuilder socksPort(String socksPort, String isolationFlag) { if (isNullOrEmpty(socksPort)) { return this; } @@ -431,7 +429,7 @@ public TorConfigBuilder socksPort(String socksPort, String isolationFlag) { } @SettingsConfig - public TorConfigBuilder socksPortFromSettings() { + public TorSettingsBuilder socksPortFromSettings() { String socksPort = settings.getSocksPort(); if (socksPort.indexOf(':') != -1) { socksPort = socksPort.split(":")[1]; @@ -444,76 +442,76 @@ public TorConfigBuilder socksPortFromSettings() { "IsolateDestAddr" : null); } - public TorConfigBuilder strictNodesDisable() { + public TorSettingsBuilder strictNodesDisable() { buffer.append("StrictNodes 0\n"); return this; } - public TorConfigBuilder strictNodesEnable() { + public TorSettingsBuilder strictNodesEnable() { buffer.append("StrictNodes 1\n"); return this; } @SettingsConfig - public TorConfigBuilder strictNodesFromSettings() { + public TorSettingsBuilder strictNodesFromSettings() { return settings.hasStrictNodes() ? strictNodesEnable() : strictNodesDisable(); } - public TorConfigBuilder testSocksDisable() { + public TorSettingsBuilder testSocksDisable() { buffer.append("TestSocks 0").append('\n'); return this; } - public TorConfigBuilder testSocksEnable() { + public TorSettingsBuilder testSocksEnable() { buffer.append("TestSocks 0").append('\n'); return this; } @SettingsConfig - public TorConfigBuilder testSocksFromSettings() { + public TorSettingsBuilder testSocksFromSettings() { return !settings.hasTestSocks() ? testSocksDisable() : this; } @SettingsConfig - public TorConfigBuilder torrcCustomFromSettings() throws UnsupportedEncodingException { + public TorSettingsBuilder torrcCustomFromSettings() throws UnsupportedEncodingException { return settings.getCustomTorrc() != null ? line(new String(settings.getCustomTorrc().getBytes("US-ASCII"))) : this; } - public TorConfigBuilder transPort(String transPort) { + public TorSettingsBuilder transPort(String transPort) { if (!isNullOrEmpty(transPort)) buffer.append("TransPort ").append(transPort).append('\n'); return this; } @SettingsConfig - public TorConfigBuilder transPortFromSettings() { + public TorSettingsBuilder transPortFromSettings() { return transPort(settings.transPort()); } - public TorConfigBuilder transportPlugin(String clientPath) { + public TorSettingsBuilder transportPlugin(String clientPath) { buffer.append("ClientTransportPlugin meek_lite,obfs3,obfs4 exec ").append(clientPath).append('\n'); return this; } - public TorConfigBuilder useBridges() { + public TorSettingsBuilder useBridges() { buffer.append("UseBridges 1").append('\n'); return this; } @SettingsConfig - public TorConfigBuilder useBridgesFromSettings() { + public TorSettingsBuilder useBridgesFromSettings() { return settings.hasBridges() ? useBridges() : this; } - public TorConfigBuilder virtualAddressNetwork(String address) { + public TorSettingsBuilder virtualAddressNetwork(String address) { if (!isNullOrEmpty(address)) buffer.append("VirtualAddrNetwork ").append(address).append('\n'); return this; } @SettingsConfig - public TorConfigBuilder virtualAddressNetworkFromSettings() { + public TorSettingsBuilder virtualAddressNetworkFromSettings() { return virtualAddressNetwork(settings.getVirtualAddressNetwork()); } @@ -532,7 +530,7 @@ public TorConfigBuilder virtualAddressNetworkFromSettings() { * * */ - TorConfigBuilder addBridgesFromResources() throws IOException { + TorSettingsBuilder addBridgesFromResources() throws IOException { if(settings.hasBridges()) { InputStream bridgesStream = context.getInstaller().openBridgesStream(); int formatType = bridgesStream.read(); From 71e239c924dc7f300ac873509552761f2c28ff1e Mon Sep 17 00:00:00 2001 From: Adrien ASESIO Date: Wed, 25 Mar 2020 11:54:32 -0400 Subject: [PATCH 2/3] Updated TOR binary to 0.4.2.5 Updated dependencies Updated to Gradle 5.6.4 Updated to Gradle Android Plugin 3.6.0 --- android/build.gradle | 17 ++++++++++------- android_tor_installer/build.gradle | 3 ++- gradle.properties | 2 +- gradle/wrapper/gradle-wrapper.properties | 3 ++- java/build.gradle | 4 ++-- universal/build.gradle | 4 ++-- 6 files changed, 19 insertions(+), 14 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index a8d9bdca..c43f0543 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -6,6 +6,7 @@ buildscript { repositories { mavenLocal() mavenCentral() + jcenter() google() } dependencies { @@ -40,7 +41,9 @@ publishing { groupId 'com.msopentech.thali.toronionproxy.android' artifactId 'android' version '0.0.3' - artifact(sourceJar) + afterEvaluate { + artifact(sourceJar) + } artifact("$buildDir/outputs/aar/android-release.aar") pom.withXml { def dependenciesNode = asNode().appendNode('dependencies') @@ -67,14 +70,14 @@ task sourceJar(type: Jar) { dependencies { implementation project(':universal') implementation 'net.freehaven.tor.control:jtorctl:0.2' - implementation 'org.slf4j:slf4j-api:1.7.25' - implementation 'org.slf4j:slf4j-android:1.7.25' + implementation 'org.slf4j:slf4j-api:1.7.30' + implementation 'org.slf4j:slf4j-android:1.7.30' implementation 'com.android.support:appcompat-v7:28.0.0' - testImplementation 'junit:junit:4.12' + testImplementation 'junit:junit:4.13' androidTestImplementation project(':android_tor_installer') - androidTestImplementation 'org.torproject:tor-android-binary:0.3.5.8-rc-v2' - androidTestImplementation 'com.android.support.test:runner:1.0.1' - androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' + androidTestImplementation 'org.torproject:tor-android-binary:0.4.2.5' + androidTestImplementation 'com.android.support.test:runner:1.0.2' + androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' } repositories { diff --git a/android_tor_installer/build.gradle b/android_tor_installer/build.gradle index 554fd496..c5b62802 100644 --- a/android_tor_installer/build.gradle +++ b/android_tor_installer/build.gradle @@ -6,6 +6,7 @@ buildscript { repositories { mavenLocal() mavenCentral() + jcenter() google() } dependencies { @@ -41,7 +42,7 @@ task sourceJar(type: Jar) { dependencies { implementation project(':universal') - implementation 'org.torproject:tor-android-binary:0.3.5.8-rc-v2' + implementation 'org.torproject:tor-android-binary:0.4.2.5' } repositories { diff --git a/gradle.properties b/gradle.properties index 7e9d7bde..4cc79950 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ # Configure Android Gradle Plugin Version -androidplugin=3.2.1 +androidplugin=3.6.0 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 290541c7..6e917311 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ +#Wed Mar 25 11:39:13 EDT 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip diff --git a/java/build.gradle b/java/build.gradle index 47a0d82f..c1f6294d 100644 --- a/java/build.gradle +++ b/java/build.gradle @@ -12,11 +12,11 @@ repositories { } dependencies { - implementation 'org.slf4j:slf4j-api:1.7.25' + implementation 'org.slf4j:slf4j-api:1.7.30' implementation 'org.slf4j:slf4j-simple:1.7.25' implementation 'net.freehaven.tor.control:jtorctl:0.2' implementation project(':universal') - testCompile group: 'junit', name: 'junit', version: '4.12' + testCompile group: 'junit', name: 'junit', version: '4.13' } task sourcesJar(type:Jar){ diff --git a/universal/build.gradle b/universal/build.gradle index 43812d9c..599e6bd5 100644 --- a/universal/build.gradle +++ b/universal/build.gradle @@ -12,9 +12,9 @@ repositories { } dependencies { - implementation 'org.slf4j:slf4j-api:1.7.25' + implementation 'org.slf4j:slf4j-api:1.7.30' implementation 'net.freehaven.tor.control:jtorctl:0.2' - testCompile group: 'junit', name: 'junit', version: '4.12' + testCompile group: 'junit', name: 'junit', version: '4.13' } task sourcesJar(type:Jar){ From c5064eb0c24aaddff697e91804d340de34126c86 Mon Sep 17 00:00:00 2001 From: Adrien ASESIO Date: Wed, 25 Mar 2020 12:39:23 -0400 Subject: [PATCH 3/3] Removed androidPlugin var, creating problem sometimes Added publishing for android_tor_installer --- android/build.gradle | 2 +- android_tor_installer/build.gradle | 29 ++++++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index c43f0543..2b85199b 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -10,7 +10,7 @@ buildscript { google() } dependencies { - classpath "com.android.tools.build:gradle:${androidplugin}" + classpath "com.android.tools.build:gradle:3.6.0" } } diff --git a/android_tor_installer/build.gradle b/android_tor_installer/build.gradle index c5b62802..91f660c0 100644 --- a/android_tor_installer/build.gradle +++ b/android_tor_installer/build.gradle @@ -10,7 +10,7 @@ buildscript { google() } dependencies { - classpath "com.android.tools.build:gradle:${androidplugin}" + classpath "com.android.tools.build:gradle:3.6.0" } } @@ -35,6 +35,33 @@ android { } } +publishing { + publications { + android(MavenPublication) { + groupId 'com.msopentech.thali.toronionproxy.android' + artifactId 'android_tor_installer' + version '0.0.3' + afterEvaluate { + artifact(sourceJar) + } + artifact("$buildDir/outputs/aar/android_tor_installer-release.aar") + pom.withXml { + def dependenciesNode = asNode().appendNode('dependencies') + //Iterate over the compile dependencies (we don't want the test ones), adding a node for each + configurations.compile.allDependencies.each { + if(it.group != null && (it.name != null || "unspecified".equals(it.name)) && it.version != null) + { + def dependencyNode = dependenciesNode.appendNode('dependency') + dependencyNode.appendNode('groupId', it.group) + dependencyNode.appendNode('artifactId', it.name) + dependencyNode.appendNode('version', it.version) + } + } + } + } + } +} + task sourceJar(type: Jar) { from android.sourceSets.main.java.srcDirs classifier "source"