OSUtil.java 源代码


package com.x8zs.plugin.utils;

import android.app.ActivityManager;
import android.content.Context;
import android.os.Build;
import android.os.Environment;
import android.os.Process;
import android.os.StatFs;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List;
import java.util.Locale;

public class OSUtil {
    public static String getCPUName() {
        FileReader fileReader;
        BufferedReader bufferedReader;
        String readLine;
        BufferedReader bufferedReader2 = null;
        try {
            fileReader = new FileReader("/proc/cpuinfo");
            try {
                bufferedReader = new BufferedReader(fileReader);
            } catch (Throwable unused) {
            }
        } catch (Throwable unused2) {
            fileReader = null;
        }
        do {
            try {
                readLine = bufferedReader.readLine();
            } catch (Throwable unused3) {
                bufferedReader2 = bufferedReader;
                IOUtil.close(bufferedReader2);
                IOUtil.close(fileReader);
                return "";
            }
            if (readLine == null) {
                IOUtil.close(bufferedReader);
                IOUtil.close(fileReader);
                return "";
            }
        } while (!readLine.contains("Hardware"));
        String trim = readLine.split(":")[1].trim();
        IOUtil.close(bufferedReader);
        IOUtil.close(fileReader);
        return trim;
    }

    public static String getCurrentProcessName(Context context) {
        int myPid = Process.myPid();
        List<ActivityManager.RunningAppProcessInfo> runningAppProcesses = ((ActivityManager) context.getSystemService("activity")).getRunningAppProcesses();
        if (runningAppProcesses == null) {
            return "";
        }
        for (ActivityManager.RunningAppProcessInfo runningAppProcessInfo : runningAppProcesses) {
            if (runningAppProcessInfo.pid == myPid) {
                return runningAppProcessInfo.processName;
            }
        }
        return "";
    }

    public static String getHostCPUName() {
        FileReader fileReader;
        BufferedReader bufferedReader;
        String readLine;
        BufferedReader bufferedReader2 = null;
        try {
            fileReader = new FileReader("/xescape/proc/cpuinfo");
            try {
                bufferedReader = new BufferedReader(fileReader);
            } catch (Throwable unused) {
            }
        } catch (Throwable unused2) {
            fileReader = null;
        }
        do {
            try {
                readLine = bufferedReader.readLine();
            } catch (Throwable unused3) {
                bufferedReader2 = bufferedReader;
                IOUtil.close(bufferedReader2);
                IOUtil.close(fileReader);
                return "";
            }
            if (readLine == null) {
                IOUtil.close(bufferedReader);
                IOUtil.close(fileReader);
                return "";
            }
        } while (!readLine.contains("Hardware"));
        String trim = readLine.split(":")[1].trim();
        IOUtil.close(bufferedReader);
        IOUtil.close(fileReader);
        return trim;
    }

    public static long getSDFreeSize() {
        StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getPath());
        return statFs.getAvailableBlocks() * statFs.getBlockSize();
    }

    public static long getSDTotalSize() {
        StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getPath());
        return statFs.getBlockCount() * statFs.getBlockSize();
    }

    public static String getSystemProperty(String str, String str2) {
        try {
            return (String) Class.forName("android.os.SystemProperties").getMethod("get", String.class, String.class).invoke(null, str, str2);
        } catch (Exception e6) {
            e6.printStackTrace();
            return str2;
        }
    }

    public static final boolean is64Bit() {
        boolean is64Bit;
        if (Build.VERSION.SDK_INT >= 23) {
            is64Bit = Process.is64Bit();
            return is64Bit;
        }
        try {
            Class<?> cls = Class.forName("dalvik.system.VMRuntime");
            Object invoke = cls.getMethod("is64Bit", new Class[0]).invoke(cls.getMethod("getRuntime", new Class[0]).invoke(null, new Object[0]), new Object[0]);
            if (!(invoke instanceof Boolean)) {
                return false;
            }
            return ((Boolean) invoke).booleanValue();
        } catch (Throwable unused) {
            return false;
        }
    }

    public static boolean isCPU64() {
        FileReader fileReader;
        BufferedReader bufferedReader;
        String readLine;
        BufferedReader bufferedReader2 = null;
        try {
            fileReader = new FileReader("/proc/cpuinfo");
            try {
                bufferedReader = new BufferedReader(fileReader);
                try {
                    readLine = bufferedReader.readLine();
                } catch (Throwable unused) {
                    bufferedReader2 = bufferedReader;
                    IOUtil.close(bufferedReader2);
                    IOUtil.close(fileReader);
                    return false;
                }
            } catch (Throwable unused2) {
            }
        } catch (Throwable unused3) {
            fileReader = null;
        }
        if (readLine != null) {
            boolean contains = readLine.toLowerCase(Locale.US).contains("arch64");
            IOUtil.close(bufferedReader);
            IOUtil.close(fileReader);
            return contains;
        }
        IOUtil.close(bufferedReader);
        IOUtil.close(fileReader);
        return false;
    }

    public static boolean isHostCPU64() {
        FileReader fileReader;
        BufferedReader bufferedReader;
        String readLine;
        BufferedReader bufferedReader2 = null;
        try {
            fileReader = new FileReader("/xescape/proc/cpuinfo");
            try {
                bufferedReader = new BufferedReader(fileReader);
                try {
                    readLine = bufferedReader.readLine();
                } catch (Throwable unused) {
                    bufferedReader2 = bufferedReader;
                    IOUtil.close(bufferedReader2);
                    IOUtil.close(fileReader);
                    return false;
                }
            } catch (Throwable unused2) {
            }
        } catch (Throwable unused3) {
            fileReader = null;
        }
        if (readLine != null) {
            boolean contains = readLine.toLowerCase(Locale.US).contains("arch64");
            IOUtil.close(bufferedReader);
            IOUtil.close(fileReader);
            return contains;
        }
        IOUtil.close(bufferedReader);
        IOUtil.close(fileReader);
        return false;
    }

    public static boolean isMainProcess(Context context) {
        String currentProcessName = getCurrentProcessName(context);
        if (currentProcessName != null && currentProcessName.endsWith(context.getPackageName())) {
            return true;
        }
        return false;
    }

    public static String getCurrentProcessName() {
        BufferedReader bufferedReader;
        Throwable th;
        Exception e6;
        try {
            bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream("/proc/self/cmdline"), com.anythink.expressad.foundation.f.a.F));
            try {
                try {
                    StringBuilder sb = new StringBuilder();
                    while (true) {
                        int read = bufferedReader.read();
                        if (read > 0) {
                            sb.append((char) read);
                        } else {
                            sb.trimToSize();
                            String sb2 = sb.toString();
                            try {
                                bufferedReader.close();
                                return sb2;
                            } catch (IOException e7) {
                                e7.printStackTrace();
                                return sb2;
                            }
                        }
                    }
                } catch (Exception e8) {
                    e6 = e8;
                    e6.printStackTrace();
                    if (bufferedReader != null) {
                        try {
                            bufferedReader.close();
                        } catch (IOException e9) {
                            e9.printStackTrace();
                        }
                    }
                    return "";
                }
            } catch (Throwable th2) {
                th = th2;
                if (bufferedReader != null) {
                    try {
                        bufferedReader.close();
                    } catch (IOException e10) {
                        e10.printStackTrace();
                    }
                }
                throw th;
            }
        } catch (Exception e11) {
            bufferedReader = null;
            e6 = e11;
        } catch (Throwable th3) {
            bufferedReader = null;
            th = th3;
            if (bufferedReader != null) {
            }
            throw th;
        }
    }
}