翰林优商.apk(点击下载) / DeviceID.java


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());
    }
}