.class public Lcom/ta/utdid2/device/UTUtdid; .super Ljava/lang/Object; .source "UTUtdid.java" # static fields .field private static final CREATE_LOCK:Ljava/lang/Object; .field private static final HMAC_KEY:Ljava/lang/String; = "d6fc3a4a06adbde89223bvefedc24fecde188aaa9161" .field private static final S_GLOBAL_PERSISTENT_CONFIG_DIR:Ljava/lang/String; .field private static final S_GLOBAL_PERSISTENT_CONFIG_KEY:Ljava/lang/String; = "Alvin2" .field private static final S_LOCAL_STORAGE_KEY:Ljava/lang/String; = "ContextData" .field private static final S_LOCAL_STORAGE_NAME:Ljava/lang/String; = ".DataStorage" .field static final UM_SETTINGS_STORAGE:Ljava/lang/String; = "dxCRMxhQkdGePGnp" .field static final UM_SETTINGS_STORAGE_NEW:Ljava/lang/String; = "mqBRboGZkQPcAkyk" .field private static s_umutdid:Lcom/ta/utdid2/device/UTUtdid; # instance fields .field private mCBDomain:Ljava/lang/String; .field private mCBKey:Ljava/lang/String; .field private mContext:Landroid/content/Context; .field private mPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; .field private mPattern:Ljava/util/regex/Pattern; .field private mTaoPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; .field private mUtdid:Ljava/lang/String; .field private mUtdidHelper:Lcom/ta/utdid2/device/UTUtdidHelper; # direct methods .method static constructor ()V .registers 2 .line 28 new-instance v0, Ljava/lang/Object; invoke-direct {v0}, Ljava/lang/Object;->()V sput-object v0, Lcom/ta/utdid2/device/UTUtdid;->CREATE_LOCK:Ljava/lang/Object; .line 40 new-instance v0, Ljava/lang/StringBuilder; const-string v1, ".UTSystemConfig" invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V sget-object v1, Ljava/io/File;->separator:Ljava/lang/String; invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, "Global" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 sput-object v0, Lcom/ta/utdid2/device/UTUtdid;->S_GLOBAL_PERSISTENT_CONFIG_DIR:Ljava/lang/String; return-void .end method .method public constructor (Landroid/content/Context;)V .registers 15 .line 45 invoke-direct {p0}, Ljava/lang/Object;->()V const/4 v0, 0x0 .line 27 iput-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mContext:Landroid/content/Context; .line 30 iput-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mUtdid:Ljava/lang/String; .line 31 iput-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mUtdidHelper:Lcom/ta/utdid2/device/UTUtdidHelper; .line 32 const-string v1, "xx_utdid_key" iput-object v1, p0, Lcom/ta/utdid2/device/UTUtdid;->mCBKey:Ljava/lang/String; .line 33 const-string v1, "xx_utdid_domain" iput-object v1, p0, Lcom/ta/utdid2/device/UTUtdid;->mCBDomain:Ljava/lang/String; .line 36 iput-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; .line 39 iput-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mTaoPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; .line 43 const-string v0, "[^0-9a-zA-Z=/+]+" invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern; move-result-object v0 iput-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mPattern:Ljava/util/regex/Pattern; .line 46 iput-object p1, p0, Lcom/ta/utdid2/device/UTUtdid;->mContext:Landroid/content/Context; .line 47 new-instance v0, Lcom/ta/utdid2/core/persistent/PersistentConfiguration; sget-object v3, Lcom/ta/utdid2/device/UTUtdid;->S_GLOBAL_PERSISTENT_CONFIG_DIR:Ljava/lang/String; const/4 v5, 0x0 const/4 v6, 0x1 const-string v4, "Alvin2" move-object v1, v0 move-object v2, p1 invoke-direct/range {v1 .. v6}, Lcom/ta/utdid2/core/persistent/PersistentConfiguration;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;ZZ)V iput-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mTaoPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; .line 50 new-instance v0, Lcom/ta/utdid2/core/persistent/PersistentConfiguration; const/4 v11, 0x0 const/4 v12, 0x1 const-string v9, ".DataStorage" const-string v10, "ContextData" move-object v7, v0 move-object v8, p1 invoke-direct/range {v7 .. v12}, Lcom/ta/utdid2/core/persistent/PersistentConfiguration;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;ZZ)V iput-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; .line 52 new-instance p1, Lcom/ta/utdid2/device/UTUtdidHelper; invoke-direct {p1}, Lcom/ta/utdid2/device/UTUtdidHelper;->()V iput-object p1, p0, Lcom/ta/utdid2/device/UTUtdid;->mUtdidHelper:Lcom/ta/utdid2/device/UTUtdidHelper; .line 53 iget-object p1, p0, Lcom/ta/utdid2/device/UTUtdid;->mCBKey:Ljava/lang/String; invoke-static {p1}, Lcom/ta/utdid2/android/utils/StringUtils;->hashCode(Ljava/lang/String;)I move-result p1 invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p1 filled-new-array {p1}, [Ljava/lang/Object; move-result-object p1 const-string v0, "K_%d" invoke-static {v0, p1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object p1 iput-object p1, p0, Lcom/ta/utdid2/device/UTUtdid;->mCBKey:Ljava/lang/String; .line 54 iget-object p1, p0, Lcom/ta/utdid2/device/UTUtdid;->mCBDomain:Ljava/lang/String; invoke-static {p1}, Lcom/ta/utdid2/android/utils/StringUtils;->hashCode(Ljava/lang/String;)I move-result p1 invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p1 filled-new-array {p1}, [Ljava/lang/Object; move-result-object p1 const-string v0, "D_%d" invoke-static {v0, p1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object p1 iput-object p1, p0, Lcom/ta/utdid2/device/UTUtdid;->mCBDomain:Ljava/lang/String; return-void .end method .method private static _calcHmac([B)Ljava/lang/String; .registers 5 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/Exception; } .end annotation .line 434 const-string v0, "HmacSHA1" invoke-static {v0}, Ljavax/crypto/Mac;->getInstance(Ljava/lang/String;)Ljavax/crypto/Mac; move-result-object v0 .line 435 new-instance v1, Ljavax/crypto/spec/SecretKeySpec; const-string v2, "d6fc3a4a06adbde89223bvefedc24fecde188aaa9161" invoke-virtual {v2}, Ljava/lang/String;->getBytes()[B move-result-object v2 invoke-virtual {v0}, Ljavax/crypto/Mac;->getAlgorithm()Ljava/lang/String; move-result-object v3 invoke-direct {v1, v2, v3}, Ljavax/crypto/spec/SecretKeySpec;->([BLjava/lang/String;)V .line 436 invoke-virtual {v0, v1}, Ljavax/crypto/Mac;->init(Ljava/security/Key;)V .line 437 invoke-virtual {v0, p0}, Ljavax/crypto/Mac;->doFinal([B)[B move-result-object p0 const/4 v0, 0x2 .line 438 invoke-static {p0, v0}, Lcom/ta/utdid2/android/utils/Base64;->encodeToString([BI)Ljava/lang/String; move-result-object p0 return-object p0 .end method .method private final _generateUtdid()[B .registers 6 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/Exception; } .end annotation .line 398 new-instance v0, Ljava/io/ByteArrayOutputStream; invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;->()V .line 399 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v1 const-wide/16 v3, 0x3e8 div-long/2addr v1, v3 long-to-int v1, v1 .line 400 new-instance v2, Ljava/util/Random; invoke-direct {v2}, Ljava/util/Random;->()V invoke-virtual {v2}, Ljava/util/Random;->nextInt()I move-result v2 .line 403 invoke-static {v1}, Lcom/ta/utdid2/android/utils/IntUtils;->getBytes(I)[B move-result-object v1 .line 404 invoke-static {v2}, Lcom/ta/utdid2/android/utils/IntUtils;->getBytes(I)[B move-result-object v2 const/4 v3, 0x0 const/4 v4, 0x4 .line 405 invoke-virtual {v0, v1, v3, v4}, Ljava/io/ByteArrayOutputStream;->write([BII)V .line 406 invoke-virtual {v0, v2, v3, v4}, Ljava/io/ByteArrayOutputStream;->write([BII)V const/4 v1, 0x3 .line 407 invoke-virtual {v0, v1}, Ljava/io/ByteArrayOutputStream;->write(I)V .line 408 invoke-virtual {v0, v3}, Ljava/io/ByteArrayOutputStream;->write(I)V .line 411 :try_start_2d iget-object v1, p0, Lcom/ta/utdid2/device/UTUtdid;->mContext:Landroid/content/Context; invoke-static {v1}, Lcom/ta/utdid2/android/utils/PhoneInfoUtils;->getImei(Landroid/content/Context;)Ljava/lang/String; move-result-object v1 :try_end_33 .catch Ljava/lang/Exception; {:try_start_2d .. :try_end_33} :catch_34 goto :goto_4c .line 413 :catch_34 new-instance v1, Ljava/lang/StringBuilder; const-string v2, "" invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V new-instance v2, Ljava/util/Random; invoke-direct {v2}, Ljava/util/Random;->()V invoke-virtual {v2}, Ljava/util/Random;->nextInt()I move-result v2 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 .line 415 :goto_4c invoke-static {v1}, Lcom/ta/utdid2/android/utils/StringUtils;->hashCode(Ljava/lang/String;)I move-result v1 .line 416 invoke-static {v1}, Lcom/ta/utdid2/android/utils/IntUtils;->getBytes(I)[B move-result-object v1 .line 417 invoke-virtual {v0, v1, v3, v4}, Ljava/io/ByteArrayOutputStream;->write([BII)V .line 419 invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B move-result-object v1 invoke-static {v1}, Lcom/ta/utdid2/device/UTUtdid;->_calcHmac([B)Ljava/lang/String; move-result-object v1 .line 420 invoke-static {v1}, Lcom/ta/utdid2/android/utils/StringUtils;->hashCode(Ljava/lang/String;)I move-result v1 invoke-static {v1}, Lcom/ta/utdid2/android/utils/IntUtils;->getBytes(I)[B move-result-object v1 .line 421 invoke-virtual {v0, v1}, Ljava/io/ByteArrayOutputStream;->write([B)V .line 422 invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B move-result-object v0 return-object v0 .end method .method static getMetadataCheckSum(Lcom/ta/utdid2/device/Device;)J .registers 5 if-eqz p0, :cond_3e .line 78 invoke-virtual {p0}, Lcom/ta/utdid2/device/Device;->getUtdid()Ljava/lang/String; move-result-object v0 invoke-virtual {p0}, Lcom/ta/utdid2/device/Device;->getDeviceId()Ljava/lang/String; move-result-object v1 invoke-virtual {p0}, Lcom/ta/utdid2/device/Device;->getCreateTimestamp()J move-result-wide v2 invoke-static {v2, v3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object v2 invoke-virtual {p0}, Lcom/ta/utdid2/device/Device;->getImsi()Ljava/lang/String; move-result-object v3 invoke-virtual {p0}, Lcom/ta/utdid2/device/Device;->getImei()Ljava/lang/String; move-result-object p0 filled-new-array {v0, v1, v2, v3, p0}, [Ljava/lang/Object; move-result-object p0 const-string v0, "%s%s%s%s%s" invoke-static {v0, p0}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object p0 .line 82 invoke-static {p0}, Lcom/ta/utdid2/android/utils/StringUtils;->isEmpty(Ljava/lang/String;)Z move-result v0 if-nez v0, :cond_3e .line 83 new-instance v0, Ljava/util/zip/Adler32; invoke-direct {v0}, Ljava/util/zip/Adler32;->()V .line 84 invoke-virtual {v0}, Ljava/util/zip/Adler32;->reset()V .line 85 invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B move-result-object p0 invoke-virtual {v0, p0}, Ljava/util/zip/Adler32;->update([B)V .line 86 invoke-virtual {v0}, Ljava/util/zip/Adler32;->getValue()J move-result-wide v0 return-wide v0 :cond_3e const-wide/16 v0, 0x0 return-wide v0 .end method .method private getUtdidFromTaoPPC()Ljava/lang/String; .registers 3 .line 228 iget-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mTaoPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; if-eqz v0, :cond_19 .line 229 const-string v1, "UTDID" invoke-virtual {v0, v1}, Lcom/ta/utdid2/core/persistent/PersistentConfiguration;->getString(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 .line 230 invoke-static {v0}, Lcom/ta/utdid2/android/utils/StringUtils;->isEmpty(Ljava/lang/String;)Z move-result v1 if-nez v1, :cond_19 .line 231 iget-object v1, p0, Lcom/ta/utdid2/device/UTUtdid;->mUtdidHelper:Lcom/ta/utdid2/device/UTUtdidHelper; invoke-virtual {v1, v0}, Lcom/ta/utdid2/device/UTUtdidHelper;->packUtdidStr(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 if-eqz v1, :cond_19 return-object v0 :cond_19 const/4 v0, 0x0 return-object v0 .end method .method public static instance(Landroid/content/Context;)Lcom/ta/utdid2/device/UTUtdid; .registers 3 if-eqz p0, :cond_19 .line 59 sget-object v0, Lcom/ta/utdid2/device/UTUtdid;->s_umutdid:Lcom/ta/utdid2/device/UTUtdid; if-nez v0, :cond_19 .line 60 sget-object v0, Lcom/ta/utdid2/device/UTUtdid;->CREATE_LOCK:Ljava/lang/Object; monitor-enter v0 .line 61 :try_start_9 sget-object v1, Lcom/ta/utdid2/device/UTUtdid;->s_umutdid:Lcom/ta/utdid2/device/UTUtdid; if-nez v1, :cond_14 .line 62 new-instance v1, Lcom/ta/utdid2/device/UTUtdid; invoke-direct {v1, p0}, Lcom/ta/utdid2/device/UTUtdid;->(Landroid/content/Context;)V sput-object v1, Lcom/ta/utdid2/device/UTUtdid;->s_umutdid:Lcom/ta/utdid2/device/UTUtdid; .line 64 :cond_14 monitor-exit v0 goto :goto_19 :catchall_16 move-exception p0 monitor-exit v0 :try_end_18 .catchall {:try_start_9 .. :try_end_18} :catchall_16 throw p0 .line 67 :cond_19 :goto_19 sget-object p0, Lcom/ta/utdid2/device/UTUtdid;->s_umutdid:Lcom/ta/utdid2/device/UTUtdid; return-object p0 .end method .method private isValidUTDID(Ljava/lang/String;)Z .registers 6 const/4 v0, 0x0 if-eqz p1, :cond_2a .line 249 const-string v1, "\n" invoke-virtual {p1, v1}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z move-result v1 const/4 v2, 0x1 if-eqz v1, :cond_15 .line 250 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v1 sub-int/2addr v1, v2 invoke-virtual {p1, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object p1 :cond_15 const/16 v1, 0x18 .line 252 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v3 if-ne v1, v3, :cond_2a .line 253 iget-object v1, p0, Lcom/ta/utdid2/device/UTUtdid;->mPattern:Ljava/util/regex/Pattern; invoke-virtual {v1, p1}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; move-result-object p1 .line 255 invoke-virtual {p1}, Ljava/util/regex/Matcher;->find()Z move-result p1 if-nez p1, :cond_2a return v2 :cond_2a return v0 .end method .method private saveUtdidToLocalStorage(Ljava/lang/String;)V .registers 4 if-eqz p1, :cond_1e .line 149 iget-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; if-eqz v0, :cond_1e .line 150 iget-object v1, p0, Lcom/ta/utdid2/device/UTUtdid;->mCBKey:Ljava/lang/String; invoke-virtual {v0, v1}, Lcom/ta/utdid2/core/persistent/PersistentConfiguration;->getString(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 .line 151 invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-nez v0, :cond_1e .line 152 iget-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; iget-object v1, p0, Lcom/ta/utdid2/device/UTUtdid;->mCBKey:Ljava/lang/String; invoke-virtual {v0, v1, p1}, Lcom/ta/utdid2/core/persistent/PersistentConfiguration;->putString(Ljava/lang/String;Ljava/lang/String;)V .line 153 iget-object p1, p0, Lcom/ta/utdid2/device/UTUtdid;->mPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; invoke-virtual {p1}, Lcom/ta/utdid2/core/persistent/PersistentConfiguration;->commit()Z :cond_1e return-void .end method .method private saveUtdidToNewSettings(Ljava/lang/String;)V .registers 4 .line 167 iget-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mContext:Landroid/content/Context; const-string v1, "android.permission.WRITE_SETTINGS" invoke-virtual {v0, v1}, Landroid/content/Context;->checkCallingOrSelfPermission(Ljava/lang/String;)I move-result v0 if-nez v0, :cond_46 .line 171 invoke-direct {p0, p1}, Lcom/ta/utdid2/device/UTUtdid;->isValidUTDID(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_46 .line 172 const-string v0, "\n" invoke-virtual {p1, v0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_23 .line 173 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v0 add-int/lit8 v0, v0, -0x1 const/4 v1, 0x0 invoke-virtual {p1, v1, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object p1 :cond_23 const/16 v0, 0x18 .line 175 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v1 if-ne v0, v1, :cond_46 .line 176 iget-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mContext:Landroid/content/Context; invoke-virtual {v0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object v0 const-string v1, "mqBRboGZkQPcAkyk" invoke-static {v0, v1}, Landroid/provider/Settings$System;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 .line 180 invoke-direct {p0, v0}, Lcom/ta/utdid2/device/UTUtdid;->isValidUTDID(Ljava/lang/String;)Z move-result v0 if-nez v0, :cond_46 .line 181 iget-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mContext:Landroid/content/Context; invoke-virtual {v0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object v0 invoke-static {v0, v1, p1}, Landroid/provider/Settings$System;->putString(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Z :cond_46 return-void .end method .method private saveUtdidToSettings(Ljava/lang/String;)V .registers 4 .line 213 iget-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mContext:Landroid/content/Context; const-string v1, "android.permission.WRITE_SETTINGS" invoke-virtual {v0, v1}, Landroid/content/Context;->checkCallingOrSelfPermission(Ljava/lang/String;)I move-result v0 if-nez v0, :cond_f if-eqz p1, :cond_f .line 217 invoke-direct {p0, p1}, Lcom/ta/utdid2/device/UTUtdid;->syncUTDIDToSettings(Ljava/lang/String;)V :cond_f return-void .end method .method private saveUtdidToTaoPPC(Ljava/lang/String;)V .registers 12 .line 101 invoke-direct {p0, p1}, Lcom/ta/utdid2/device/UTUtdid;->isValidUTDID(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_bd .line 102 const-string v0, "\n" invoke-virtual {p1, v0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_19 .line 103 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v0 add-int/lit8 v0, v0, -0x1 const/4 v1, 0x0 invoke-virtual {p1, v1, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object p1 .line 105 :cond_19 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v0 const/16 v1, 0x18 if-ne v0, v1, :cond_bd .line 106 iget-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mTaoPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; if-eqz v0, :cond_bd .line 107 const-string v1, "UTDID" invoke-virtual {v0, v1}, Lcom/ta/utdid2/core/persistent/PersistentConfiguration;->getString(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 .line 108 iget-object v2, p0, Lcom/ta/utdid2/device/UTUtdid;->mTaoPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; const-string v3, "EI" invoke-virtual {v2, v3}, Lcom/ta/utdid2/core/persistent/PersistentConfiguration;->getString(Ljava/lang/String;)Ljava/lang/String; move-result-object v2 .line 109 invoke-static {v2}, Lcom/ta/utdid2/android/utils/StringUtils;->isEmpty(Ljava/lang/String;)Z move-result v4 if-eqz v4, :cond_3f .line 110 iget-object v2, p0, Lcom/ta/utdid2/device/UTUtdid;->mContext:Landroid/content/Context; invoke-static {v2}, Lcom/ta/utdid2/android/utils/PhoneInfoUtils;->getImei(Landroid/content/Context;)Ljava/lang/String; move-result-object v2 .line 112 :cond_3f iget-object v4, p0, Lcom/ta/utdid2/device/UTUtdid;->mTaoPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; const-string v5, "SI" invoke-virtual {v4, v5}, Lcom/ta/utdid2/core/persistent/PersistentConfiguration;->getString(Ljava/lang/String;)Ljava/lang/String; move-result-object v4 .line 113 invoke-static {v4}, Lcom/ta/utdid2/android/utils/StringUtils;->isEmpty(Ljava/lang/String;)Z move-result v6 if-eqz v6, :cond_53 .line 114 iget-object v4, p0, Lcom/ta/utdid2/device/UTUtdid;->mContext:Landroid/content/Context; invoke-static {v4}, Lcom/ta/utdid2/android/utils/PhoneInfoUtils;->getImsi(Landroid/content/Context;)Ljava/lang/String; move-result-object v4 .line 116 :cond_53 iget-object v6, p0, Lcom/ta/utdid2/device/UTUtdid;->mTaoPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; const-string v7, "DID" invoke-virtual {v6, v7}, Lcom/ta/utdid2/core/persistent/PersistentConfiguration;->getString(Ljava/lang/String;)Ljava/lang/String; move-result-object v6 .line 117 invoke-static {v6}, Lcom/ta/utdid2/android/utils/StringUtils;->isEmpty(Ljava/lang/String;)Z move-result v8 if-eqz v8, :cond_62 move-object v6, v2 :cond_62 if-eqz v0, :cond_6a .line 121 invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-nez v0, :cond_bd .line 122 :cond_6a new-instance v0, Lcom/ta/utdid2/device/Device; invoke-direct {v0}, Lcom/ta/utdid2/device/Device;->()V .line 123 invoke-virtual {v0, v2}, Lcom/ta/utdid2/device/Device;->setImei(Ljava/lang/String;)V .line 124 invoke-virtual {v0, v4}, Lcom/ta/utdid2/device/Device;->setImsi(Ljava/lang/String;)V .line 125 invoke-virtual {v0, p1}, Lcom/ta/utdid2/device/Device;->setUtdid(Ljava/lang/String;)V .line 126 invoke-virtual {v0, v6}, Lcom/ta/utdid2/device/Device;->setDeviceId(Ljava/lang/String;)V .line 127 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v8 invoke-virtual {v0, v8, v9}, Lcom/ta/utdid2/device/Device;->setCreateTimestamp(J)V .line 129 iget-object v2, p0, Lcom/ta/utdid2/device/UTUtdid;->mTaoPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; invoke-virtual {v2, v1, p1}, Lcom/ta/utdid2/core/persistent/PersistentConfiguration;->putString(Ljava/lang/String;Ljava/lang/String;)V .line 130 iget-object p1, p0, Lcom/ta/utdid2/device/UTUtdid;->mTaoPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; invoke-virtual {v0}, Lcom/ta/utdid2/device/Device;->getImei()Ljava/lang/String; move-result-object v1 invoke-virtual {p1, v3, v1}, Lcom/ta/utdid2/core/persistent/PersistentConfiguration;->putString(Ljava/lang/String;Ljava/lang/String;)V .line 131 iget-object p1, p0, Lcom/ta/utdid2/device/UTUtdid;->mTaoPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; invoke-virtual {v0}, Lcom/ta/utdid2/device/Device;->getImsi()Ljava/lang/String; move-result-object v1 invoke-virtual {p1, v5, v1}, Lcom/ta/utdid2/core/persistent/PersistentConfiguration;->putString(Ljava/lang/String;Ljava/lang/String;)V .line 132 iget-object p1, p0, Lcom/ta/utdid2/device/UTUtdid;->mTaoPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; invoke-virtual {v0}, Lcom/ta/utdid2/device/Device;->getDeviceId()Ljava/lang/String; move-result-object v1 invoke-virtual {p1, v7, v1}, Lcom/ta/utdid2/core/persistent/PersistentConfiguration;->putString(Ljava/lang/String;Ljava/lang/String;)V .line 133 iget-object p1, p0, Lcom/ta/utdid2/device/UTUtdid;->mTaoPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; const-string v1, "timestamp" invoke-virtual {v0}, Lcom/ta/utdid2/device/Device;->getCreateTimestamp()J move-result-wide v2 invoke-virtual {p1, v1, v2, v3}, Lcom/ta/utdid2/core/persistent/PersistentConfiguration;->putLong(Ljava/lang/String;J)V .line 134 iget-object p1, p0, Lcom/ta/utdid2/device/UTUtdid;->mTaoPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; const-string v1, "S" invoke-static {v0}, Lcom/ta/utdid2/device/UTUtdid;->getMetadataCheckSum(Lcom/ta/utdid2/device/Device;)J move-result-wide v2 invoke-virtual {p1, v1, v2, v3}, Lcom/ta/utdid2/core/persistent/PersistentConfiguration;->putLong(Ljava/lang/String;J)V .line 135 iget-object p1, p0, Lcom/ta/utdid2/device/UTUtdid;->mTaoPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; invoke-virtual {p1}, Lcom/ta/utdid2/core/persistent/PersistentConfiguration;->commit()Z :cond_bd return-void .end method .method private syncUTDIDToSettings(Ljava/lang/String;)V .registers 4 .line 197 iget-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mContext:Landroid/content/Context; invoke-virtual {v0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object v0 const-string v1, "dxCRMxhQkdGePGnp" invoke-static {v0, v1}, Landroid/provider/Settings$System;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 .line 199 invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-nez v0, :cond_1b .line 200 iget-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mContext:Landroid/content/Context; invoke-virtual {v0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object v0 invoke-static {v0, v1, p1}, Landroid/provider/Settings$System;->putString(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Z :cond_1b return-void .end method # virtual methods .method public declared-synchronized getValue()Ljava/lang/String; .registers 5 monitor-enter p0 .line 270 :try_start_1 iget-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mUtdid:Ljava/lang/String; :try_end_3 .catchall {:try_start_1 .. :try_end_3} :catchall_110 if-eqz v0, :cond_7 .line 271 monitor-exit p0 return-object v0 .line 275 :cond_7 :try_start_7 iget-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mContext:Landroid/content/Context; invoke-virtual {v0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object v0 const-string v1, "mqBRboGZkQPcAkyk" invoke-static {v0, v1}, Landroid/provider/Settings$System;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 .line 277 invoke-direct {p0, v0}, Lcom/ta/utdid2/device/UTUtdid;->isValidUTDID(Ljava/lang/String;)Z move-result v1 :try_end_17 .catchall {:try_start_7 .. :try_end_17} :catchall_110 if-eqz v1, :cond_1b .line 278 monitor-exit p0 return-object v0 .line 281 :cond_1b :try_start_1b new-instance v0, Lcom/ta/utdid2/device/UTUtdidHelper2; invoke-direct {v0}, Lcom/ta/utdid2/device/UTUtdidHelper2;->()V .line 287 iget-object v1, p0, Lcom/ta/utdid2/device/UTUtdid;->mContext:Landroid/content/Context; invoke-virtual {v1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object v1 const-string v2, "dxCRMxhQkdGePGnp" invoke-static {v1, v2}, Landroid/provider/Settings$System;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String; move-result-object v1 .line 289 invoke-static {v1}, Lcom/ta/utdid2/android/utils/StringUtils;->isEmpty(Ljava/lang/String;)Z move-result v2 if-nez v2, :cond_85 .line 291 invoke-virtual {v0, v1}, Lcom/ta/utdid2/device/UTUtdidHelper2;->dePackWithBase64(Ljava/lang/String;)Ljava/lang/String; move-result-object v2 .line 292 invoke-direct {p0, v2}, Lcom/ta/utdid2/device/UTUtdid;->isValidUTDID(Ljava/lang/String;)Z move-result v3 if-eqz v3, :cond_41 .line 294 invoke-direct {p0, v2}, Lcom/ta/utdid2/device/UTUtdid;->saveUtdidToNewSettings(Ljava/lang/String;)V :try_end_3f .catchall {:try_start_1b .. :try_end_3f} :catchall_110 .line 295 monitor-exit p0 return-object v2 .line 298 :cond_41 :try_start_41 invoke-virtual {v0, v1}, Lcom/ta/utdid2/device/UTUtdidHelper2;->dePack(Ljava/lang/String;)Ljava/lang/String; move-result-object v2 .line 299 invoke-direct {p0, v2}, Lcom/ta/utdid2/device/UTUtdid;->isValidUTDID(Ljava/lang/String;)Z move-result v3 if-eqz v3, :cond_66 .line 300 iget-object v3, p0, Lcom/ta/utdid2/device/UTUtdid;->mUtdidHelper:Lcom/ta/utdid2/device/UTUtdidHelper; invoke-virtual {v3, v2}, Lcom/ta/utdid2/device/UTUtdidHelper;->packUtdidStr(Ljava/lang/String;)Ljava/lang/String; move-result-object v2 .line 301 invoke-static {v2}, Lcom/ta/utdid2/android/utils/StringUtils;->isEmpty(Ljava/lang/String;)Z move-result v3 if-nez v3, :cond_66 .line 303 invoke-direct {p0, v2}, Lcom/ta/utdid2/device/UTUtdid;->saveUtdidToSettings(Ljava/lang/String;)V .line 305 iget-object v1, p0, Lcom/ta/utdid2/device/UTUtdid;->mContext:Landroid/content/Context; invoke-virtual {v1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object v1 const-string v2, "dxCRMxhQkdGePGnp" invoke-static {v1, v2}, Landroid/provider/Settings$System;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String; move-result-object v1 .line 310 :cond_66 iget-object v2, p0, Lcom/ta/utdid2/device/UTUtdid;->mUtdidHelper:Lcom/ta/utdid2/device/UTUtdidHelper; invoke-virtual {v2, v1}, Lcom/ta/utdid2/device/UTUtdidHelper;->dePack(Ljava/lang/String;)Ljava/lang/String; move-result-object v2 .line 311 invoke-direct {p0, v2}, Lcom/ta/utdid2/device/UTUtdid;->isValidUTDID(Ljava/lang/String;)Z move-result v3 if-eqz v3, :cond_83 .line 312 iput-object v2, p0, Lcom/ta/utdid2/device/UTUtdid;->mUtdid:Ljava/lang/String; .line 314 invoke-direct {p0, v2}, Lcom/ta/utdid2/device/UTUtdid;->saveUtdidToTaoPPC(Ljava/lang/String;)V .line 316 invoke-direct {p0, v1}, Lcom/ta/utdid2/device/UTUtdid;->saveUtdidToLocalStorage(Ljava/lang/String;)V .line 318 iget-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mUtdid:Ljava/lang/String; invoke-direct {p0, v0}, Lcom/ta/utdid2/device/UTUtdid;->saveUtdidToNewSettings(Ljava/lang/String;)V .line 319 iget-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mUtdid:Ljava/lang/String; :try_end_81 .catchall {:try_start_41 .. :try_end_81} :catchall_110 monitor-exit p0 return-object v0 :cond_83 const/4 v1, 0x0 goto :goto_86 :cond_85 const/4 v1, 0x1 .line 328 :goto_86 :try_start_86 invoke-direct {p0}, Lcom/ta/utdid2/device/UTUtdid;->getUtdidFromTaoPPC()Ljava/lang/String; move-result-object v2 .line 329 invoke-direct {p0, v2}, Lcom/ta/utdid2/device/UTUtdid;->isValidUTDID(Ljava/lang/String;)Z move-result v3 if-eqz v3, :cond_a5 .line 330 iget-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mUtdidHelper:Lcom/ta/utdid2/device/UTUtdidHelper; invoke-virtual {v0, v2}, Lcom/ta/utdid2/device/UTUtdidHelper;->packUtdidStr(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 if-eqz v1, :cond_9b .line 333 invoke-direct {p0, v0}, Lcom/ta/utdid2/device/UTUtdid;->saveUtdidToSettings(Ljava/lang/String;)V .line 336 :cond_9b invoke-direct {p0, v2}, Lcom/ta/utdid2/device/UTUtdid;->saveUtdidToNewSettings(Ljava/lang/String;)V .line 338 invoke-direct {p0, v0}, Lcom/ta/utdid2/device/UTUtdid;->saveUtdidToLocalStorage(Ljava/lang/String;)V .line 339 iput-object v2, p0, Lcom/ta/utdid2/device/UTUtdid;->mUtdid:Ljava/lang/String; :try_end_a3 .catchall {:try_start_86 .. :try_end_a3} :catchall_110 .line 340 monitor-exit p0 return-object v2 .line 344 :cond_a5 :try_start_a5 iget-object v2, p0, Lcom/ta/utdid2/device/UTUtdid;->mPC:Lcom/ta/utdid2/core/persistent/PersistentConfiguration; iget-object v3, p0, Lcom/ta/utdid2/device/UTUtdid;->mCBKey:Ljava/lang/String; invoke-virtual {v2, v3}, Lcom/ta/utdid2/core/persistent/PersistentConfiguration;->getString(Ljava/lang/String;)Ljava/lang/String; move-result-object v2 .line 345 invoke-static {v2}, Lcom/ta/utdid2/android/utils/StringUtils;->isEmpty(Ljava/lang/String;)Z move-result v3 if-nez v3, :cond_e5 .line 346 invoke-virtual {v0, v2}, Lcom/ta/utdid2/device/UTUtdidHelper2;->dePack(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 .line 347 invoke-direct {p0, v0}, Lcom/ta/utdid2/device/UTUtdid;->isValidUTDID(Ljava/lang/String;)Z move-result v3 if-nez v3, :cond_c3 .line 348 iget-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mUtdidHelper:Lcom/ta/utdid2/device/UTUtdidHelper; invoke-virtual {v0, v2}, Lcom/ta/utdid2/device/UTUtdidHelper;->dePack(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 .line 350 :cond_c3 invoke-direct {p0, v0}, Lcom/ta/utdid2/device/UTUtdid;->isValidUTDID(Ljava/lang/String;)Z move-result v2 if-eqz v2, :cond_e5 .line 351 iget-object v2, p0, Lcom/ta/utdid2/device/UTUtdid;->mUtdidHelper:Lcom/ta/utdid2/device/UTUtdidHelper; invoke-virtual {v2, v0}, Lcom/ta/utdid2/device/UTUtdidHelper;->packUtdidStr(Ljava/lang/String;)Ljava/lang/String; move-result-object v2 .line 352 invoke-static {v0}, Lcom/ta/utdid2/android/utils/StringUtils;->isEmpty(Ljava/lang/String;)Z move-result v3 if-nez v3, :cond_e5 .line 353 iput-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mUtdid:Ljava/lang/String; if-eqz v1, :cond_dc .line 356 invoke-direct {p0, v2}, Lcom/ta/utdid2/device/UTUtdid;->saveUtdidToSettings(Ljava/lang/String;)V .line 359 :cond_dc iget-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mUtdid:Ljava/lang/String; invoke-direct {p0, v0}, Lcom/ta/utdid2/device/UTUtdid;->saveUtdidToTaoPPC(Ljava/lang/String;)V .line 360 iget-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mUtdid:Ljava/lang/String; :try_end_e3 .catchall {:try_start_a5 .. :try_end_e3} :catchall_110 monitor-exit p0 return-object v0 .line 368 :cond_e5 :try_start_e5 invoke-direct {p0}, Lcom/ta/utdid2/device/UTUtdid;->_generateUtdid()[B move-result-object v0 if-eqz v0, :cond_10d const/4 v2, 0x2 .line 371 invoke-static {v0, v2}, Lcom/ta/utdid2/android/utils/Base64;->encodeToString([BI)Ljava/lang/String; move-result-object v2 iput-object v2, p0, Lcom/ta/utdid2/device/UTUtdid;->mUtdid:Ljava/lang/String; .line 372 invoke-direct {p0, v2}, Lcom/ta/utdid2/device/UTUtdid;->saveUtdidToTaoPPC(Ljava/lang/String;)V .line 374 iget-object v2, p0, Lcom/ta/utdid2/device/UTUtdid;->mUtdidHelper:Lcom/ta/utdid2/device/UTUtdidHelper; invoke-virtual {v2, v0}, Lcom/ta/utdid2/device/UTUtdidHelper;->pack([B)Ljava/lang/String; move-result-object v0 if-eqz v0, :cond_105 if-eqz v1, :cond_102 .line 378 invoke-direct {p0, v0}, Lcom/ta/utdid2/device/UTUtdid;->saveUtdidToSettings(Ljava/lang/String;)V .line 381 :cond_102 invoke-direct {p0, v0}, Lcom/ta/utdid2/device/UTUtdid;->saveUtdidToLocalStorage(Ljava/lang/String;)V .line 383 :cond_105 iget-object v0, p0, Lcom/ta/utdid2/device/UTUtdid;->mUtdid:Ljava/lang/String; :try_end_107 .catch Ljava/lang/Exception; {:try_start_e5 .. :try_end_107} :catch_109 .catchall {:try_start_e5 .. :try_end_107} :catchall_110 monitor-exit p0 return-object v0 :catch_109 move-exception v0 .line 386 :try_start_10a invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V :try_end_10d .catchall {:try_start_10a .. :try_end_10d} :catchall_110 .line 388 :cond_10d monitor-exit p0 const/4 v0, 0x0 return-object v0 :catchall_110 move-exception v0 :try_start_111 monitor-exit p0 :try_end_112 .catchall {:try_start_111 .. :try_end_112} :catchall_110 throw v0 .end method