AdGuard v3.6.45版本的 MD5 值为:ce30a13dcef92cf942973fffcc6d20fb

以下内容为反编译后的 g.java 源代码,内容仅作参考


package com.adguard.android.service;

import android.content.Context;
import android.content.pm.PackageInfo;
import android.os.Build;
import android.provider.Settings;
import com.adguard.android.R;
import com.adguard.android.events.PremiumStatusChangeListener;
import com.adguard.android.events.model.Event;
import com.adguard.android.filtering.api.UserscriptMeta;
import com.adguard.android.filtering.commons.DeviceName;
import com.adguard.android.model.AppConfiguration;
import com.adguard.android.model.enums.Theme;
import com.adguard.android.model.events.EventsAction;
import com.adguard.android.model.events.EventsCategory;
import com.adguard.android.model.filters.FilterGroup;
import com.adguard.corelibs.CoreLibs;
import com.adguard.dnslibs.proxy.BuildConfig;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.math.NumberUtils;
public class g implements f {
    private static final org.slf4j.c f302a = org.slf4j.d.a(g.class);
    private final Context b;
    private final PreferencesService c;
    private final ad d;

    public g(Context context, PreferencesService preferencesService, ad adVar) {
        f302a.info("Creating ApplicationService instance for {}", context);
        this.b = context;
        this.c = preferencesService;
        this.d = adVar;
    }

    private void a(boolean z, Date date, String str, boolean z2, boolean z3) {
        f302a.info("Set premium preferences to premium={} trial={} expiration={}", Boolean.valueOf(z), Boolean.valueOf(z2), date);
        boolean d = d();
        boolean e = e();
        this.c.d(str);
        this.c.f(z);
        this.c.a(date);
        this.c.j(z2);
        if (d != z) {
            if (z) {
                this.c.n(false);
                c cVar = com.adguard.android.b.a(this.b).e;
                if (com.adguard.kit.compatibility.a.g() && cVar.b("pref.vpn.android10.mitigate")) {
                    com.adguard.android.b.a(this.b).w.a(true);
                }
            }
            com.adguard.android.b.a(this.b).g.k();
        }
        v vVar = com.adguard.android.b.a(this.b).t;
        if (!z3) {
            vVar.a(z2, date);
        }
        if (!z2 && !z) {
            vVar.a(com.adguard.android.a.p.d(this.b));
        }
        if (z2 && !e) {
            vVar.b(R.l.trial_activated_toast);
        }
        PremiumStatusChangeListener.a aVar = new PremiumStatusChangeListener.a(d, e, z, z2, date, str);
        com.adguard.android.b.a(this.b).E.a(new Event<>(EventsCategory.PREMIUM_STATUS, EventsAction.CHANGED, "premium_status_changed", z2 ? "trial" : z ? "premium" : "free"));
        com.adguard.android.events.b.a().a(aVar);
    }

    @Override
    public final com.adguard.android.api.dto.f a(String str, String str2, String str3) {
        return com.adguard.android.api.b.c().a(b(), com.adguard.android.a.p.c(this.b), str, str2, str3, this.c.u(), this.c.v(), DeviceName.getFriendlyDeviceName());
    }

