LiveTVGO v1.2.0版本的 MD5 值为:da2e0ec7ae0953637fc1e793d4a4faed
以下内容为反编译后的 a.java 源代码,内容仅作参考
package com.startapp.a.a;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Environment;
import android.text.TextUtils;
import androidx.core.os.EnvironmentCompat;
import com.google.android.exoplayer2.metadata.icy.IcyHeaders;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public final class a {
private static final String[] a = {"/dev/socket/genyd", "/dev/socket/baseband_genyd"};
private static final String[] b = {"goldfish"};
private static final String[] c = {"/dev/socket/qemud", "/dev/qemu_pipe"};
private static final String[] d = {"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"};
private static final String[] e = {"fstab.andy", "ueventd.andy.rc"};
private static final String[] f = {"fstab.nox", "init.nox.rc", "ueventd.nox.rc", "/BigNoxGameHD", "/YSLauncher"};
private static final b[] g = {new b("init.svc.qemud", null), new b("init.svc.qemu-props", null), new b("qemu.hw.mainkeys", null), new b("qemu.sf.fake_camera", null), new b("qemu.sf.lcd_density", null), new b("ro.bootloader", EnvironmentCompat.MEDIA_UNKNOWN), new b("ro.bootmode", EnvironmentCompat.MEDIA_UNKNOWN), new b("ro.hardware", "goldfish"), new b("ro.kernel.android.qemud", null), new b("ro.kernel.qemu.gles", null), new b("ro.kernel.qemu", IcyHeaders.REQUEST_HEADER_ENABLE_METADATA_VALUE), new b("ro.product.device", "generic"), new b("ro.product.model", "sdk"), new b("ro.product.name", "sdk"), new b("ro.serialno", null), new b("ro.build.description", "72656C656173652D6B657973"), new b("ro.build.fingerprint", "3A757365722F72656C656173652D6B657973"), new b("net.eth0.dns1", null), new b("rild.libpath", "2F73797374656D2F6C69622F6C69627265666572656E63652D72696C2E736F"), new b("ro.radio.use-ppp", null), new b("gsm.version.baseband", null), new b("ro.build.tags", "72656C656173652D6B65"), new b("ro.build.display.id", "746573742D"), new b("init.svc.console", null)};
private static a k;
private static Boolean l;
private final Context h;
private boolean i = true;
private List<String> j;
public static boolean a(Context context) {
if (l == null) {
if (context == null) {
throw new IllegalArgumentException("Context must not be null.");
}
if (k == null) {
k = new a(context.getApplicationContext());
}
a aVar = k;
boolean z = false;
boolean z2 = Build.FINGERPRINT.startsWith("generic") || Build.MODEL.contains("google_sdk") || Build.MODEL.toLowerCase().contains("droid4x") || Build.MODEL.contains("Emulator") || Build.MODEL.contains("Android SDK built for") || Build.MANUFACTURER.contains("Genymotion") || Build.HARDWARE.equals("goldfish") || Build.HARDWARE.equals("vbox86") || Build.PRODUCT.equals("sdk") || Build.PRODUCT.equals("google_sdk") || Build.PRODUCT.equals("sdk_x86") || Build.PRODUCT.equals("vbox86p") || Build.BOARD.toLowerCase().contains("nox") || Build.BOOTLOADER.toLowerCase().contains("nox") || Build.HARDWARE.toLowerCase().contains("nox") || Build.PRODUCT.toLowerCase().contains("nox") || Build.SERIAL.toLowerCase().contains("nox") || Build.FINGERPRINT.startsWith(EnvironmentCompat.MEDIA_UNKNOWN) || Build.FINGERPRINT.contains("Andy") || Build.FINGERPRINT.contains("ttVM_Hdragon") || Build.FINGERPRINT.contains("vbox86p") || Build.HARDWARE.contains("ttVM_x86") || Build.MODEL.equals("sdk") || Build.MODEL.contains("Droid4X") || Build.MODEL.contains("TiantianVM") || Build.MODEL.contains("Andy") || (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic"));
if (!z2) {
if (aVar.a(a, "Geny") || aVar.a(e, "Andy") || aVar.a(f, "Nox") || b() || aVar.a(c, "Pipes") || aVar.d() || (aVar.c() && aVar.a(d, "X86"))) {
z = true;
}
z2 = z;
}
if (!z2) {
z2 = aVar.a();
}
l = Boolean.valueOf(z2);
}
return l.booleanValue();
}
private a(Context context) {
ArrayList arrayList = new ArrayList();
this.j = arrayList;
this.h = context;
arrayList.add("com.google.android.launcher.layouts.genymotion");
this.j.add("com.bluestacks");
this.j.add("com.bignox.app");
this.j.add("com.vphone.launcher");
}
private boolean a() {
if (this.i && !this.j.isEmpty()) {
PackageManager packageManager = this.h.getPackageManager();
for (String str : this.j) {
Intent launchIntentForPackage = packageManager.getLaunchIntentForPackage(str);
if (launchIntentForPackage != null && !packageManager.queryIntentActivities(launchIntentForPackage, 65536).isEmpty()) {
return true;
}
}
}
return false;
}
private static boolean b() {
File[] fileArr = {new File("/proc/tty/drivers"), new File("/proc/cpuinfo")};
for (int i = 0; i < 2; i++) {
File file = fileArr[i];
if (file.exists() && file.canRead()) {
char[] cArr = new char[1024];
StringBuilder sb = new StringBuilder();
BufferedReader bufferedReader = null;
try {
BufferedReader bufferedReader2 = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
while (true) {
try {
int read = bufferedReader2.read(cArr);
if (read != -1) {
sb.append(cArr, 0, read);
} else {
try {
break;
} catch (IOException unused) {
}
}
} catch (Exception unused2) {
bufferedReader = bufferedReader2;
if (bufferedReader != null) {
try {
bufferedReader.close();
} catch (IOException unused3) {
}
}
return false;
} catch (Throwable th) {
th = th;
bufferedReader = bufferedReader2;
if (bufferedReader != null) {
try {
bufferedReader.close();
} catch (IOException unused4) {
}
}
throw th;
}
}
bufferedReader2.close();
String sb2 = sb.toString();
String[] strArr = b;
for (int i2 = 0; i2 <= 0; i2++) {
if (sb2.contains(strArr[i2])) {
return true;
}
}
continue;
} catch (Exception unused5) {
} catch (Throwable th2) {
th = th2;
}
}
}
return false;
}
private boolean a(String[] strArr, String str) {
File file;
for (String str2 : strArr) {
if (b(this.h, "android.permission.READ_EXTERNAL_STORAGE") && str2.contains("/") && str.equals("Nox")) {
file = new File(Environment.getExternalStorageDirectory() + str2);
} else {
file = new File(str2);
}
if (file.exists()) {
return true;
}
}
return false;
}
private boolean c() {
b[] bVarArr = g;
int i = 0;
for (int i2 = 0; i2 < 24; i2++) {
b bVar = bVarArr[i2];
String a2 = a(this.h, bVar.a);
if (bVar.b == null && a2 != null) {
i++;
}
if (bVar.b != null && a2 != null && a2.contains(bVar.b)) {
i++;
}
}
return i >= 5;
}
private boolean d() {
String[] split;
if (b(this.h, "android.permission.INTERNET")) {
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;
}
return false;
}
private static String a(Context context, String str) {
try {
Class<?> loadClass = context.getClassLoader().loadClass("android.os.SystemProperties");
return (String) loadClass.getMethod("get", String.class).invoke(loadClass, str);
} catch (Exception unused) {
return null;
}
}
private static boolean b(Context context, String str) {
return Build.VERSION.SDK_INT >= 23 ? context.checkSelfPermission(str) == 0 : context.checkCallingOrSelfPermission(str) == 0;
}
}