Luno v7.28.0版本的 MD5 值为:08d81b3b88ef7df48c89cb5d56dc11a2

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


package mdi.sdk;

import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.text.TextUtils;
import com.facebook.appevents.AppEventsConstants;
import com.facebook.internal.NativeProtocol;
import com.facebook.share.internal.MessengerShareContentUtility;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

@TargetApi(14)
public final class fb6 {
    public static final String[] c = {"/dev/socket/genyd", "/dev/socket/baseband_genyd"};
    public static final String[] d = {"goldfish"};
    public static final String[] e = {"/dev/socket/qemud", "/dev/qemu_pipe"};
    public static final String[] f = {"ueventd.android_x86.rc", "x86.prop", "ueventd.ttVM_x86.rc", "init.ttVM_x86.rc", "fstab.ttVM_x86", "fstab.vbox86", "init.vbox86.rc", "ueventd.vbox86.rc"};
    public static final String[] g = {"fstab.andy", "ueventd.andy.rc"};
    public static final String[] h = {"fstab.nox", "init.nox.rc", "ueventd.nox.rc"};
    public static final pb6[] i = {new pb6("init.svc.qemud", null), new pb6("init.svc.qemu-props", null), new pb6("qemu.hw.mainkeys", null), new pb6("qemu.sf.fake_camera", null), new pb6("qemu.sf.lcd_density", null), new pb6("ro.bootloader", "unknown"), new pb6("ro.bootmode", "unknown"), new pb6("ro.hardware", "goldfish"), new pb6("ro.kernel.android.qemud", null), new pb6("ro.kernel.qemu.gles", null), new pb6("ro.kernel.qemu", AppEventsConstants.EVENT_PARAM_VALUE_YES), new pb6("ro.product.device", MessengerShareContentUtility.TEMPLATE_GENERIC_TYPE), new pb6("ro.product.model", "sdk"), new pb6("ro.product.name", "sdk"), new pb6("ro.serialno", null)};

    @SuppressLint({"StaticFieldLeak"})
    public static fb6 j;
    public final Context a;
    public List<String> b;

    public interface a {
    }

    public fb6(Context context) {
        ArrayList arrayList = new ArrayList();
        this.b = arrayList;
        this.a = context;
        arrayList.add("com.google.android.launcher.layouts.genymotion");
        this.b.add("com.bluestacks");
        this.b.add("com.bignox.app");
    }

    public final boolean a() {
        boolean z;
        boolean z2 = false;
        if (!Build.FINGERPRINT.startsWith(MessengerShareContentUtility.TEMPLATE_GENERIC_TYPE)) {
            String str = Build.MODEL;
            if (!str.contains("google_sdk") && !str.toLowerCase().contains("droid4x") && !str.contains("Emulator") && !str.contains("Android SDK built for x86") && !Build.MANUFACTURER.contains("Genymotion")) {
                String str2 = Build.HARDWARE;
                if (!str2.equals("goldfish") && !str2.equals("vbox86")) {
                    String str3 = Build.PRODUCT;
                    if (!str3.equals("sdk") && !str3.equals("google_sdk") && !str3.equals("sdk_x86") && !str3.equals("vbox86p") && !Build.BOARD.toLowerCase().contains("nox") && !Build.BOOTLOADER.toLowerCase().contains("nox") && !str2.toLowerCase().contains("nox") && !str3.toLowerCase().contains("nox") && !Build.SERIAL.toLowerCase().contains("nox")) {
                        z = false;
                        if (!z) {
                            return true;
                        }
                        if (Build.BRAND.startsWith(MessengerShareContentUtility.TEMPLATE_GENERIC_TYPE) && Build.DEVICE.startsWith(MessengerShareContentUtility.TEMPLATE_GENERIC_TYPE)) {
                            z2 = true;
                        }
                        boolean z3 = z | z2;
                        if (z3) {
                            return true;
                        }
                        return z3 | "google_sdk".equals(Build.PRODUCT);
                    }
                }
            }
        }
        z = true;
        if (!z) {
        }
    }

