This commit is contained in:
gdlbo
2024-02-23 02:41:00 +03:00
parent b6e7d24979
commit 4aee200214
8 changed files with 121 additions and 65 deletions
@@ -0,0 +1,78 @@
package ru.vtosters.hooks;
import android.util.Log;
import com.vk.core.network.Network;
import com.vk.core.network.proxy.NetworkProxy;
import com.vk.core.network.proxy.ProxyHost;
import com.vk.core.network.proxy.ProxySettings;
import com.vk.core.preference.Preference;
import com.vtosters.lite.NetworkProxyPreferences;
import okhttp3.*;
import org.json.JSONException;
import org.json.JSONObject;
import ru.vtosters.hooks.other.Preferences;
import ru.vtosters.lite.di.singleton.VtOkHttpClient;
import java.io.IOException;
public class VKProxy {
private static final OkHttpClient sClient = VtOkHttpClient.getInstance();
public static boolean isProxyEnabled() {
return Preferences.getBoolValue("isVKProxyEnabled", false);
}
public static void setProxyStatus(boolean status) {
Preferences.getPreferences().edit().putBoolean("isVKProxyEnabled", status).apply();
}
public static void load() {
if (!isProxyEnabled()) return;
Request request = new Request.a()
.b("https://firebaseremoteconfig.googleapis.com/v1/projects/api-project-841415684880/namespaces/firebase:fetch")
.a(RequestBody.a(MediaType.b("application/json; charset=UTF-8"), "{\"appId\":\"1:841415684880:android:632f429381141121\",\"appInstanceId\":\"RB855168585SG\"}\n"))
// .a("Content-Encoding", "gzip")
// .a("Accept-Encoding", "gzip")
.a("Connection", "Keep-Alive")
.a("X-Android-Package", "com.vkontakte.android")
.a("X-Android-Cert", "C8EAB7342DA62B4A229E1BFDEB27B029DD6788A1")
.a("Host", "firebaseremoteconfig.googleapis.com")
.a("x-goog-api-key", "AIzaSyCL17U2Q5i1NVwIcXgMOZMidSRFHyGYgwM")
.a("User-Agent", Network.l.c().a())
.a();
sClient.a(request).a(new Callback() {
@Override
public void a(Call call, IOException e) {
Log.d("VKProxy", e.getMessage());
}
@Override
public void a(Call call, Response response) throws IOException {
String payload = response.a().g();
Log.d("VKProxy", payload);
try {
JSONObject jsonObject = new JSONObject(payload).getJSONObject("entries");
String configNetworkProxy = jsonObject.getString("config_network_proxy");
String configNetworkProxyCerts = jsonObject.getString("config_network_proxy_certs");
Log.d("VKProxy", configNetworkProxy);
Log.d("VKProxy", configNetworkProxyCerts);
new ProxySettings().c(configNetworkProxy);
new ProxySettings().b(configNetworkProxyCerts);
Preference.b("NetworkProxy", "proxy_enabled_cookie", true);
Preference.b("NetworkProxy", "proxy_user_state", true);
Network.l.b().a(true);
new ProxyHost().a(true);
new NetworkProxyPreferences().a(NetworkProxy.Reason.PROXY_ENABLED_SERVER);
} catch (JSONException e) {
throw new RuntimeException(e);
}
}
});
}
}
@@ -11,6 +11,7 @@ import com.vk.medianative.MediaNative;
import com.vtosters.lite.data.Users;
import com.vtosters.lite.fragments.SettingsListFragment;
import ru.vtosters.hooks.GmsHook;
import ru.vtosters.hooks.VKProxy;
import ru.vtosters.hooks.VerificationsHook;
import ru.vtosters.lite.BuildConfig;
import ru.vtosters.lite.proxy.ProxyUtils;
@@ -33,6 +34,7 @@ public class Preferences {
LifecycleUtils.registerActivities(application);
AnalyticsHelper.start(application);
VKProxy.load();
} // VK Init
public static String getBuildName() {
@@ -14,6 +14,10 @@ import android.widget.Toast;
import androidx.appcompat.view.ContextThemeWrapper;
import b.h.g.m.FileUtils;
import com.vk.core.dialogs.alert.VkAlertDialog;
import com.vk.core.network.Network;
import com.vk.core.network.proxy.NetworkProxy;
import com.vk.core.network.proxy.ProxyHost;
import com.vk.core.preference.Preference;
import com.vk.im.engine.ImEngine1;
import com.vk.im.engine.ImEngineExt;
import com.vk.im.ui.providers.audiomsg.ImAudioMsgPlayerProvider;
@@ -22,8 +26,10 @@ import com.vk.imageloader.VKImageLoader;
import com.vk.media.player.cache.AutoPlayCacheHolder;
import com.vk.mediastore.MediaStorage;
import com.vk.stickers.Stickers;
import com.vtosters.lite.NetworkProxyPreferences;
import com.vtosters.lite.im.ImEngineProvider;
import ru.vtosters.hooks.SwitchHook;
import ru.vtosters.hooks.VKProxy;
import ru.vtosters.hooks.other.Preferences;
import ru.vtosters.hooks.other.ThemesUtils;
import ru.vtosters.lite.ui.PreferenceFragmentUtils;
@@ -276,6 +282,32 @@ public class DataSettingsFragment extends TrackedMaterialPreferenceToolbarFragme
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), AndroidUtils.getString("sett_other"));
PreferenceFragmentUtils.addMaterialSwitchPreference(
getPreferenceScreen(),
"",
"Use Proxy Server",
null,
null,
VKProxy.isProxyEnabled(),
(preference, o) -> {
VKProxy.setProxyStatus((Boolean) o);
VKProxy.load();
if ((Boolean) o) {
Preference.b("NetworkProxy", "proxy_enabled_cookie", true);
Preference.b("NetworkProxy", "proxy_user_state", true);
Network.l.b().a(true);
new ProxyHost().a(true);
} else {
Preference.b("NetworkProxy", "proxy_enabled_cookie", false);
Preference.b("NetworkProxy", "proxy_user_state", false);
Network.l.b().a(false);
new ProxyHost().a(false);
}
return true;
}
);
PreferenceFragmentUtils.addMaterialSwitchPreference(
getPreferenceScreen(),
"disableForceTrafficSaver",
@@ -1162,7 +1162,10 @@
:try_start_0
iput-object p1, p0, Lcom/vk/core/network/proxy/NetworkProxy;->c:Lcom/vk/core/network/proxy/NetworkProxy$c;
const p1, 0x0
.line 7
invoke-static {}, Lru/vtosters/hooks/VKProxy;->isProxyEnabled()Z
move-result p1
if-eqz p1, :cond_1
@@ -1,49 +0,0 @@
.class Lcom/vk/core/network/proxy/ProxyHost$a$a;
.super Ljava/lang/Object;
.source "ProxyHost.java"
# interfaces
.implements Ljava/lang/Runnable;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/vk/core/network/proxy/ProxyHost$a;->a(Ljava/lang/Long;)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
# instance fields
.field final synthetic a:Lcom/vk/core/network/proxy/ProxyHost$a;
# direct methods
.method constructor <init>(Lcom/vk/core/network/proxy/ProxyHost$a;)V
.locals 0
.line 1
iput-object p1, p0, Lcom/vk/core/network/proxy/ProxyHost$a$a;->a:Lcom/vk/core/network/proxy/ProxyHost$a;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public run()V
.locals 1
.line 1
iget-object v0, p0, Lcom/vk/core/network/proxy/ProxyHost$a$a;->a:Lcom/vk/core/network/proxy/ProxyHost$a;
iget-object v0, v0, Lcom/vk/core/network/proxy/ProxyHost$a;->a:Lcom/vk/core/network/proxy/ProxyHost;
invoke-virtual {v0}, Lcom/vk/core/network/proxy/ProxyHost;->i()V
return-void
.end method
@@ -598,9 +598,7 @@
.locals 1
.line 1
iget-object v0, p0, Lcom/vk/core/network/proxy/ProxyHost;->e:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z
invoke-static {}, Lru/vtosters/hooks/VKProxy;->isProxyEnabled()Z
move-result v0
@@ -31,17 +31,7 @@
.locals 3
.line 1
sget-object v0, Lcom/vk/core/util/AppContextHolder;->a:Landroid/content/Context;
invoke-static {v0}, Landroid/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences;
move-result-object v0
const-string v1, "__dbg_proxy_enable"
const/4 v2, 0x0
invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z
invoke-static {}, Lru/vtosters/hooks/VKProxy;->isProxyEnabled()Z
move-result v0
@@ -622,7 +622,9 @@
.line 12
:cond_1
const p1, 0x0
invoke-static {}, Lru/vtosters/hooks/VKProxy;->isProxyEnabled()Z
move-result p1
if-eqz p1, :cond_2