package com.sjm.sjmdsp.core.utils; import android.content.Context; import android.content.SharedPreferences; import android.os.Build; import android.provider.Settings; import android.telephony.TelephonyManager; import java.security.MessageDigest; import java.util.Locale; import java.util.UUID; import kotlin.UByte; public class DeviceIdUtil { private static String sjm_UUID_KEY = "sjm_UUID_VALUE"; private static String sjm_UUID_SP_NAME = "sjm_CONFIG_UUID"; public static String getDeviceId(Context context) { StringBuilder sb = new StringBuilder(); String imei = getIMEI(context); String androidId = getAndroidId(context); String serial = getSERIAL(); String replace = getDeviceUUID(context).replace("-", ""); if (imei != null && imei.length() > 0) { sb.append(imei); sb.append("|"); } if (androidId != null && androidId.length() > 0) { sb.append(androidId); sb.append("|"); } if (serial != null && serial.length() > 0) { sb.append(serial); sb.append("|"); } if (replace != null && replace.length() > 0) { sb.append(replace); } if (sb.length() > 0) { try { String bytesToHex = bytesToHex(getHashByString(sb.toString())); if (bytesToHex != null && bytesToHex.length() > 0) { return bytesToHex; } } catch (Exception unused) { } } return UUID.randomUUID().toString().replace("-", ""); } public static String getIMEI(Context context) { try { return ((TelephonyManager) context.getSystemService("phone")).getDeviceId(); } catch (Exception unused) { return ""; } } private static String getAndroidId(Context context) { try { return Settings.Secure.getString(context.getContentResolver(), "android_id"); } catch (Exception unused) { return ""; } } private static String getSERIAL() { try { return Build.SERIAL; } catch (Exception unused) { return ""; } } public static String getDeviceUUID(Context context) { String str; SharedPreferences sharedPreferences = null; try { sharedPreferences = context.getSharedPreferences(sjm_UUID_SP_NAME, 0); str = sharedPreferences.getString(sjm_UUID_KEY, ""); } catch (Exception unused) { str = ""; } if (str.length() > 0) { return str; } String lowerCase = UUID.randomUUID().toString().replace("-", "").toLowerCase(); if (sharedPreferences != null) { try { sharedPreferences.edit().putString(sjm_UUID_KEY, lowerCase).apply(); } catch (Exception unused2) { } } return lowerCase; } private static byte[] getHashByString(String str) { try { MessageDigest instance = MessageDigest.getInstance("SHA1"); instance.reset(); instance.update(str.getBytes("UTF-8")); return instance.digest(); } catch (Exception unused) { return "".getBytes(); } } private static String bytesToHex(byte[] bArr) { StringBuilder sb = new StringBuilder(); for (byte b : bArr) { String hexString = Integer.toHexString(b & UByte.MAX_VALUE); if (hexString.length() == 1) { sb.append("0"); } sb.append(hexString); } return sb.toString().toUpperCase(Locale.CHINA); } }