    @Override
    public final AppConfiguration a() {
        com.adguard.android.b a2 = com.adguard.android.b.a(this.b);
        m mVar = a2.b;
        j jVar = a2.c;
        aq aqVar = a2.D;
        c cVar = a2.e;
        p pVar = a2.j;
        v vVar = a2.t;
        com.adguard.android.dns.service.a aVar = a2.w;
        ai aiVar = a2.B;
        AppConfiguration appConfiguration = new AppConfiguration();
        appConfiguration.setApplicationId(b());
        appConfiguration.setVersionName(com.adguard.android.a.p.c(this.b));
        appConfiguration.setVersionTitle(com.adguard.android.a.a().k());
        appConfiguration.setDnsLibsVersion(BuildConfig.VERSION_NAME);
        appConfiguration.setKitLibVersion("2.0.74.3");
        appConfiguration.setEventsLibVersion("1.1.1");
        appConfiguration.setIconType(vVar.d());
        appConfiguration.setDeviceName(DeviceName.getDeviceInformation());
        String str = Build.VERSION.RELEASE;
        int i = Build.VERSION.SDK_INT;
        appConfiguration.setAndroidVersion(str + " (sdk=" + i + ")");
        appConfiguration.setKernelVersion(System.getProperty("os.version"));
        CoreLibs.Versions coreLibsVersions = CoreLibs.getCoreLibsVersions();
        appConfiguration.setCoreLibsVersion(coreLibsVersions.core);
        appConfiguration.setScriptletsLibraryVersion(coreLibsVersions.scriptletsLibrary);
        appConfiguration.setUserScriptWrapperVersion(coreLibsVersions.userScriptWrapper);
        appConfiguration.setContentScriptVersion(coreLibsVersions.contentScript);
        appConfiguration.setStealthScriptVersion(coreLibsVersions.stealthScript);
        appConfiguration.setEnvironment(com.adguard.android.a.a().j());
        appConfiguration.setPremium(d());
        appConfiguration.setTrial(this.c.A());
        appConfiguration.setAutoStartEnabled(this.c.a());
        appConfiguration.setShowUsefulAds(mVar.r());
        appConfiguration.setFiltersAutoUpdateEnabled(this.c.b());
        appConfiguration.setEnabledFilterNames(mVar.u());
        appConfiguration.setCustomFiltersEnabled(mVar.b(FilterGroup.CUSTOM));
        appConfiguration.setBrowsingSecurityEnabled(this.d.b());
        appConfiguration.setSendAnonymousStatistics(this.d.a());
        appConfiguration.setFilterAppsTraffic(f());
        appConfiguration.setWhitelist(mVar.c());
        appConfiguration.setDisabledWhitelistRules(mVar.p());
        appConfiguration.setUserfilter(mVar.f());
        appConfiguration.setDisabledRules(mVar.j());
        appConfiguration.setProxyMode(this.c.r());
        appConfiguration.setProxySetupManualMode(this.c.s());
        appConfiguration.setProxyPort(this.c.q());
        appConfiguration.setCurrentWifiProxyConfiguration(new com.adguard.android.model.g(System.getProperty("http.proxyHost"), NumberUtils.toInt(System.getProperty("http.proxyPort")), System.getProperty("http.nonProxyHosts"), System.getProperty("http.proxyUser"), System.getProperty("http.proxyPassword")).toString());
        appConfiguration.setFilteringQuality(this.c.x());
        appConfiguration.setUpdateChannel(this.c.F());
        appConfiguration.setDnsEnabled(aVar.h());
        appConfiguration.setDnsBlocking(aVar.i());
        appConfiguration.setDnsUserfilter(jVar.f());
        appConfiguration.setDisabledDnsRules(jVar.j());
        com.adguard.android.model.dns.f f = aVar.f();
        if (f != null) {
            appConfiguration.setDnsUpstreamSettings(f.toString());
        }
        List<com.adguard.android.model.filters.b> b = jVar.b();
        if (CollectionUtils.isNotEmpty(b)) {
            ArrayList arrayList = new ArrayList();
            for (com.adguard.android.model.filters.b bVar : b) {
                if (bVar.isEnabled()) {
                    arrayList.add(String.format(Locale.US, "Name: %s; Id: %d; Subscription URL: %s", bVar.getName(), Integer.valueOf(bVar.getFilterId()), bVar.getSubscriptionUrl()));
                }
            }
            if (!arrayList.isEmpty()) {
                appConfiguration.setEnabledDnsFilters(arrayList);
            }
        }
        appConfiguration.setUserscriptsEnabled(aqVar.d());
        List<com.adguard.android.filtering.api.l> b2 = aqVar.b();
        if (CollectionUtils.isNotEmpty(b2)) {
            ArrayList arrayList2 = new ArrayList();
            for (com.adguard.android.filtering.api.l lVar : b2) {
                UserscriptMeta meta = lVar.getMeta();
                if (meta != null) {
                    arrayList2.add(String.format(Locale.US, "Name: %s; Version: %s; Subscription URL: %s", meta.getName(), meta.getVersion(), meta.getUrlForUpdate()));
                }
            }
            if (!arrayList2.isEmpty()) {
                appConfiguration.setUserscriptsEnabledList(arrayList2);
            }
        }
        w wVar = a2.v;
        appConfiguration.setOutboundProxyEnabled(wVar.a());
        ArrayList arrayList3 = new ArrayList();
        List<com.adguard.android.filtering.api.e> g = wVar.g();
        if (g != null) {
            for (com.adguard.android.filtering.api.e eVar : g) {
                arrayList3.add(eVar.toString());
            }
        }
        appConfiguration.setOutboundProxyList(arrayList3);
        appConfiguration.setStealthModeEnabled(aiVar.a());
        if (aiVar.a()) {
            appConfiguration.setStealthModeConfiguration(aiVar.b());
        }
        appConfiguration.setAdvancedPreferences(cVar.a());
        appConfiguration.setAutomationEnabled(this.c.aq());
        appConfiguration.setEventsEnabled(this.c.ao());
        appConfiguration.setInstallerPackage(com.adguard.android.a.p.a(this.b));
        appConfiguration.setSourceApk(com.adguard.android.a.p.b(this.b));
        com.adguard.android.filtering.api.h c = pVar.c(false);
        appConfiguration.setSslMitmConfiguration(c == null ? null : c.toString());
        List<PackageInfo> installedPackages = this.b.getPackageManager().getInstalledPackages(128);
        ArrayList arrayList4 = new ArrayList();
        for (PackageInfo packageInfo : installedPackages) {
            StringBuilder sb = new StringBuilder();
            sb.append(packageInfo.packageName);
            sb.append(";version=");
            sb.append(packageInfo.versionName);
            sb.append(";system=");
            if ((packageInfo.applicationInfo.flags & 1) != 0) {
                sb.append("true");
            } else {
                sb.append("false");
            }
            arrayList4.add(sb.toString());
        }
        appConfiguration.setInstalledPackages(arrayList4);
        return appConfiguration;
    }

