package com.duoyou.api.oaid; import android.app.Application; import android.content.Context; import android.media.MediaDrm; import android.os.Build; import android.os.Environment; import android.provider.Settings; import android.telephony.TelephonyManager; import android.text.TextUtils; import com.duoyou.api.oaid.impl.OAIDFactory; import com.kuaishou.weapon.p0.h; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.security.MessageDigest; import java.util.Arrays; import java.util.UUID; public final class DeviceID implements IGetter { private Application application; private String clientId; private String oaid; public static class Holder { public static final DeviceID INSTANCE = new DeviceID(); private Holder() { } } private DeviceID() { } public static String calculateHash(String str, String str2) { if (TextUtils.isEmpty(str)) { return ""; } try { byte[] digest = MessageDigest.getInstance(str2).digest(str.getBytes()); StringBuilder sb = new StringBuilder(); int length = digest.length; for (int i = 0; i < length; i++) { sb.append(String.format("%02x", Byte.valueOf(digest[i]))); } return sb.toString(); } catch (Exception e) { OAIDLog.print(e); return ""; } } public static String getAndroidID(Context context) { String string; return (context == null || (string = Settings.Secure.getString(context.getContentResolver(), "android_id")) == null || "9774d56d682e549c".equals(string)) ? "" : string; } public static String getClientId() { String str = Holder.INSTANCE.clientId; return str == null ? "" : str; } public static String getClientIdMD5() { return calculateHash(getClientId(), "MD5"); } public static String getClientIdSHA1() { return calculateHash(getClientId(), "SHA-1"); } public static String getGUID(Context context) { String uuidFromSystemSettings = getUuidFromSystemSettings(context); if (TextUtils.isEmpty(uuidFromSystemSettings)) { uuidFromSystemSettings = getUuidFromExternalStorage(context); } if (TextUtils.isEmpty(uuidFromSystemSettings)) { uuidFromSystemSettings = getUuidFromSharedPreferences(context); } if (!TextUtils.isEmpty(uuidFromSystemSettings)) { return uuidFromSystemSettings; } String uuid = UUID.randomUUID().toString(); OAIDLog.print("Generate uuid by random: " + uuid); saveUuidToSharedPreferences(context, uuid); saveUuidToSystemSettings(context, uuid); saveUuidToExternalStorage(context, uuid); return uuid; } private static File getGuidFile(Context context) { int i = Build.VERSION.SDK_INT; boolean z = true; if (i >= 23 && (i >= 30 || context == null || context.checkSelfPermission(h.j) != 0)) { z = false; } if (!z || !"mounted".equals(Environment.getExternalStorageState())) { return null; } return new File(Environment.getExternalStorageDirectory(), "Android/.GUID_uuid"); } private static String getIMEI(Context context) { if (context == null) { return ""; } try { TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService("phone"); String imei = telephonyManager.getImei(); return TextUtils.isEmpty(imei) ? telephonyManager.getMeid() : imei; } catch (Error | Exception e) { OAIDLog.print(e); return ""; } } public static String getOAID() { String str = Holder.INSTANCE.oaid; return str == null ? "" : str; } public static void getOAID(Context context, IGetter iGetter) { OAIDFactory.create(context).doGet(iGetter); } public static String getPseudoID() { StringBuilder sb = new StringBuilder(); sb.append(Build.BOARD.length() % 10); sb.append((Build.VERSION.SDK_INT >= 21 ? Arrays.deepToString(Build.SUPPORTED_ABIS) : Build.CPU_ABI).length() % 10); sb.append(Build.DEVICE.length() % 10); sb.append(Build.DISPLAY.length() % 10); sb.append(Build.HOST.length() % 10); sb.append(Build.ID.length() % 10); sb.append(Build.MANUFACTURER.length() % 10); sb.append(Build.BRAND.length() % 10); sb.append(Build.MODEL.length() % 10); sb.append(Build.PRODUCT.length() % 10); sb.append(Build.BOOTLOADER.length() % 10); sb.append(Build.HARDWARE.length() % 10); sb.append(Build.TAGS.length() % 10); sb.append(Build.TYPE.length() % 10); sb.append(Build.USER.length() % 10); return sb.toString(); } public static String getUniqueID(Context context) { String str; int i = Build.VERSION.SDK_INT; if (i >= 29) { str = "IMEI/MEID not allowed on Android 10+"; } else if (context == null) { return ""; } else { if (i < 23 || context.checkSelfPermission(h.c) == 0) { return getIMEI(context); } str = "android.permission.READ_PHONE_STATE not granted"; } OAIDLog.print(str); return ""; } /* JADX WARNING: Code restructure failed: missing block: B:13:0x001f, code lost: r2 = move-exception; */ /* JADX WARNING: Code restructure failed: missing block: B:15:?, code lost: r1.close(); */ /* JADX WARNING: Code restructure failed: missing block: B:16:0x0024, code lost: r1 = move-exception; */ /* JADX WARNING: Code restructure failed: missing block: B:17:0x0025, code lost: r3.addSuppressed(r1); */ /* JADX WARNING: Code restructure failed: missing block: B:18:0x0028, code lost: throw r2; */ private static String getUuidFromExternalStorage(Context context) { String str = ""; if (context == null) { return str; } File guidFile = getGuidFile(context); if (guidFile != null) { try { BufferedReader bufferedReader = new BufferedReader(new FileReader(guidFile)); str = bufferedReader.readLine(); bufferedReader.close(); } catch (Exception e) { OAIDLog.print(e); } } OAIDLog.print("Get uuid from external storage: " + str); return str; } private static String getUuidFromSharedPreferences(Context context) { if (context == null) { return ""; } String string = context.getSharedPreferences("GUID", 0).getString("uuid", ""); OAIDLog.print("Get uuid from shared preferences: " + string); return string; } private static String getUuidFromSystemSettings(Context context) { if (context == null) { return ""; } String string = Settings.System.getString(context.getContentResolver(), "GUID_uuid"); OAIDLog.print("Get uuid from system settings: " + string); return string; } public static String getWidevineID() { try { byte[] propertyByteArray = new MediaDrm(new UUID(-1301668207276963122L, -6645017420763422227L)).getPropertyByteArray("deviceUniqueId"); if (propertyByteArray == null) { return ""; } StringBuilder sb = new StringBuilder(); int length = propertyByteArray.length; for (int i = 0; i < length; i++) { sb.append(String.format("%02x", Byte.valueOf(propertyByteArray[i]))); } return sb.toString(); } catch (Error | Exception e) { OAIDLog.print(e); return ""; } } public static void register(Application application2) { if (application2 != null) { DeviceID deviceID = Holder.INSTANCE; deviceID.application = application2; String uniqueID = getUniqueID(application2); if (!TextUtils.isEmpty(uniqueID)) { deviceID.clientId = uniqueID; OAIDLog.print("Client id is IMEI/MEID: " + deviceID.clientId); return; } getOAID(application2, deviceID); } } /* JADX WARNING: Code restructure failed: missing block: B:17:0x0042, code lost: r3 = move-exception; */ /* JADX WARNING: Code restructure failed: missing block: B:19:?, code lost: r0.close(); */ /* JADX WARNING: Code restructure failed: missing block: B:20:0x0047, code lost: r0 = move-exception; */ /* JADX WARNING: Code restructure failed: missing block: B:21:0x0048, code lost: r2.addSuppressed(r0); */ /* JADX WARNING: Code restructure failed: missing block: B:22:0x004b, code lost: throw r3; */ private static void saveUuidToExternalStorage(Context context, String str) { if (context != null) { File guidFile = getGuidFile(context); if (guidFile == null) { OAIDLog.print("UUID file in external storage is null"); return; } try { BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(guidFile)); if (!guidFile.exists()) { guidFile.createNewFile(); } bufferedWriter.write(str); bufferedWriter.flush(); OAIDLog.print("Save uuid to external storage: " + str); bufferedWriter.close(); } catch (Exception e) { OAIDLog.print(e); } } } private static void saveUuidToSharedPreferences(Context context, String str) { if (context != null) { context.getSharedPreferences("GUID", 0).edit().putString("uuid", str).apply(); OAIDLog.print("Save uuid to shared preferences: " + str); } } private static void saveUuidToSystemSettings(Context context, String str) { if (context != null) { if (Build.VERSION.SDK_INT < 23 || Settings.System.canWrite(context)) { try { Settings.System.putString(context.getContentResolver(), "GUID_uuid", str); OAIDLog.print("Save uuid to system settings: " + str); } catch (Exception e) { e = e; } } else { e = "android.permission.WRITE_SETTINGS not granted"; OAIDLog.print(e); } } } public static boolean supportedOAID(Context context) { return OAIDFactory.create(context).supported(); } @Override // com.duoyou.api.oaid.IGetter public void onOAIDGetComplete(String str) { if (TextUtils.isEmpty(str)) { onOAIDGetError(new OAIDException("OAID is empty")); return; } this.clientId = str; this.oaid = str; OAIDLog.print("Client id is OAID/AAID: " + this.clientId); } @Override // com.duoyou.api.oaid.IGetter public void onOAIDGetError(Exception exc) { StringBuilder sb; String str; String widevineID = getWidevineID(); if (!TextUtils.isEmpty(widevineID)) { this.clientId = widevineID; sb = new StringBuilder(); str = "Client id is WidevineID: "; } else { String androidID = getAndroidID(this.application); if (!TextUtils.isEmpty(androidID)) { this.clientId = androidID; sb = new StringBuilder(); str = "Client id is AndroidID: "; } else { this.clientId = getGUID(this.application); sb = new StringBuilder(); str = "Client id is GUID: "; } } sb.append(str); sb.append(this.clientId); OAIDLog.print(sb.toString()); } }