g.smali
.class public Lcom/appsflyer/g;
.super Ljava/lang/Object;
.source "Installation.java"
# static fields
.field private static a:Ljava/lang/String;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 22
const/4 v0, 0x0
sput-object v0, Lcom/appsflyer/g;->a:Ljava/lang/String;
return-void
.end method
.method public static declared-synchronized a(Landroid/content/Context;)Ljava/lang/String;
.registers 5
.prologue
.line 26
const-class v1, Lcom/appsflyer/g;
monitor-enter v1
:try_start_3
sget-object v0, Lcom/appsflyer/g;->a:Ljava/lang/String;
if-nez v0, :cond_21
.line 27
new-instance v0, Ljava/io/File;
invoke-virtual {p0}, Landroid/content/Context;->getFilesDir()Ljava/io/File;
move-result-object v2
const-string v3, "AF_INSTALLATION"
invoke-direct {v0, v2, v3}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
:try_end_12
.catchall {:try_start_3 .. :try_end_12} :catchall_2c
.line 29
:try_start_12
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v2
if-nez v2, :cond_1b
.line 30
invoke-static {v0, p0}, Lcom/appsflyer/g;->a(Ljava/io/File;Landroid/content/Context;)V
.line 31
:cond_1b
invoke-static {v0}, Lcom/appsflyer/g;->a(Ljava/io/File;)Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/appsflyer/g;->a:Ljava/lang/String;
:try_end_21
.catch Ljava/lang/Exception; {:try_start_12 .. :try_end_21} :catch_25
.catchall {:try_start_12 .. :try_end_21} :catchall_2c
.line 36
:cond_21
:try_start_21
sget-object v0, Lcom/appsflyer/g;->a:Ljava/lang/String;
:try_end_23
.catchall {:try_start_21 .. :try_end_23} :catchall_2c
monitor-exit v1
return-object v0
.line 32
:catch_25
move-exception v0
.line 33
:try_start_26
new-instance v2, Ljava/lang/RuntimeException;
invoke-direct {v2, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
throw v2
:try_end_2c
.catchall {:try_start_26 .. :try_end_2c} :catchall_2c
.line 26
:catchall_2c
move-exception v0
monitor-exit v1
throw v0
.end method
.method private static a(Ljava/io/File;)Ljava/lang/String;
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 40
new-instance v0, Ljava/io/RandomAccessFile;
const-string v1, "r"
invoke-direct {v0, p0, v1}, Ljava/io/RandomAccessFile;-><init>(Ljava/io/File;Ljava/lang/String;)V
.line 41
invoke-virtual {v0}, Ljava/io/RandomAccessFile;->length()J
move-result-wide v2
long-to-int v1, v2
new-array v1, v1, [B
.line 42
invoke-virtual {v0, v1}, Ljava/io/RandomAccessFile;->readFully([B)V
.line 43
invoke-virtual {v0}, Ljava/io/RandomAccessFile;->close()V
.line 44
new-instance v0, Ljava/lang/String;
invoke-direct {v0, v1}, Ljava/lang/String;-><init>([B)V
return-object v0
.end method
.method private static a(Ljava/io/File;Landroid/content/Context;)V
.registers 8
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Landroid/content/pm/PackageManager$NameNotFoundException;
}
.end annotation
.prologue
.line 48
new-instance v1, Ljava/io/FileOutputStream;
invoke-direct {v1, p0}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
.line 49
invoke-virtual {p1}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v0
invoke-virtual {p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v2
const/4 v3, 0x0
invoke-virtual {v0, v2, v3}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
move-result-object v0
.line 52
sget v2, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v3, 0x9
if-lt v2, v3, :cond_49
.line 53
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
iget-wide v4, v0, Landroid/content/pm/PackageInfo;->firstInstallTime:J
invoke-virtual {v2, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, "-"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
new-instance v2, Ljava/util/Random;
invoke-direct {v2}, Ljava/util/Random;-><init>()V
invoke-virtual {v2}, Ljava/util/Random;->nextLong()J
move-result-wide v2
invoke-static {v2, v3}, Ljava/lang/Math;->abs(J)J
move-result-wide v2
invoke-virtual {v0, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 57
:goto_3e
invoke-virtual {v0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-virtual {v1, v0}, Ljava/io/FileOutputStream;->write([B)V
.line 58
invoke-virtual {v1}, Ljava/io/FileOutputStream;->close()V
.line 59
return-void
.line 55
:cond_49
invoke-static {}, Ljava/util/UUID;->randomUUID()Ljava/util/UUID;
move-result-object v0
invoke-virtual {v0}, Ljava/util/UUID;->toString()Ljava/lang/String;
move-result-object v0
goto :goto_3e
.end method