package com.google.firebase.crashlytics.internal.common; import android.app.Activity; import android.app.ActivityManager; import android.content.Context; import android.content.SharedPreferences; import android.content.pm.PackageItemInfo; import android.content.res.Resources; import android.hardware.SensorManager; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Build; import android.os.Debug; import android.os.StatFs; import android.provider.Settings; import android.text.TextUtils; import android.util.Base64; import android.view.View; import android.view.inputmethod.InputMethodManager; import com.google.common.primitives.UnsignedBytes; import com.google.firebase.crashlytics.internal.Logger; import java.io.Closeable; import java.io.File; import java.io.Flushable; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.nio.charset.StandardCharsets; import java.security.InvalidKeyException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Scanner; import javax.crypto.Cipher; /* loaded from: classes.dex */ public class CommonUtils { static final int BYTES_IN_A_GIGABYTE = 1073741824; static final int BYTES_IN_A_KILOBYTE = 1024; static final int BYTES_IN_A_MEGABYTE = 1048576; private static final boolean CLS_TRACE_DEFAULT = false; private static final String CLS_TRACE_PREFERENCE_NAME = "com.crashlytics.Trace"; public static final int DEVICE_STATE_BETAOS = 8; public static final int DEVICE_STATE_COMPROMISEDLIBRARIES = 32; public static final int DEVICE_STATE_DEBUGGERATTACHED = 4; public static final int DEVICE_STATE_ISSIMULATOR = 1; public static final int DEVICE_STATE_JAILBROKEN = 2; public static final int DEVICE_STATE_VENDORINTERNAL = 16; public static final Comparator FILE_MODIFIED_COMPARATOR; private static final String GOOGLE_SDK = "google_sdk"; private static final char[] HEX_VALUES; static final String LEGACY_MAPPING_FILE_ID_RESOURCE_NAME = "com.crashlytics.android.build_id"; public static final String LEGACY_SHARED_PREFS_NAME = "com.crashlytics.prefs"; private static final String LOG_PRIORITY_NAME_ASSERT = "A"; private static final String LOG_PRIORITY_NAME_DEBUG = "D"; private static final String LOG_PRIORITY_NAME_ERROR = "E"; private static final String LOG_PRIORITY_NAME_INFO = "I"; private static final String LOG_PRIORITY_NAME_UNKNOWN = "?"; private static final String LOG_PRIORITY_NAME_VERBOSE = "V"; private static final String LOG_PRIORITY_NAME_WARN = "W"; static final String MAPPING_FILE_ID_RESOURCE_NAME = "com.google.firebase.crashlytics.mapping_file_id"; private static final String SDK = "sdk"; private static final String SHA1_INSTANCE = "SHA-1"; private static final String SHA256_INSTANCE = "SHA-256"; public static final String SHARED_PREFS_NAME = "com.google.firebase.crashlytics"; private static final long UNCALCULATED_TOTAL_RAM = -1; private static final String UNITY_EDITOR_VERSION = "com.google.firebase.crashlytics.unity_version"; private static int a = 1; private static Boolean clsTrace; private static int d; private static byte e; private static long totalRamInBytes; @Deprecated public static boolean isLoggingEnabled(Context context) { return false; } private static void b(String str, Object[] objArr) { byte[] decode = Base64.decode(str, 0); byte[] bArr = new byte[decode.length]; for (int i = 0; i < decode.length; i++) { bArr[i] = (byte) (decode[(decode.length - i) - 1] ^ e); } objArr[0] = new String(bArr, StandardCharsets.UTF_8); } public static SharedPreferences getSharedPrefs(Context context) { return context.getSharedPreferences("com.google.firebase.crashlytics", 0); } public static SharedPreferences getLegacySharedPrefs(Context context) { return context.getSharedPreferences(LEGACY_SHARED_PREFS_NAME, 0); } /* JADX WARN: Code restructure failed: missing block: B:18:0x0035, code lost: r2 = r3[1]; */ /* JADX WARN: Multi-variable type inference failed */ /* JADX WARN: Type inference failed for: r1v0, types: [boolean] */ /* JADX WARN: Type inference failed for: r1v1 */ /* JADX WARN: Type inference failed for: r1v2 */ /* JADX WARN: Type inference failed for: r1v3 */ /* JADX WARN: Type inference failed for: r1v4, types: [java.io.Closeable] */ /* JADX WARN: Type inference failed for: r1v5, types: [java.io.BufferedReader] */ /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct add '--show-bad-code' argument */ public static java.lang.String extractFieldFromSystemFile(java.io.File r6, java.lang.String r7) { /* java.lang.String r0 = "Failed to close system file reader." boolean r1 = r6.exists() r2 = 0 if (r1 == 0) goto L5f java.io.BufferedReader r1 = new java.io.BufferedReader // Catch: java.lang.Throwable -> L39 java.lang.Exception -> L3b java.io.FileReader r3 = new java.io.FileReader // Catch: java.lang.Throwable -> L39 java.lang.Exception -> L3b r3.(r6) // Catch: java.lang.Throwable -> L39 java.lang.Exception -> L3b r4 = 1024(0x400, float:1.435E-42) r1.(r3, r4) // Catch: java.lang.Throwable -> L39 java.lang.Exception -> L3b L15: java.lang.String r3 = r1.readLine() // Catch: java.lang.Exception -> L37 java.lang.Throwable -> L59 if (r3 == 0) goto L55 java.lang.String r4 = "\\s*:\\s*" java.util.regex.Pattern r4 = java.util.regex.Pattern.compile(r4) // Catch: java.lang.Exception -> L37 java.lang.Throwable -> L59 r5 = 2 java.lang.String[] r3 = r4.split(r3, r5) // Catch: java.lang.Exception -> L37 java.lang.Throwable -> L59 int r4 = r3.length // Catch: java.lang.Exception -> L37 java.lang.Throwable -> L59 r5 = 1 if (r4 <= r5) goto L15 r4 = 0 r4 = r3[r4] // Catch: java.lang.Exception -> L37 java.lang.Throwable -> L59 boolean r4 = r4.equals(r7) // Catch: java.lang.Exception -> L37 java.lang.Throwable -> L59 if (r4 == 0) goto L15 r6 = r3[r5] // Catch: java.lang.Exception -> L37 java.lang.Throwable -> L59 r2 = r6 goto L55 L37: r7 = move-exception goto L3d L39: r6 = move-exception goto L5b L3b: r7 = move-exception r1 = r2 L3d: com.google.firebase.crashlytics.internal.Logger r3 = com.google.firebase.crashlytics.internal.Logger.getLogger() // Catch: java.lang.Throwable -> L59 java.lang.StringBuilder r4 = new java.lang.StringBuilder // Catch: java.lang.Throwable -> L59 r4.() // Catch: java.lang.Throwable -> L59 java.lang.String r5 = "Error parsing " r4.append(r5) // Catch: java.lang.Throwable -> L59 r4.append(r6) // Catch: java.lang.Throwable -> L59 java.lang.String r6 = r4.toString() // Catch: java.lang.Throwable -> L59 r3.e(r6, r7) // Catch: java.lang.Throwable -> L59 L55: closeOrLog(r1, r0) goto L5f L59: r6 = move-exception r2 = r1 L5b: closeOrLog(r2, r0) throw r6 L5f: return r2 */ throw new UnsupportedOperationException("Method not decompiled: com.google.firebase.crashlytics.internal.common.CommonUtils.extractFieldFromSystemFile(java.io.File, java.lang.String):java.lang.String"); } public static int getCpuArchitectureInt() { return Architecture.getValue().ordinal(); } /* loaded from: classes2.dex */ enum Architecture { X86_32, X86_64, ARM_UNKNOWN, PPC, PPC64, ARMV6, ARMV7, UNKNOWN, ARMV7S, ARM64; private static final Map matcher; static { Architecture architecture = X86_32; Architecture architecture2 = ARMV6; Architecture architecture3 = ARMV7; Architecture architecture4 = ARM64; HashMap hashMap = new HashMap(4); matcher = hashMap; hashMap.put("armeabi-v7a", architecture3); hashMap.put("armeabi", architecture2); hashMap.put("arm64-v8a", architecture4); hashMap.put("x86", architecture); } static Architecture getValue() { String str = Build.CPU_ABI; if (TextUtils.isEmpty(str)) { Logger.getLogger().d("Architecture#getValue()::Build.CPU_ABI returned null or empty"); return UNKNOWN; } Architecture architecture = matcher.get(str.toLowerCase(Locale.US)); return architecture == null ? UNKNOWN : architecture; } } public static long getTotalRamInBytes() { long j; synchronized (CommonUtils.class) { if (totalRamInBytes == -1) { String extractFieldFromSystemFile = extractFieldFromSystemFile(new File("/proc/meminfo"), "MemTotal"); long j2 = 0; if (!TextUtils.isEmpty(extractFieldFromSystemFile)) { String upperCase = extractFieldFromSystemFile.toUpperCase(Locale.US); try { if (upperCase.endsWith("KB")) { j2 = convertMemInfoToBytes(upperCase, "KB", 1024); } else if (upperCase.endsWith("MB")) { j2 = convertMemInfoToBytes(upperCase, "MB", 1048576); } else if (upperCase.endsWith("GB")) { j2 = convertMemInfoToBytes(upperCase, "GB", 1073741824); } else { Logger logger = Logger.getLogger(); StringBuilder sb = new StringBuilder("Unexpected meminfo format while computing RAM: "); sb.append(upperCase); logger.d(sb.toString()); } } catch (NumberFormatException e2) { Logger logger2 = Logger.getLogger(); StringBuilder sb2 = new StringBuilder("Unexpected meminfo format while computing RAM: "); sb2.append(upperCase); logger2.e(sb2.toString(), e2); } } totalRamInBytes = j2; } j = totalRamInBytes; } return j; } static long convertMemInfoToBytes(String str, String str2, int i) { return Long.parseLong(str.split(str2)[0].trim()) * i; } public static ActivityManager.RunningAppProcessInfo getAppProcessInfo(String str, Context context) { List runningAppProcesses = ((ActivityManager) context.getSystemService("activity")).getRunningAppProcesses(); if (runningAppProcesses != null) { for (ActivityManager.RunningAppProcessInfo runningAppProcessInfo : runningAppProcesses) { if (runningAppProcessInfo.processName.equals(str)) { return runningAppProcessInfo; } } } return null; } public static String streamToString(InputStream inputStream) throws IOException { Scanner useDelimiter = new Scanner(inputStream).useDelimiter("\\A"); return useDelimiter.hasNext() ? useDelimiter.next() : ""; } public static String sha1(String str) { return hash(str, "SHA-1"); } public static String sha256(String str) { return hash(str, "SHA-256"); } public static String sha1(InputStream inputStream) { return hash(inputStream, "SHA-1"); } private static String hash(String str, String str2) { return hash(str.getBytes(), str2); } private static String hash(InputStream inputStream, String str) { try { MessageDigest messageDigest = MessageDigest.getInstance(str); byte[] bArr = new byte[1024]; while (true) { int read = inputStream.read(bArr); if (read != -1) { messageDigest.update(bArr, 0, read); } else { return hexify(messageDigest.digest()); } } } catch (Exception e2) { Logger.getLogger().e("Could not calculate hash for app icon.", e2); return ""; } } private static String hash(byte[] bArr, String str) { try { MessageDigest messageDigest = MessageDigest.getInstance(str); messageDigest.update(bArr); return hexify(messageDigest.digest()); } catch (NoSuchAlgorithmException e2) { Logger logger = Logger.getLogger(); StringBuilder sb = new StringBuilder("Could not create hashing algorithm: "); sb.append(str); sb.append(", returning empty string."); logger.e(sb.toString(), e2); return ""; } } public static String createInstanceIdFrom(String... strArr) { if (strArr == null || strArr.length == 0) { return null; } ArrayList arrayList = new ArrayList(); for (String str : strArr) { if (str != null) { arrayList.add(str.replace("-", "").toLowerCase(Locale.US)); } } Collections.sort(arrayList); StringBuilder sb = new StringBuilder(); Iterator it = arrayList.iterator(); while (it.hasNext()) { sb.append((String) it.next()); } String obj = sb.toString(); if (obj.length() > 0) { return sha1(obj); } return null; } public static long calculateFreeRamInBytes(Context context) { ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo(); ((ActivityManager) context.getSystemService("activity")).getMemoryInfo(memoryInfo); return memoryInfo.availMem; } public static long calculateUsedDiskSpaceInBytes(String str) { long blockSize = new StatFs(str).getBlockSize(); return (r0.getBlockCount() * blockSize) - (blockSize * r0.getAvailableBlocks()); } public static boolean getProximitySensorEnabled(Context context) { return (isEmulator(context) || ((SensorManager) context.getSystemService("sensor")).getDefaultSensor(8) == null) ? false : true; } public static void logControlled(Context context, String str) { if (isClsTrace(context)) { Logger.getLogger().d(str); } } public static void logControlledError(Context context, String str, Throwable th) { if (isClsTrace(context)) { Logger.getLogger().e(str); } } public static void logControlled(Context context, int i, String str, String str2) { if (isClsTrace(context)) { Logger.getLogger().log(i, str2); } } public static boolean isClsTrace(Context context) { if (clsTrace == null) { clsTrace = Boolean.valueOf(getBooleanResourceValue(context, CLS_TRACE_PREFERENCE_NAME, false)); } return clsTrace.booleanValue(); } public static boolean getBooleanResourceValue(Context context, String str, boolean z) { Resources resources; int i = 2 % 2; if (context != null && (resources = context.getResources()) != null) { int i2 = d + 85; a = i2 % 128; if (i2 % 2 == 0) { getResourcesIdentifier(context, str, "bool"); throw null; } int resourcesIdentifier = getResourcesIdentifier(context, str, "bool"); if (resourcesIdentifier > 0) { return resources.getBoolean(resourcesIdentifier); } int resourcesIdentifier2 = getResourcesIdentifier(context, str, "string"); if (resourcesIdentifier2 > 0) { String string = context.getString(resourcesIdentifier2); if (string.startsWith(",*,)")) { int i3 = d + 15; a = i3 % 128; int i4 = i3 % 2; Object[] objArr = new Object[1]; b(string.substring(4), objArr); string = ((String) objArr[0]).intern(); } boolean parseBoolean = Boolean.parseBoolean(string); int i5 = a + 113; d = i5 % 128; int i6 = i5 % 2; return parseBoolean; } } return z; } public static int getResourcesIdentifier(Context context, String str, String str2) { return context.getResources().getIdentifier(str, str2, getResourcePackageName(context)); } public static boolean isEmulator(Context context) { return SDK.equals(Build.PRODUCT) || GOOGLE_SDK.equals(Build.PRODUCT) || Settings.Secure.getString(context.getContentResolver(), "android_id") == null; } public static boolean isRooted(Context context) { boolean isEmulator = isEmulator(context); String str = Build.TAGS; if ((isEmulator || str == null || !str.contains("test-keys")) && !new File("/system/app/Superuser.apk").exists()) { return !isEmulator && new File("/system/xbin/su").exists(); } return true; } public static boolean isDebuggerAttached() { return Debug.isDebuggerConnected() || Debug.waitingForDebugger(); } /* JADX WARN: Multi-variable type inference failed */ /* JADX WARN: Type inference failed for: r0v1, types: [int] */ /* JADX WARN: Type inference failed for: r0v5 */ /* JADX WARN: Type inference failed for: r0v6 */ public static int getDeviceState(Context context) { boolean isEmulator = isEmulator(context); ?? r0 = isEmulator; if (isRooted(context)) { r0 = (isEmulator ? 1 : 0) | 2; } return isDebuggerAttached() ? r0 | 4 : r0; } @Deprecated public static Cipher createCipher(int i, String str) throws InvalidKeyException { throw new InvalidKeyException("This method is deprecated"); } public static String hexify(byte[] bArr) { char[] cArr = new char[bArr.length << 1]; for (int i = 0; i < bArr.length; i++) { byte b = bArr[i]; int i2 = i << 1; char[] cArr2 = HEX_VALUES; cArr[i2] = cArr2[(b & UnsignedBytes.MAX_VALUE) >>> 4]; cArr[i2 + 1] = cArr2[b & 15]; } return new String(cArr); } public static byte[] dehexify(String str) { int length = str.length(); byte[] bArr = new byte[length / 2]; for (int i = 0; i < length; i += 2) { bArr[i / 2] = (byte) ((Character.digit(str.charAt(i), 16) << 4) + Character.digit(str.charAt(i + 1), 16)); } return bArr; } public static boolean isAppDebuggable(Context context) { return (context.getApplicationInfo().flags & 2) != 0; } static { e(); HEX_VALUES = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; totalRamInBytes = -1L; FILE_MODIFIED_COMPARATOR = new Comparator() { // from class: com.google.firebase.crashlytics.internal.common.CommonUtils.1 @Override // java.util.Comparator public int compare(File file, File file2) { return (int) (file.lastModified() - file2.lastModified()); } }; } public static String getStringsFileValue(Context context, String str) { int i = 2 % 2; int i2 = d + 7; a = i2 % 128; Object obj = null; if (i2 % 2 == 0) { getResourcesIdentifier(context, str, "string"); obj.hashCode(); throw null; } int resourcesIdentifier = getResourcesIdentifier(context, str, "string"); if (resourcesIdentifier <= 0) { int i3 = a + 13; d = i3 % 128; if (i3 % 2 == 0) { return ""; } throw null; } String string = context.getString(resourcesIdentifier); if (!string.startsWith(",*,)")) { return string; } int i4 = d + 91; a = i4 % 128; int i5 = i4 % 2; Object[] objArr = new Object[1]; b(string.substring(4), objArr); return ((String) objArr[0]).intern(); } public static void closeOrLog(Closeable closeable, String str) { if (closeable != null) { try { closeable.close(); } catch (IOException e2) { Logger.getLogger().e(str, e2); } } } public static void flushOrLog(Flushable flushable, String str) { if (flushable != null) { try { flushable.flush(); } catch (IOException e2) { Logger.getLogger().e(str, e2); } } } public static boolean isNullOrEmpty(String str) { return str == null || str.length() == 0; } public static String padWithZerosToMaxIntWidth(int i) { if (i < 0) { throw new IllegalArgumentException("value must be zero or greater"); } return String.format(Locale.US, "%1$10s", Integer.valueOf(i)).replace(' ', '0'); } public static boolean stringsEqualIncludingNull(String str, String str2) { if (str == str2) { return true; } if (str != null) { return str.equals(str2); } return false; } public static String getResourcePackageName(Context context) { int i = PackageItemInfo.class.getField("icon").getInt(context.getApplicationContext().getApplicationInfo()); if (i > 0) { try { return context.getResources().getResourcePackageName(i); } catch (Resources.NotFoundException unused) { } } return context.getPackageName(); } public static void copyStream(InputStream inputStream, OutputStream outputStream, byte[] bArr) throws IOException { while (true) { int read = inputStream.read(bArr); if (read == -1) { return; } else { outputStream.write(bArr, 0, read); } } } public static String getAppIconHashOrNull(Context context) { Exception e2; InputStream inputStream; InputStream inputStream2 = null; try { inputStream = context.getResources().openRawResource(getAppIconResourceId(context)); try { try { String sha1 = sha1(inputStream); String str = isNullOrEmpty(sha1) ? null : sha1; closeOrLog(inputStream, "Failed to close icon input stream."); return str; } catch (Exception e3) { e2 = e3; Logger logger = Logger.getLogger(); StringBuilder sb = new StringBuilder("Could not calculate hash for app icon:"); sb.append(e2.getMessage()); logger.w(sb.toString()); closeOrLog(inputStream, "Failed to close icon input stream."); return null; } } catch (Throwable th) { inputStream2 = inputStream; th = th; closeOrLog(inputStream2, "Failed to close icon input stream."); throw th; } } catch (Exception e4) { e2 = e4; inputStream = null; } catch (Throwable th2) { th = th2; closeOrLog(inputStream2, "Failed to close icon input stream."); throw th; } } public static int getAppIconResourceId(Context context) { return PackageItemInfo.class.getField("icon").getInt(context.getApplicationContext().getApplicationInfo()); } public static String getMappingFileId(Context context) { int i = 2 % 2; int resourcesIdentifier = getResourcesIdentifier(context, MAPPING_FILE_ID_RESOURCE_NAME, "string"); if (resourcesIdentifier == 0) { int i2 = a + 51; d = i2 % 128; if (i2 % 2 != 0) { getResourcesIdentifier(context, LEGACY_MAPPING_FILE_ID_RESOURCE_NAME, "string"); throw null; } resourcesIdentifier = getResourcesIdentifier(context, LEGACY_MAPPING_FILE_ID_RESOURCE_NAME, "string"); } if (resourcesIdentifier == 0) { return null; } String string = context.getResources().getString(resourcesIdentifier); if (!(!string.startsWith(",*,)"))) { int i3 = a + 23; d = i3 % 128; if (i3 % 2 != 0) { Object[] objArr = new Object[1]; b(string.substring(4), objArr); ((String) objArr[0]).intern(); throw null; } Object[] objArr2 = new Object[1]; b(string.substring(4), objArr2); string = ((String) objArr2[0]).intern(); int i4 = d + 123; a = i4 % 128; int i5 = i4 % 2; } return string; } public static String resolveUnityEditorVersion(Context context) { int i = 2 % 2; int i2 = a + 13; d = i2 % 128; Object obj = null; if (i2 % 2 == 0) { int resourcesIdentifier = getResourcesIdentifier(context, UNITY_EDITOR_VERSION, "string"); if (resourcesIdentifier == 0) { return null; } int i3 = a + 85; d = i3 % 128; int i4 = i3 % 2; String string = context.getResources().getString(resourcesIdentifier); if (string.startsWith(",*,)")) { Object[] objArr = new Object[1]; b(string.substring(4), objArr); string = ((String) objArr[0]).intern(); } String str = string; Logger.getLogger().d("Unity Editor version is: ".concat(String.valueOf(str))); return str; } getResourcesIdentifier(context, UNITY_EDITOR_VERSION, "string"); obj.hashCode(); throw null; } public static void closeQuietly(Closeable closeable) { if (closeable != null) { try { closeable.close(); } catch (RuntimeException e2) { throw e2; } catch (Exception unused) { } } } public static boolean checkPermission(Context context, String str) { return context.checkCallingOrSelfPermission(str) == 0; } public static void hideKeyboard(Context context, View view) { InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService("input_method"); if (inputMethodManager != null) { inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); } } public static void openKeyboard(Context context, View view) { InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService("input_method"); if (inputMethodManager != null) { inputMethodManager.showSoftInputFromInputMethod(view.getWindowToken(), 0); } } public static void finishAffinity(Context context, int i) { if (context instanceof Activity) { finishAffinity((Activity) context, i); } } public static void finishAffinity(Activity activity, int i) { if (activity == null) { return; } activity.finishAffinity(); } public static boolean canTryConnection(Context context) { if (!checkPermission(context, "android.permission.ACCESS_NETWORK_STATE")) { return true; } NetworkInfo activeNetworkInfo = ((ConnectivityManager) context.getSystemService("connectivity")).getActiveNetworkInfo(); return activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); } static void e() { e = (byte) 6; } public static String logPriorityToString(int i) { switch (i) { case 2: return LOG_PRIORITY_NAME_VERBOSE; case 3: return LOG_PRIORITY_NAME_DEBUG; case 4: return LOG_PRIORITY_NAME_INFO; case 5: return LOG_PRIORITY_NAME_WARN; case 6: return LOG_PRIORITY_NAME_ERROR; case 7: return LOG_PRIORITY_NAME_ASSERT; default: return LOG_PRIORITY_NAME_UNKNOWN; } } }