    @Override
    public final void a(Theme theme) {
        this.c.a(theme);
        this.b.getApplicationContext().setTheme(com.adguard.android.ui.utils.g.a(theme).getResId());
    }

    @Override
    public final void a(String str) {
        if (str == null) {
            f302a.warn("Trying to set null language");
            return;
        }
        Locale a2 = com.adguard.android.a.n.a(this.b.getResources().getConfiguration());
        f302a.info("Setting language {}, System language is {}, from resources {}", str, com.adguard.android.a.n.a(com.adguard.android.a.n.a()), a2);
        com.adguard.android.a.n.b(this.b, str);
        com.adguard.android.b.a(this.b).g.a(true);
        this.c.f(str);
    }

    @Override
    public final void a(boolean z) {
        this.c.y(z);
        com.adguard.android.b.a(this.b).E.a(z);
    }

    @Override
    public final void a(boolean z, Date date) {
        a(z, date, null, true);
    }

    @Override
    public final void a(boolean z, Date date, String str, boolean z2) {
        a(z, date, str, false, z2);
        if (z) {
            com.adguard.android.b.a(this.b).t.b();
        }
    }

    @Override
    public final String b() {
        String string = Settings.Secure.getString(this.b.getContentResolver(), "android_id");
        return string != null ? string : "Android";
    }

    @Override
    public final void b(boolean z, Date date) {
        a(z, date, null, z, false);
    }

    @Override
    public final String c() {
        return com.adguard.android.a.p.c(this.b);
    }

    @Override
    public final boolean d() {
        return this.c.m();
    }

    @Override
    public final boolean e() {
        return this.c.A();
    }

    @Override
    public final boolean f() {
        return d() && this.c.n();
    }

    @Override
    public final com.adguard.android.api.dto.f g() {
        return a(this.c.p(), null, null);
    }

    @Override
    public final void h() {
        a(this.c.w());
    }

    @Override
    public final boolean i() {
        if (!com.adguard.android.filtering.filter.f.a()) {
            f302a.info("Device is not idle");
            return false;
        } else if (!com.adguard.commons.e.c.a()) {
            f302a.info("Internet is not available.");
            return false;
        } else if (!this.c.c() || com.adguard.android.filtering.commons.d.d(this.b)) {
            return true;
        } else {
            f302a.info("Updates permitted over Wi-Fi only, but now Wi-Fi is not available.");
            return false;
        }
    }
}