package com.tencent.StubShell;
public class CheckVirtual {
private static final java.lang.String TAG = "CheckVirtual";
private static java.lang.String exec(java.lang.String str) {
java.io.BufferedOutputStream bufferedOutputStream;
java.lang.Object obj;
java.lang.Object obj2;
java.io.BufferedInputStream obj3;
java.lang.Throwable th;
java.lang.Throwable th2;
java.lang.String str2 = null;
java.lang.Process exec;
try {
exec = java.lang.Runtime.getRuntime().exec("sh");
try {
bufferedOutputStream = new java.io.BufferedOutputStream(exec.getOutputStream());
} catch (java.lang.Exception e) {
obj3 = str2;
obj2 = str2;
if (bufferedOutputStream != null) {
}
if (obj3 != null) {
}
if (exec != null) {
}
return str2;
} catch (java.lang.Throwable th3) {
obj2 = str2;
java.lang.String str3 = str2;
th = th3;
obj3 = str3;
if (bufferedOutputStream != null) {
}
if (obj3 != null) {
}
if (exec != null) {
}
throw th;
}
try {
obj3 = new java.io.BufferedInputStream(exec.getInputStream());
try {
bufferedOutputStream.write(str.getBytes());
bufferedOutputStream.write(10);
bufferedOutputStream.flush();
bufferedOutputStream.close();
exec.waitFor();
str2 = getStrFromBufferInputSteam(obj3);
if (bufferedOutputStream != null) {
try {
bufferedOutputStream.close();
} catch (java.io.IOException e2) {
e2.printStackTrace();
}
}
if (obj3 != null) {
try {
obj3.close();
} catch (java.io.IOException e3) {
e3.printStackTrace();
}
}
if (exec != null) {
exec.destroy();
}
} catch (java.lang.Exception e4) {
} catch (Throwable th4) {
th = th4;
if (bufferedOutputStream != null) {
}
if (obj3 != null) {
}
if (exec != null) {
}
throw th;
}
} catch (java.lang.Exception e5) {
obj3 = str2;
if (bufferedOutputStream != null) {
try {
bufferedOutputStream.close();
} catch (java.io.IOException e22) {
e22.printStackTrace();
}
}
if (obj3 != null) {
try {
obj3.close();
} catch (java.io.IOException e32) {
e32.printStackTrace();
}
}
if (exec != null) {
exec.destroy();
}
return str2;
} catch (java.lang.Throwable th32) {
th2 = th32;
obj3 = str2;
th = th2;
if (bufferedOutputStream != null) {
try {
bufferedOutputStream.close();
} catch (java.io.IOException e222) {
e222.printStackTrace();
}
}
if (obj3 != null) {
try {
obj3.close();
} catch (java.io.IOException e322) {
e322.printStackTrace();
}
}
if (exec != null) {
exec.destroy();
}
throw th;
}
} catch (java.lang.Exception e6) {
exec = str2;
obj3 = str2;
bufferedOutputStream = str2;
} catch (java.lang.Throwable th5) {
obj3 = str2;
bufferedOutputStream = str2;
th2 = th5;
exec = str2;
th = th2;
if (bufferedOutputStream != null) {
}
if (obj3 != null) {
}
if (exec != null) {
}
throw th;
}
return str2;
}
private static java.lang.String getStrFromBufferInputSteam(java.io.BufferedInputStream bufferedInputStream) {
if (bufferedInputStream == null) {
return "";
}
byte[] bArr = new byte[512];
java.lang.StringBuilder stringBuilder = new java.lang.StringBuilder();
int read;
do {
try {
read = bufferedInputStream.read(bArr);
if (read > 0) {
stringBuilder.append(new java.lang.String(bArr, 0, read));
continue;
}
} catch (java.lang.Exception e) {
e.printStackTrace();
}
} while (read >= 512);
return stringBuilder.toString();
}
public static java.lang.String getUidStrFormat() {
java.lang.String exec = exec("cat /proc/self/cgroup");
if (exec == null || exec.length() == 0) {
return null;
}
int lastIndexOf = exec.lastIndexOf("uid");
int lastIndexOf2 = exec.lastIndexOf("/pid");
if (lastIndexOf
return null;
}
if (lastIndexOf2 <= 0) {
lastIndexOf2 = exec.length();
}
try {
if (!isNumber(exec.substring(lastIndexOf + 4, lastIndexOf2).replaceAll("\n", ""))) {
return null;
}
return java.lang.String.format("u0_a%d", new java.lang.Object[]{java.lang.Integer.valueOf(java.lang.Integer.valueOf(exec.substring(lastIndexOf + 4, lastIndexOf2).replaceAll("\n", "")).intValue() - 10000)});
} catch (java.lang.Exception e) {
e.printStackTrace();
return null;
}
}
public static boolean isNumber(java.lang.String str) {
if (str == null || str.length() == 0) {
return false;
}
for (int i = 0; i
if (!java.lang.Character.isDigit(str.charAt(i))) {
return false;
}
}
return true;
}
public static boolean isRunInVirtual() {
java.lang.CharSequence uidStrFormat = getUidStrFormat();
java.lang.String exec = exec("ps");
if (exec == null || exec == "") {
return false;
}
java.lang.String[] psLine = exec.split("\n");
if (psLine == null || psLine.length <= 0) {
return false;
}
int i = 0;
for (int i2 = 0; i2
if (psLine[i2].contains(uidStrFormat)) {
int lastIndexOf = psLine[i2].lastIndexOf(" ");
java.lang.String substring = psLine[i2].substring(lastIndexOf <= 0 ? 0 : lastIndexOf + 1, psLine[i2].length());
if (new java.io.File(java.lang.String.format("/data/data/%s", new java.lang.Object[]{substring, java.util.Locale.CHINA})).exists()) {
i++;
}
}
}
return i > 1;
}
}