    public final boolean b(String[] strArr, String str) {
        for (String str2 : strArr) {
            if (new File(str2).exists()) {
                return true;
            }
        }
        return false;
    }

    public final boolean c() {
        if (androidx.core.content.a.a(this.a, "android.permission.INTERNET") != 0) {
            return false;
        }
        String[] strArr = {"/system/bin/netcfg"};
        StringBuilder sb = new StringBuilder();
        try {
            ProcessBuilder processBuilder = new ProcessBuilder(strArr);
            processBuilder.directory(new File("/system/bin/"));
            processBuilder.redirectErrorStream(true);
            InputStream inputStream = processBuilder.start().getInputStream();
            byte[] bArr = new byte[1024];
            while (inputStream.read(bArr) != -1) {
                sb.append(new String(bArr));
            }
            inputStream.close();
        } catch (Exception unused) {
        }
        String sb2 = sb.toString();
        if (TextUtils.isEmpty(sb2)) {
            return false;
        }
        for (String str : sb2.split("\n")) {
            if ((str.contains("wlan0") || str.contains("tunl0") || str.contains("eth0")) && str.contains("10.0.2.15")) {
                return true;
            }
        }
        return false;
    }

    public final boolean d() {
        boolean z;
        String str;
        String str2 = Build.PRODUCT;
        String str3 = Build.MANUFACTURER;
        String str4 = Build.BRAND;
        String str5 = Build.DEVICE;
        String str6 = Build.MODEL;
        String str7 = Build.HARDWARE;
        String str8 = Build.FINGERPRINT;
        boolean a2 = a();
        if (!a2) {
            androidx.core.content.a.a(this.a, "android.permission.READ_PHONE_STATE");
            if (!b(c, "Geny") && !b(g, "Andy") && !b(h, "Nox")) {
                File[] fileArr = {new File("/proc/tty/drivers"), new File("/proc/cpuinfo")};
                int i2 = 0;
                loop0: while (true) {
                    if (i2 >= 2) {
                        z = false;
                        break;
                    }
                    File file = fileArr[i2];
                    if (file.exists() && file.canRead()) {
                        byte[] bArr = new byte[1024];
                        try {
                            FileInputStream fileInputStream = new FileInputStream(file);
                            fileInputStream.read(bArr);
                            fileInputStream.close();
                        } catch (Exception e2) {
                            e2.printStackTrace();
                        }
                        String str9 = new String(bArr);
                        for (String str10 : d) {
                            if (str9.contains(str10)) {
                                z = true;
                                break loop0;
                            }
                        }
                    }
                    i2++;
                }
                if (!z && !b(e, "Pipes") && !c()) {
                    int i3 = 0;
                    for (pb6 pb6Var : i) {
                        Context context = this.a;
                        String str11 = pb6Var.a;
                        try {
                            Class<?> loadClass = context.getClassLoader().loadClass("android.os.SystemProperties");
                            str = (String) loadClass.getMethod("get", String.class).invoke(loadClass, str11);
                        } catch (Exception unused) {
                            str = null;
                        }
                        String str12 = pb6Var.b;
                        if (str12 == null && str != null) {
                            i3++;
                        }
                        if (str12 != null && str.contains(str12)) {
                            i3++;
                        }
                    }
                    if (!(i3 >= 5) || !b(f, "X86")) {
                        a2 = false;
                    }
                }
            }
            a2 = true;
        }
        if (a2) {
            return a2;
        }
        if (this.b.isEmpty()) {
            return false;
        }
        PackageManager packageManager = this.a.getPackageManager();
        Iterator<String> it = this.b.iterator();
        while (it.hasNext()) {
            Intent launchIntentForPackage = packageManager.getLaunchIntentForPackage(it.next());
            if (launchIntentForPackage != null && !packageManager.queryIntentActivities(launchIntentForPackage, NativeProtocol.MESSAGE_GET_ACCESS_TOKEN_REQUEST).isEmpty()) {
                return true;
            }
        }
        return false;
    }
}