Proxy services inj

This commit is contained in:
gdlbo
2022-08-17 20:09:59 +03:00
parent cc95856e47
commit b6fcf0330d
57 changed files with 704 additions and 88 deletions
@@ -2,7 +2,7 @@ package ru.vtosters.lite.dnr;
import static ru.vtosters.lite.net.Request.makeRequest;
import static ru.vtosters.lite.utils.AccountManagerUtils.getUserToken;
import static ru.vtosters.lite.utils.ProxyUtils.getApi;
import static ru.vtosters.lite.proxy.ProxyUtils.getApi;
import android.util.Log;
@@ -5,8 +5,8 @@ import static android.widget.Toast.makeText;
import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext;
import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier;
import static ru.vtosters.lite.utils.AndroidUtils.getString;
import static ru.vtosters.lite.utils.ProxyUtils.isApiProxyEnabled;
import static ru.vtosters.lite.utils.ProxyUtils.getApi;
import static ru.vtosters.lite.proxy.ProxyUtils.isApiProxyEnabled;
import static ru.vtosters.lite.proxy.ProxyUtils.getApi;
import android.annotation.SuppressLint;
import android.app.ProgressDialog;
@@ -8,7 +8,7 @@ import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import static ru.vtosters.lite.utils.Preferences.dev;
import static ru.vtosters.lite.utils.Preferences.getBoolValue;
import static ru.vtosters.lite.utils.Preferences.getPrefsFromFile;
import static ru.vtosters.lite.utils.ProxyUtils.getApi;
import static ru.vtosters.lite.proxy.ProxyUtils.getApi;
import org.json.JSONArray;
import org.json.JSONException;
@@ -3,8 +3,8 @@ package ru.vtosters.lite.hooks;
import static ru.vtosters.lite.utils.AndroidUtils.dp2px;
import static ru.vtosters.lite.utils.AndroidUtils.edit;
import static ru.vtosters.lite.utils.LifecycleUtils.restartApplication;
import static ru.vtosters.lite.utils.ProxyUtils.isRandomSocksEnabled;
import static ru.vtosters.lite.utils.ProxyUtils.isZaboronaEnabled;
import static ru.vtosters.lite.proxy.ProxyUtils.isRandomProxyEnabled;
import static ru.vtosters.lite.proxy.ProxyUtils.isZaboronaEnabled;
import static ru.vtosters.lite.utils.ThemesUtils.getAccentColor;
import static ru.vtosters.lite.utils.ThemesUtils.getAlertStyle;
import static ru.vtosters.lite.utils.ThemesUtils.getTextAttr;
@@ -40,15 +40,15 @@ public class ProxyHook {
RadioButton rgDefault = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton));
RadioButton rgZaborona = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton));
RadioButton rgRandomSocks = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton));
RadioButton rgRandomProxy = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton));
rg.addView(rgDefault);
rg.addView(rgZaborona);
rg.addView(rgRandomSocks);
rg.addView(rgRandomProxy);
rgDefault.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f));
rgZaborona.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f));
rgRandomSocks.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f));
rgRandomProxy.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f));
rg.setPadding(dp2px(18f), dp2px(12f), dp2px(18f), 0);
@@ -58,12 +58,12 @@ public class ProxyHook {
rgZaborona.setText(AndroidUtils.getString("proxy_enable") + " (Zaborona)");
rgZaborona.setTextColor(getTextAttr());
rgRandomSocks.setText(AndroidUtils.getString("proxy_enable") + " (RandomSocks)");
rgRandomSocks.setTextColor(getTextAttr());
rgRandomProxy.setText(AndroidUtils.getString("proxy_enable") + " (RandomProxy)");
rgRandomProxy.setTextColor(getTextAttr());
rgZaborona.setChecked(isZaboronaEnabled());
rgDefault.setChecked(!isZaboronaEnabled());
rgRandomSocks.setChecked(isRandomSocksEnabled());
rgRandomProxy.setChecked(isRandomProxyEnabled());
AlertDialog.Builder builder = new AlertDialog.Builder(ctx, getAlertStyle());
builder.setTitle(AndroidUtils.getString("vtlproxy"));
@@ -73,8 +73,8 @@ public class ProxyHook {
if (rgZaborona.isChecked()) {
edit().putString("proxy", "zaborona").commit();
restartApplication();
} else if (rgRandomSocks.isChecked()) {
edit().putString("proxy", "randomsocks").commit();
} else if (rgRandomProxy.isChecked()) {
edit().putString("proxy", "randomproxy").commit();
restartApplication();
} else {
edit().putString("proxy", "noproxy").commit();
@@ -0,0 +1,28 @@
package ru.vtosters.lite.proxy;
import android.util.Log;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import okhttp3.OkHttpClient;
import okhttp3.Request;
public class GithubList{
private static final OkHttpClient mClient = new OkHttpClient();
public static ArrayList<String> getProxy(String url, String proxyname) throws IOException{
Request link = new Request.a()
.b(url)
.a();
var response = mClient.a(link).execute().a().g();
if (!response.contains(":")) {
Log.d(proxyname, "No proxy found");
return null;
}
return new ArrayList<>(Arrays.asList(response.split("\n")));
}
}
@@ -1,4 +1,4 @@
package ru.vtosters.lite.utils;
package ru.vtosters.lite.proxy;
import static java.lang.System.clearProperty;
import static ru.vtosters.lite.utils.AndroidUtils.edit;
@@ -14,12 +14,11 @@ import android.util.Log;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import ru.vtosters.lite.proxy.CustomHttp;
import ru.vtosters.lite.proxy.CustomHttps;
import ru.vtosters.lite.proxy.CustomSocks;
import ru.vtosters.lite.proxy.Hookzof;
import ru.vtosters.lite.proxy.http.CustomHttp;
import ru.vtosters.lite.proxy.https.CustomHttps;
import ru.vtosters.lite.proxy.socks.CustomSocks;
import ru.vtosters.lite.proxy.RandomProxy;
import ru.vtosters.lite.proxy.Zaborona;
import ru.vtosters.lite.proxy.socks.Zaborona;
public class ProxyUtils {
public static String getApi() {
@@ -36,14 +35,18 @@ public class ProxyUtils {
return getPrefsValue("proxy").equals("zaborona");
}
public static Boolean isRandomSocksEnabled() {
return getPrefsValue("proxy").equals("randomsocks");
public static Boolean isRandomProxyEnabled() {
return getPrefsValue("proxy").equals("randomproxy");
}
public static Boolean isApiProxyEnabled() {
return getPrefsValue("proxy").equals("apiproxy");
}
public static Boolean isVikaProxyEnabled() {
return getPrefsValue("proxy").equals("vika");
}
public static void forceProxyApplying() {
Log.d("Proxy", "Setting proxy...");
try {
@@ -92,7 +95,7 @@ public class ProxyUtils {
case "zaborona":
Zaborona.loadProxy();
break;
case "randomsocks":
case "randomproxy":
RandomProxy.loadProxy();
break;
case "socks":
@@ -121,6 +124,5 @@ public class ProxyUtils {
clearProperty("http.proxyPassword");
clearProperty("socksProxyHost");
clearProperty("socksPortHost");
edit().putString("proxy", "noproxy").commit();
} // Reset all proxies
}
@@ -1,18 +1,37 @@
package ru.vtosters.lite.proxy;
import static ru.vtosters.lite.utils.ProxyUtils.forceProxyApplying;
import ru.vtosters.lite.proxy.socks.Hookzof;
import ru.vtosters.lite.proxy.socks.Jetkai;
import ru.vtosters.lite.proxy.socks.Roosterkid;
import ru.vtosters.lite.proxy.socks.TheSpeedX;
public class RandomProxy{
public static void loadProxy(){
var random = new java.util.Random();
var randomInt = random.nextInt(2);
switch (randomInt){ // TODO make more services
var randomInt = random.nextInt(7);
switch (randomInt){
case 0:
Hookzof.loadProxy();
break;
case 1:
System.setProperty("socksProxyHost", "socks.zaboronahelp.pp.ua");
System.setProperty("socksProxyPort", "1488");
forceProxyApplying();
TheSpeedX.loadProxy();
break;
case 2:
Jetkai.loadProxy();
break;
case 3:
Roosterkid.loadProxy();
break;
case 4:
ru.vtosters.lite.proxy.http.Jetkai.loadProxy();
break;
case 5:
ru.vtosters.lite.proxy.http.TheSpeedX.loadProxy();
break;
case 6:
ru.vtosters.lite.proxy.https.Jetkai.loadProxy();
break;
case 7:
ru.vtosters.lite.proxy.https.Roosterkid.loadProxy();
break;
}
}
@@ -1,6 +1,7 @@
package ru.vtosters.lite.proxy;
package ru.vtosters.lite.proxy.api;
import static ru.vtosters.lite.proxy.ProxyUtils.isVikaProxyEnabled;
import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
import static ru.vtosters.lite.utils.ProxyUtils.isApiProxyEnabled;
import static ru.vtosters.lite.proxy.ProxyUtils.isApiProxyEnabled;
import android.util.Log;
@@ -14,6 +15,12 @@ public class ApiProxy{
var proxyoauth = getPrefsValue("proxyoauth");
var proxystatic = getPrefsValue("proxystatic");
if (isVikaProxyEnabled()) {
proxyapi = VikaMobile.getApiHost();
proxyoauth = VikaMobile.getOauthHost();
proxystatic = VikaMobile.getStaticHost();
}
if (!isApiProxyEnabled() || link.isEmpty()) {
return link;
}
@@ -0,0 +1,20 @@
package ru.vtosters.lite.proxy.api;
import static ru.vtosters.lite.utils.Preferences.getBoolValue;
public class VikaMobile{
public static String getApiHost(){
return isAlternativeHost() ? "vk-api-proxy.vikamobile.ru" : "vk-api-proxy.symbian.live";
}
public static String getOauthHost(){
return isAlternativeHost() ? "vk-oauth-proxy.vikamobile.ru" : "vk-oauth-proxy.symbian.live";
}
public static String getStaticHost(){
return isAlternativeHost() ? "vk-static-proxy.vikamobile.ru" : "vk-static-proxy.symbian.live";
}
public static Boolean isAlternativeHost(){
return getBoolValue("altervika", false);
}
}
@@ -1,6 +1,6 @@
package ru.vtosters.lite.proxy;
package ru.vtosters.lite.proxy.http;
import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
import static ru.vtosters.lite.utils.ProxyUtils.forceProxyApplying;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
public class CustomHttp{
public static void loadProxy(){
@@ -0,0 +1,76 @@
package ru.vtosters.lite.proxy.http;
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
import android.util.Log;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class Jetkai{
private static final OkHttpClient mClient = new OkHttpClient();
public static void loadProxy() {
Request link = new Request.a()
.b("https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-http.txt")
.a();
mClient.a(link).a(new Callback() {
@Override
public void a(Call call, IOException e) {
Log.d("Jetkai", "Error while getting proxy: " + e);
loadError();
}
@Override
public void a(Call call, Response response){
try {
setData(response);
} catch (NullPointerException | IOException e) {
e.printStackTrace();
}
}
});
}
static void setData(Response response) throws IOException{
String resp = response.a().g();
if (!hasProxy(resp)) {
Log.d("Jetkai", "No proxy found");
return;
}
ArrayList<String> proxyList = new ArrayList<>(Arrays.asList(resp.split("\n")));
Log.d("Jetkai", proxyList.toString());
String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size()));
if (!hasProxy(proxy)) {
Log.d("Jetkai", "No proxy port found");
return;
}
Log.d("Jetkai", "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]);
System.setProperty("http.proxyHost", proxy.split(":")[0]);
System.setProperty("http.proxyPort", proxy.split(":")[1]);
forceProxyApplying();
}
static boolean hasProxy(String list) {
return list.contains(":"); // proxy format: ip:port
}
static void loadError() {
sendToast("Error while getting proxy Jetkai");
}
}
@@ -0,0 +1,76 @@
package ru.vtosters.lite.proxy.http;
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
import android.util.Log;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class TheSpeedX{
private static final OkHttpClient mClient = new OkHttpClient();
public static void loadProxy() {
Request link = new Request.a()
.b("https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/http.txt")
.a();
mClient.a(link).a(new Callback() {
@Override
public void a(Call call, IOException e) {
Log.d("TheSpeedX", "Error while getting proxy: " + e);
loadError();
}
@Override
public void a(Call call, Response response){
try {
setData(response);
} catch (NullPointerException | IOException e) {
e.printStackTrace();
}
}
});
}
static void setData(Response response) throws IOException{
String resp = response.a().g();
if (!hasProxy(resp)) {
Log.d("TheSpeedX", "No proxy found");
return;
}
ArrayList<String> proxyList = new ArrayList<>(Arrays.asList(resp.split("\n")));
Log.d("TheSpeedX", proxyList.toString());
String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size()));
if (!hasProxy(proxy)) {
Log.d("TheSpeedX", "No proxy port found");
return;
}
Log.d("TheSpeedX", "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]);
System.setProperty("http.proxyHost", proxy.split(":")[0]);
System.setProperty("http.proxyPort", proxy.split(":")[1]);
forceProxyApplying();
}
static boolean hasProxy(String list) {
return list.contains(":"); // proxy format: ip:port
}
static void loadError() {
sendToast("Error while getting proxy TheSpeedX");
}
}
@@ -1,6 +1,6 @@
package ru.vtosters.lite.proxy;
package ru.vtosters.lite.proxy.https;
import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
import static ru.vtosters.lite.utils.ProxyUtils.forceProxyApplying;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
public class CustomHttps{
public static void loadProxy(){
@@ -0,0 +1,76 @@
package ru.vtosters.lite.proxy.https;
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
import android.util.Log;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class Jetkai{
private static final OkHttpClient mClient = new OkHttpClient();
public static void loadProxy() {
Request link = new Request.a()
.b("https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-https.txt")
.a();
mClient.a(link).a(new Callback() {
@Override
public void a(Call call, IOException e) {
Log.d("Jetkai", "Error while getting proxy: " + e);
loadError();
}
@Override
public void a(Call call, Response response){
try {
setData(response);
} catch (NullPointerException | IOException e) {
e.printStackTrace();
}
}
});
}
static void setData(Response response) throws IOException{
String resp = response.a().g();
if (!hasProxy(resp)) {
Log.d("Jetkai", "No proxy found");
return;
}
ArrayList<String> proxyList = new ArrayList<>(Arrays.asList(resp.split("\n")));
Log.d("Jetkai", proxyList.toString());
String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size()));
if (!hasProxy(proxy)) {
Log.d("Jetkai", "No proxy port found");
return;
}
Log.d("Jetkai", "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]);
System.setProperty("https.proxyHost", proxy.split(":")[0]);
System.setProperty("https.proxyPort", proxy.split(":")[1]);
forceProxyApplying();
}
static boolean hasProxy(String list) {
return list.contains(":"); // proxy format: ip:port
}
static void loadError() {
sendToast("Error while getting proxy Jetkai");
}
}
@@ -0,0 +1,77 @@
package ru.vtosters.lite.proxy.https;
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
import android.util.Log;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class Roosterkid{
private static final OkHttpClient mClient = new OkHttpClient();
public static void loadProxy() {
Request link = new Request.a()
.b("https://raw.githubusercontent.com/roosterkid/openproxylist/main/HTTPS_RAW.txt")
.a();
mClient.a(link).a(new Callback() {
@Override
public void a(Call call, IOException e) {
Log.d("Roosterkid", "Error while getting proxy: " + e);
loadError();
}
@Override
public void a(Call call, Response response){
try {
setData(response);
} catch (NullPointerException | IOException e) {
e.printStackTrace();
}
}
});
}
static void setData(Response response) throws IOException{
String resp = response.a().g();
if (!hasProxy(resp)) {
Log.d("Roosterkid", "No proxy found");
return;
}
ArrayList<String> proxyList = new ArrayList<>(Arrays.asList(resp.split("\n")));
Log.d("Roosterkid", proxyList.toString());
String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size()));
if (!hasProxy(proxy)) {
Log.d("Roosterkid", "No proxy port found");
return;
}
Log.d("Roosterkid", "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]);
System.setProperty("https.proxyHost", proxy.split(":")[0]);
System.setProperty("https.proxyPort", proxy.split(":")[1]);
forceProxyApplying();
}
static boolean hasProxy(String list) {
return list.contains(":"); // proxy format: ip:port
}
static void loadError() {
sendToast("Error while getting proxy Roosterkid");
}
}
@@ -1,6 +1,6 @@
package ru.vtosters.lite.proxy;
package ru.vtosters.lite.proxy.socks;
import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
import static ru.vtosters.lite.utils.ProxyUtils.forceProxyApplying;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
public class CustomSocks{
public static void loadProxy(){
@@ -1,6 +1,6 @@
package ru.vtosters.lite.proxy;
package ru.vtosters.lite.proxy.socks;
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import static ru.vtosters.lite.utils.ProxyUtils.forceProxyApplying;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
import android.util.Log;
@@ -0,0 +1,76 @@
package ru.vtosters.lite.proxy.socks;
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
import android.util.Log;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class Jetkai{
private static final OkHttpClient mClient = new OkHttpClient();
public static void loadProxy() {
Request link = new Request.a()
.b("https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-socks5.txt")
.a();
mClient.a(link).a(new Callback() {
@Override
public void a(Call call, IOException e) {
Log.d("Jetkai", "Error while getting proxy: " + e);
loadError();
}
@Override
public void a(Call call, Response response){
try {
setData(response);
} catch (NullPointerException | IOException e) {
e.printStackTrace();
}
}
});
}
static void setData(Response response) throws IOException{
String resp = response.a().g();
if (!hasProxy(resp)) {
Log.d("Jetkai", "No proxy found");
return;
}
ArrayList<String> proxyList = new ArrayList<>(Arrays.asList(resp.split("\n")));
Log.d("Jetkai", proxyList.toString());
String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size()));
if (!hasProxy(proxy)) {
Log.d("Jetkai", "No proxy port found");
return;
}
Log.d("Jetkai", "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]);
System.setProperty("socksProxyHost", proxy.split(":")[0]);
System.setProperty("socksProxyPort", proxy.split(":")[1]);
forceProxyApplying();
}
static boolean hasProxy(String list) {
return list.contains(":"); // proxy format: ip:port
}
static void loadError() {
sendToast("Error while getting proxy Jetkai");
}
}
@@ -0,0 +1,76 @@
package ru.vtosters.lite.proxy.socks;
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
import android.util.Log;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class Roosterkid{
private static final OkHttpClient mClient = new OkHttpClient();
public static void loadProxy() {
Request link = new Request.a()
.b("https://raw.githubusercontent.com/roosterkid/openproxylist/main/SOCKS5_RAW.txt")
.a();
mClient.a(link).a(new Callback() {
@Override
public void a(Call call, IOException e) {
Log.d("Roosterkid", "Error while getting proxy: " + e);
loadError();
}
@Override
public void a(Call call, Response response){
try {
setData(response);
} catch (NullPointerException | IOException e) {
e.printStackTrace();
}
}
});
}
static void setData(Response response) throws IOException{
String resp = response.a().g();
if (!hasProxy(resp)) {
Log.d("Roosterkid", "No proxy found");
return;
}
ArrayList<String> proxyList = new ArrayList<>(Arrays.asList(resp.split("\n")));
Log.d("Roosterkid", proxyList.toString());
String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size()));
if (!hasProxy(proxy)) {
Log.d("Roosterkid", "No proxy port found");
return;
}
Log.d("Roosterkid", "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]);
System.setProperty("socksProxyHost", proxy.split(":")[0]);
System.setProperty("socksProxyPort", proxy.split(":")[1]);
forceProxyApplying();
}
static boolean hasProxy(String list) {
return list.contains(":"); // proxy format: ip:port
}
static void loadError() {
sendToast("Error while getting proxy Roosterkid");
}
}
@@ -0,0 +1,76 @@
package ru.vtosters.lite.proxy.socks;
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
import android.util.Log;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class TheSpeedX{
private static final OkHttpClient mClient = new OkHttpClient();
public static void loadProxy() {
Request link = new Request.a()
.b("https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/socks5.txt")
.a();
mClient.a(link).a(new Callback() {
@Override
public void a(Call call, IOException e) {
Log.d("TheSpeedX", "Error while getting proxy: " + e);
loadError();
}
@Override
public void a(Call call, Response response){
try {
setData(response);
} catch (NullPointerException | IOException e) {
e.printStackTrace();
}
}
});
}
static void setData(Response response) throws IOException{
String resp = response.a().g();
if (!hasProxy(resp)) {
Log.d("TheSpeedX", "No proxy found");
return;
}
ArrayList<String> proxyList = new ArrayList<>(Arrays.asList(resp.split("\n")));
Log.d("TheSpeedX", proxyList.toString());
String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size()));
if (!hasProxy(proxy)) {
Log.d("TheSpeedX", "No proxy port found");
return;
}
Log.d("TheSpeedX", "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]);
System.setProperty("socksProxyHost", proxy.split(":")[0]);
System.setProperty("socksProxyPort", proxy.split(":")[1]);
forceProxyApplying();
}
static boolean hasProxy(String list) {
return list.contains(":"); // proxy format: ip:port
}
static void loadError() {
sendToast("Error while getting proxy TheSpeedX");
}
}
@@ -1,5 +1,5 @@
package ru.vtosters.lite.proxy;
import static ru.vtosters.lite.utils.ProxyUtils.forceProxyApplying;
package ru.vtosters.lite.proxy.socks;
import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying;
public class Zaborona{
public static void loadProxy(){
@@ -8,7 +8,7 @@ import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
import static ru.vtosters.lite.utils.CacheUtils.getInstance;
import static ru.vtosters.lite.utils.DeletedMessagesHandler.reloadMessagesList;
import static ru.vtosters.lite.utils.NewsFeedFiltersUtils.setupFilters;
import static ru.vtosters.lite.utils.ProxyUtils.setProxy;
import static ru.vtosters.lite.proxy.ProxyUtils.setProxy;
import static ru.vtosters.lite.utils.SignatureChecker.validateAppSignature;
import static ru.vtosters.lite.utils.ThemesUtils.isDarkTheme;
import static ru.vtosters.lite.utils.VTVerifications.isPrometheus;
@@ -5,7 +5,7 @@ import static ru.vtosters.lite.utils.About.getBuildNumber;
import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
import static ru.vtosters.lite.utils.Preferences.dev;
import static ru.vtosters.lite.utils.Preferences.vksans;
import static ru.vtosters.lite.utils.ProxyUtils.isApiProxyEnabled;
import static ru.vtosters.lite.proxy.ProxyUtils.isApiProxyEnabled;
import static ru.vtosters.lite.utils.ThemesUtils.isDarkTheme;
public class SSFSUtils {
+2 -1
View File
@@ -595,7 +595,8 @@
<string-array name="proxy">
<item>Без прокси</item>
<item>zaborona.help</item>
<item>Рандомный Socks5</item>
<item>VikaMobile</item>
<item>Рандомный прокси</item>
<item>Сторонний прокси для API</item>
<item>Сторонний HTTP</item>
<item>Сторонний HTTPS</item>
+4 -2
View File
@@ -743,7 +743,8 @@
<string-array name="proxy">
<item>No Proxy</item>
<item>zaborona.help</item>
<item>Random Socks5</item>
<item>VikaMobile</item>
<item>Random proxy</item>
<item>Custom API proxy</item>
<item>Custom HTTP</item>
<item>Custom HTTPS</item>
@@ -752,7 +753,8 @@
<string-array name="proxy_value">
<item>noproxy</item>
<item>zaborona</item>
<item>randomsocks</item>
<item>vika</item>
<item>randomproxy</item>
<item>apiproxy</item>
<item>http</item>
<item>https</item>
+4
View File
@@ -78,6 +78,10 @@
android:title="@string/proxyport" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/proxyowners">
<com.vtosters.lite.ui.MaterialSwitchPreference
android:defaultValue="false"
android:key="altervika"
android:title="Альтернативный домен VikaMobile" />
<Preference
android:persistent="false"
android:summary="@string/proxyownersxtr"
@@ -103,7 +103,7 @@
const-string v0, "api.vk.com"
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -123,7 +123,7 @@
const-string v0, "api.vk.com"
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -1258,7 +1258,7 @@
move-result-object v0
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -1267,7 +1267,7 @@
:cond_0
const-string v0, "api.vk.com"
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -71,7 +71,7 @@
const-string v0, "api.vk.com"
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -114,7 +114,7 @@
const-string v3, "https://oauth.vk.com/blank.html"
invoke-static {v3}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v3}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
@@ -202,7 +202,7 @@
:cond_0
const-string v0, "https://oauth.vk.com/authorize"
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
File diff suppressed because one or more lines are too long
@@ -47,7 +47,7 @@
const-string v1, "static.vk.com/restore"
invoke-static {v1}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v1}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
@@ -657,7 +657,7 @@
move-result-object v0
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -56,7 +56,7 @@
const-string v0, "oauth.vk.com"
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -166,7 +166,7 @@
const-string v2, "https://static.vk.com/promo_codes/"
invoke-static {v2}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v2}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
@@ -640,7 +640,7 @@
const-string v0, ""
:goto_0
invoke-static {}, Lru/vtosters/lite/proxy/ApiProxy;->getAwayPhpCom()Ljava/lang/String;
invoke-static {}, Lru/vtosters/lite/proxy/api/ApiProxy;->getAwayPhpCom()Ljava/lang/String;
move-result-object v0
@@ -187,7 +187,7 @@
const-string v3, "https://api.vk.com/method/execute"
invoke-static {v3}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v3}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
@@ -275,7 +275,7 @@
const-string v3, "api.vk.com"
invoke-static {v3}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v3}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
@@ -56,7 +56,7 @@
const-string v4, "static.vk.com"
invoke-static {v4}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v4}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
@@ -84,7 +84,7 @@
const-string v4, "static.vk.com"
invoke-static {v4}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v4}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
@@ -132,7 +132,7 @@
move-result-object v0
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -1217,7 +1217,7 @@
const-string v3, "static.vk.com"
invoke-static {v3}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v3}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
@@ -1968,7 +1968,7 @@
move-result-object v1
invoke-static {v1}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v1}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
@@ -1491,7 +1491,7 @@
move-result-object p1
invoke-static {p1}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {p1}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
@@ -1585,7 +1585,7 @@
const-string p3, "https://oauth.vk.com/authorize"
invoke-static {p3}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {p3}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object p3
@@ -240,7 +240,7 @@
move-result-object p3
invoke-static {p3}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {p3}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object p3
@@ -182,7 +182,7 @@
.line 16
:goto_0
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -97,7 +97,7 @@
const-string v4, "oauth.vk.com"
invoke-static {v4}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v4}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
@@ -207,7 +207,7 @@
const-string v4, "https://oauth.vk.com/blank.html"
invoke-static {v4}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v4}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
@@ -296,7 +296,7 @@
const-string v1, "oauth.vk.com"
invoke-static {v1}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v1}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
@@ -82,7 +82,7 @@
.line 3
:goto_0
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -326,7 +326,7 @@
const-string v3, "oauth.vk.com"
invoke-static {v3}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v3}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
@@ -208,7 +208,7 @@
const-string v0, "api.vk.com"
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -305,7 +305,7 @@
const-string v3, "api.vk.com"
invoke-static {v3}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v3}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
@@ -68,7 +68,7 @@
const-string v1, "oauth.vk.com"
invoke-static {v1}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v1}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
@@ -305,7 +305,7 @@
:goto_5
const-string p2, "api.vk.com"
invoke-static {p2}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {p2}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
@@ -1986,7 +1986,7 @@
const-string v1, "static.vk.com"
invoke-static {v1}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v1}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
@@ -2004,7 +2004,7 @@
const-string v2, "previous_oauth"
invoke-static {v1}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v1}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
@@ -2018,7 +2018,7 @@
const-string v1, "api.vk.com"
invoke-static {v1}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v1}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
@@ -40,7 +40,7 @@
const-string v1, "oauth.vk.com"
invoke-static {v1}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v1}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
@@ -182,7 +182,7 @@
const-string v0, "https://oauth.vk.com/blank.html#state=webview_refresh_access_token"
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -1012,7 +1012,7 @@
const-string v2, "https://oauth.vk.com/webview_token"
invoke-static {v2}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v2}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
@@ -1202,7 +1202,7 @@
const-string v0, "https://oauth.vk.com/webview_token"
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -70,7 +70,7 @@
move-result-object v0
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0