l.smali
.class final Lxcrash/l;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field private static final a:[Ljava/lang/String;
# direct methods
.method static constructor <clinit>()V
.registers 11
const-string v0, "/data/local/su"
const-string v1, "/data/local/bin/su"
const-string v2, "/data/local/xbin/su"
const-string v3, "/system/xbin/su"
const-string v4, "/system/bin/su"
const-string v5, "/system/bin/.ext/su"
const-string v6, "/system/bin/failsafe/su"
const-string v7, "/system/sd/xbin/su"
const-string v8, "/system/usr/we-need-root/su"
const-string v9, "/sbin/su"
const-string v10, "/su/bin/su"
.line 114
filled-new-array/range {v0 .. v10}, [Ljava/lang/String;
move-result-object v0
sput-object v0, Lxcrash/l;->a:[Ljava/lang/String;
return-void
.end method
.method static a(III)Ljava/lang/String;
.registers 7
.line 403
invoke-static {}, Landroid/os/Process;->myPid()I
move-result v0
.line 404
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "logcat:\n"
.line 406
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
if-lez p0, :cond_17
const/16 v2, 0x44
const-string v3, "main"
.line 409
invoke-static {v0, v1, v3, p0, v2}, Lxcrash/l;->a(ILjava/lang/StringBuilder;Ljava/lang/String;IC)V
:cond_17
if-lez p1, :cond_20
const/16 p0, 0x57
const-string v2, "system"
.line 412
invoke-static {v0, v1, v2, p1, p0}, Lxcrash/l;->a(ILjava/lang/StringBuilder;Ljava/lang/String;IC)V
:cond_20
if-lez p2, :cond_29
const/16 p0, 0x49
const-string p2, "events"
.line 415
invoke-static {v0, v1, p2, p1, p0}, Lxcrash/l;->a(ILjava/lang/StringBuilder;Ljava/lang/String;IC)V
:cond_29
const-string p0, "\n"
.line 418
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 420
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method static a(Landroid/content/Context;)Ljava/lang/String;
.registers 3
.line 159
:try_start_0
invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v0
invoke-virtual {p0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object p0
const/4 v1, 0x0
invoke-virtual {v0, p0, v1}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
move-result-object p0
iget-object p0, p0, Landroid/content/pm/PackageInfo;->versionName:Ljava/lang/String;
:try_end_f
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_f} :catch_10
goto :goto_11
:catch_10
const/4 p0, 0x0
.line 163
:goto_11
invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_19
const-string p0, "unknown"
:cond_19
return-object p0
.end method
.method static a(Landroid/content/Context;I)Ljava/lang/String;
.registers 6
:try_start_0
const-string v0, "activity"
.line 75
invoke-virtual {p0, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Landroid/app/ActivityManager;
if-eqz p0, :cond_2f
.line 77
invoke-virtual {p0}, Landroid/app/ActivityManager;->getRunningAppProcesses()Ljava/util/List;
move-result-object p0
if-eqz p0, :cond_2f
.line 79
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p0
:cond_14
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_2f
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/app/ActivityManager$RunningAppProcessInfo;
.line 80
iget v1, v0, Landroid/app/ActivityManager$RunningAppProcessInfo;->pid:I
if-ne v1, p1, :cond_14
iget-object v1, v0, Landroid/app/ActivityManager$RunningAppProcessInfo;->processName:Ljava/lang/String;
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_14
.line 81
iget-object p0, v0, Landroid/app/ActivityManager$RunningAppProcessInfo;->processName:Ljava/lang/String;
:try_end_2e
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_2e} :catch_2f
return-object p0
:catch_2f
:cond_2f
const/4 p0, 0x0
.line 92
:try_start_30
new-instance v0, Ljava/io/BufferedReader;
new-instance v1, Ljava/io/FileReader;
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "/proc/"
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string p1, "/cmdline"
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v1, p1}, Ljava/io/FileReader;-><init>(Ljava/lang/String;)V
invoke-direct {v0, v1}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
:try_end_4d
.catch Ljava/lang/Exception; {:try_start_30 .. :try_end_4d} :catch_74
.catchall {:try_start_30 .. :try_end_4d} :catchall_6b
.line 93
:try_start_4d
invoke-virtual {v0}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
move-result-object p1
.line 94
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_65
.line 95
invoke-virtual {p1}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object p1
.line 96
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
:try_end_5f
.catch Ljava/lang/Exception; {:try_start_4d .. :try_end_5f} :catch_75
.catchall {:try_start_4d .. :try_end_5f} :catchall_69
if-nez v1, :cond_65
.line 104
:try_start_61
invoke-virtual {v0}, Ljava/io/BufferedReader;->close()V
:try_end_64
.catch Ljava/lang/Exception; {:try_start_61 .. :try_end_64} :catch_64
:catch_64
return-object p1
:cond_65
:goto_65
:try_start_65
invoke-virtual {v0}, Ljava/io/BufferedReader;->close()V
:try_end_68
.catch Ljava/lang/Exception; {:try_start_65 .. :try_end_68} :catch_78
goto :goto_78
:catchall_69
move-exception p0
goto :goto_6e
:catchall_6b
move-exception p1
move-object v0, p0
move-object p0, p1
:goto_6e
if-eqz v0, :cond_73
:try_start_70
invoke-virtual {v0}, Ljava/io/BufferedReader;->close()V
:try_end_73
.catch Ljava/lang/Exception; {:try_start_70 .. :try_end_73} :catch_73
.line 107
:catch_73
:cond_73
throw p0
:catch_74
move-object v0, p0
:catch_75
if-eqz v0, :cond_78
goto :goto_65
:catch_78
:cond_78
:goto_78
return-object p0
.end method
.method private static a(Ljava/lang/String;I)Ljava/lang/String;
.registers 8
.line 212
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const/4 v1, 0x0
.line 217
:try_start_6
new-instance v2, Ljava/io/BufferedReader;
new-instance v3, Ljava/io/FileReader;
invoke-direct {v3, p0}, Ljava/io/FileReader;-><init>(Ljava/lang/String;)V
invoke-direct {v2, v3}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
:try_end_10
.catch Ljava/lang/Exception; {:try_start_6 .. :try_end_10} :catch_52
.catchall {:try_start_6 .. :try_end_10} :catchall_50
const/4 v1, 0x0
.line 218
:cond_11
:goto_11
:try_start_11
invoke-virtual {v2}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
move-result-object v3
if-eqz v3, :cond_35
.line 219
invoke-virtual {v3}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v3
.line 220
invoke-virtual {v3}, Ljava/lang/String;->length()I
move-result v4
if-lez v4, :cond_11
add-int/lit8 v1, v1, 0x1
if-eqz p1, :cond_27
if-gt v1, p1, :cond_11
:cond_27
const-string v4, " "
.line 223
invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, "\n"
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_11
:cond_35
if-lez p1, :cond_46
if-le v1, p1, :cond_46
const-string p1, " ......\n (number of records: "
.line 228
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string p1, ")\n"
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:try_end_46
.catch Ljava/lang/Exception; {:try_start_11 .. :try_end_46} :catch_4d
.catchall {:try_start_11 .. :try_end_46} :catchall_4a
.line 235
:cond_46
:try_start_46
invoke-virtual {v2}, Ljava/io/BufferedReader;->close()V
:try_end_49
.catch Ljava/lang/Exception; {:try_start_46 .. :try_end_49} :catch_74
goto :goto_74
:catchall_4a
move-exception p0
move-object v1, v2
goto :goto_79
:catch_4d
move-exception p1
move-object v1, v2
goto :goto_53
:catchall_50
move-exception p0
goto :goto_79
:catch_52
move-exception p1
.line 231
:goto_53
:try_start_53
invoke-static {}, Lxcrash/m;->d()Lxcrash/h;
move-result-object v2
const-string v3, "xcrash"
new-instance v4, Ljava/lang/StringBuilder;
const-string v5, "Util getInfo("
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v4, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, ") failed"
invoke-virtual {v4, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-interface {v2, v3, p0, p1}, Lxcrash/h;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:try_end_6f
.catchall {:try_start_53 .. :try_end_6f} :catchall_50
if-eqz v1, :cond_74
.line 235
:try_start_71
invoke-virtual {v1}, Ljava/io/BufferedReader;->close()V
:try_end_74
.catch Ljava/lang/Exception; {:try_start_71 .. :try_end_74} :catch_74
.line 240
:catch_74
:cond_74
:goto_74
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
:goto_79
if-eqz v1, :cond_7e
.line 235
:try_start_7b
invoke-virtual {v1}, Ljava/io/BufferedReader;->close()V
:try_end_7e
.catch Ljava/lang/Exception; {:try_start_7b .. :try_end_7e} :catch_7e
.line 237
:catch_7e
:cond_7e
goto :goto_80
:goto_7f
throw p0
:goto_80
goto :goto_7f
.end method
.method static a(Ljava/util/Date;Ljava/util/Date;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 8
.line 291
new-instance v0, Ljava/text/SimpleDateFormat;
sget-object v1, Ljava/util/Locale;->US:Ljava/util/Locale;
const-string v2, "yyyy-MM-dd\'T\'HH:mm:ss.SSSZ"
invoke-direct {v0, v2, v1}, Ljava/text/SimpleDateFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
.line 293
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nTombstone maker: \'xCrash 2.4.9\'\nCrash type: \'"
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p2, "\'\nStart time: \'"
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 296
invoke-virtual {v0, p0}, Ljava/text/DateFormat;->format(Ljava/util/Date;)Ljava/lang/String;
move-result-object p0
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, "\'\nCrash time: \'"
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 297
invoke-virtual {v0, p1}, Ljava/text/DateFormat;->format(Ljava/util/Date;)Ljava/lang/String;
move-result-object p0
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, "\'\nApp ID: \'"
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, "\'\nApp version: \'"
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, "\'\nRooted: \'"
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 300
invoke-static {}, Lxcrash/l;->a()Z
move-result p0
if-eqz p0, :cond_49
const-string p0, "Yes"
goto :goto_4b
:cond_49
const-string p0, "No"
:goto_4b
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, "\'\nAPI level: \'"
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget p0, Landroid/os/Build$VERSION;->SDK_INT:I
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string p0, "\'\nOS version: \'"
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object p0, Landroid/os/Build$VERSION;->RELEASE:Ljava/lang/String;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, "\'\nABI list: \'"
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 303
invoke-static {}, Lxcrash/l;->b()Ljava/lang/String;
move-result-object p0
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, "\'\nManufacturer: \'"
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object p0, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, "\'\nBrand: \'"
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object p0, Landroid/os/Build;->BRAND:Ljava/lang/String;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, "\'\nModel: \'"
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object p0, Landroid/os/Build;->MODEL:Ljava/lang/String;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, "\'\nBuild fingerprint: \'"
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object p0, Landroid/os/Build;->FINGERPRINT:Ljava/lang/String;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, "\'\n"
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method private static a(ILjava/lang/StringBuilder;Ljava/lang/String;IC)V
.registers 14
.line 424
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/4 v1, 0x0
const/16 v2, 0x18
if-lt v0, v2, :cond_9
const/4 v0, 0x1
goto :goto_a
:cond_9
const/4 v0, 0x0
.line 425
:goto_a
invoke-static {p0}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object p0
.line 426
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, " "
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
.line 429
new-instance v4, Ljava/util/ArrayList;
invoke-direct {v4}, Ljava/util/ArrayList;-><init>()V
const-string v5, "/system/bin/logcat"
.line 430
invoke-interface {v4, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
const-string v5, "-b"
.line 431
invoke-interface {v4, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 432
invoke-interface {v4, p2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
const-string v5, "-d"
.line 433
invoke-interface {v4, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
const-string v5, "-v"
.line 434
invoke-interface {v4, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
const-string v5, "threadtime"
.line 435
invoke-interface {v4, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
const-string v5, "-t"
.line 436
invoke-interface {v4, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
if-eqz v0, :cond_48
goto :goto_54
:cond_48
int-to-double v5, p3
const-wide v7, 0x3ff3333333333333L # 1.2
.line 437
invoke-static {v5, v6}, Ljava/lang/Double;->isNaN(D)Z
mul-double v5, v5, v7
double-to-int p3, v5
:goto_54
invoke-static {p3}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object p3
invoke-interface {v4, p3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
if-eqz v0, :cond_65
const-string p3, "--pid"
.line 439
invoke-interface {v4, p3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 440
invoke-interface {v4, p0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 442
:cond_65
invoke-static {p4}, Ljava/lang/String;->valueOf(C)Ljava/lang/String;
move-result-object p0
const-string p3, "*:"
invoke-virtual {p3, p0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
invoke-interface {v4, p0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 445
invoke-interface {v4}, Ljava/util/List;->toArray()[Ljava/lang/Object;
move-result-object p0
const-string p3, "--------- tail end of log "
.line 446
invoke-virtual {p1, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p2, " ("
.line 447
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {v3, p0}, Landroid/text/TextUtils;->join(Ljava/lang/CharSequence;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object p0
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, ")\n"
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/4 p0, 0x0
.line 453
:try_start_90
new-instance p2, Ljava/lang/ProcessBuilder;
new-array p3, v1, [Ljava/lang/String;
invoke-direct {p2, p3}, Ljava/lang/ProcessBuilder;-><init>([Ljava/lang/String;)V
invoke-virtual {p2, v4}, Ljava/lang/ProcessBuilder;->command(Ljava/util/List;)Ljava/lang/ProcessBuilder;
move-result-object p2
invoke-virtual {p2}, Ljava/lang/ProcessBuilder;->start()Ljava/lang/Process;
move-result-object p2
.line 454
new-instance p3, Ljava/io/BufferedReader;
new-instance p4, Ljava/io/InputStreamReader;
invoke-virtual {p2}, Ljava/lang/Process;->getInputStream()Ljava/io/InputStream;
move-result-object p2
invoke-direct {p4, p2}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V
invoke-direct {p3, p4}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
:try_end_ad
.catch Ljava/lang/Exception; {:try_start_90 .. :try_end_ad} :catch_ce
.catchall {:try_start_90 .. :try_end_ad} :catchall_ca
.line 455
:cond_ad
:goto_ad
:try_start_ad
invoke-virtual {p3}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
move-result-object p0
if-eqz p0, :cond_c4
if-nez v0, :cond_bb
.line 456
invoke-virtual {p0, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result p2
if-eqz p2, :cond_ad
.line 457
:cond_bb
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, "\n"
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:try_end_c3
.catch Ljava/lang/Exception; {:try_start_ad .. :try_end_c3} :catch_c8
.catchall {:try_start_ad .. :try_end_c3} :catchall_e2
goto :goto_ad
.line 465
:cond_c4
:try_start_c4
invoke-virtual {p3}, Ljava/io/BufferedReader;->close()V
:try_end_c7
.catch Ljava/io/IOException; {:try_start_c4 .. :try_end_c7} :catch_c7
:catch_c7
return-void
:catch_c8
move-exception p0
goto :goto_d1
:catchall_ca
move-exception p1
move-object p3, p0
move-object p0, p1
goto :goto_e3
:catch_ce
move-exception p1
move-object p3, p0
move-object p0, p1
.line 461
:goto_d1
:try_start_d1
invoke-static {}, Lxcrash/m;->d()Lxcrash/h;
move-result-object p1
const-string p2, "xcrash"
const-string p4, "Util run logcat command failed"
invoke-interface {p1, p2, p4, p0}, Lxcrash/h;->b(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:try_end_dc
.catchall {:try_start_d1 .. :try_end_dc} :catchall_e2
if-eqz p3, :cond_e1
.line 465
:try_start_de
invoke-virtual {p3}, Ljava/io/BufferedReader;->close()V
:try_end_e1
.catch Ljava/io/IOException; {:try_start_de .. :try_end_e1} :catch_e1
:catch_e1
:cond_e1
return-void
:catchall_e2
move-exception p0
:goto_e3
if-eqz p3, :cond_e8
:try_start_e5
invoke-virtual {p3}, Ljava/io/BufferedReader;->close()V
:try_end_e8
.catch Ljava/io/IOException; {:try_start_e5 .. :try_end_e8} :catch_e8
.line 467
:catch_e8
:cond_e8
goto :goto_ea
:goto_e9
throw p0
:goto_ea
goto :goto_e9
.end method
.method static a()Z
.registers 6
const/4 v0, 0x0
.line 129
:try_start_1
sget-object v1, Lxcrash/l;->a:[Ljava/lang/String;
array-length v2, v1
const/4 v3, 0x0
:goto_5
if-ge v3, v2, :cond_19
aget-object v4, v1, v3
.line 130
new-instance v5, Ljava/io/File;
invoke-direct {v5, v4}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 131
invoke-virtual {v5}, Ljava/io/File;->exists()Z
move-result v4
:try_end_12
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_12} :catch_19
if-eqz v4, :cond_16
const/4 v0, 0x1
return v0
:cond_16
add-int/lit8 v3, v3, 0x1
goto :goto_5
:catch_19
:cond_19
return v0
.end method
.method static a(Landroid/content/Context;Ljava/lang/String;J)Z
.registers 13
const-string v0, "activity"
.line 260
invoke-virtual {p0, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Landroid/app/ActivityManager;
const/4 v0, 0x0
if-nez p0, :cond_c
return v0
.line 263
:cond_c
invoke-static {}, Landroid/os/Process;->myPid()I
move-result v1
const-wide/16 v2, 0x1f4
.line 264
div-long/2addr p2, v2
const/4 v4, 0x0
:goto_14
int-to-long v5, v4
cmp-long v7, v5, p2
if-gez v7, :cond_65
.line 266
invoke-virtual {p0}, Landroid/app/ActivityManager;->getProcessesInErrorState()Ljava/util/List;
move-result-object v5
if-eqz v5, :cond_5f
.line 268
invoke-interface {v5}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v5
:cond_23
invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z
move-result v6
if-eqz v6, :cond_5f
invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v6
check-cast v6, Landroid/app/ActivityManager$ProcessErrorStateInfo;
.line 269
iget v7, v6, Landroid/app/ActivityManager$ProcessErrorStateInfo;->pid:I
if-ne v7, v1, :cond_23
iget v7, v6, Landroid/app/ActivityManager$ProcessErrorStateInfo;->condition:I
const/4 v8, 0x2
if-ne v7, v8, :cond_23
.line 271
iget-object p0, v6, Landroid/app/ActivityManager$ProcessErrorStateInfo;->processName:Ljava/lang/String;
const-string p2, "pinfo_process"
invoke-static {p1, p2, p0}, Lxcrash/j;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
.line 272
iget-object p0, v6, Landroid/app/ActivityManager$ProcessErrorStateInfo;->shortMsg:Ljava/lang/String;
const-string p2, "pinfo_short_msg"
invoke-static {p1, p2, p0}, Lxcrash/j;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
.line 273
iget-object p0, v6, Landroid/app/ActivityManager$ProcessErrorStateInfo;->longMsg:Ljava/lang/String;
const-string p2, "pinfo_long_msg"
invoke-static {p1, p2, p0}, Lxcrash/j;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
.line 274
iget-object p0, v6, Landroid/app/ActivityManager$ProcessErrorStateInfo;->tag:Ljava/lang/String;
const-string p2, "pinfo_tag"
invoke-static {p1, p2, p0}, Lxcrash/j;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
.line 275
invoke-static {v4}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object p0
const-string p2, "pinfo_try_count"
invoke-static {p1, p2, p0}, Lxcrash/j;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
const/4 p0, 0x1
return p0
.line 282
:cond_5f
:try_start_5f
invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
:try_end_62
.catch Ljava/lang/Exception; {:try_start_5f .. :try_end_62} :catch_62
:catch_62
add-int/lit8 v4, v4, 0x1
goto :goto_14
:cond_65
return v0
.end method
.method static a(Ljava/lang/String;)Z
.registers 3
.line 245
new-instance v0, Ljava/io/File;
invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
const/4 p0, 0x0
.line 247
:try_start_6
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v1
if-nez v1, :cond_1d
.line 248
invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z
.line 249
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v1
if-eqz v1, :cond_1c
invoke-virtual {v0}, Ljava/io/File;->isDirectory()Z
move-result v0
if-eqz v0, :cond_1c
const/4 p0, 0x1
:cond_1c
return p0
.line 251
:cond_1d
invoke-virtual {v0}, Ljava/io/File;->isDirectory()Z
move-result p0
:try_end_21
.catch Ljava/lang/Exception; {:try_start_6 .. :try_end_21} :catch_21
:catch_21
return p0
.end method
.method static b()Ljava/lang/String;
.registers 4
.line 142
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const-string v1, ","
const/16 v2, 0x15
if-lt v0, v2, :cond_f
.line 143
sget-object v0, Landroid/os/Build;->SUPPORTED_ABIS:[Ljava/lang/String;
invoke-static {v1, v0}, Landroid/text/TextUtils;->join(Ljava/lang/CharSequence;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
return-object v0
.line 145
:cond_f
sget-object v0, Landroid/os/Build;->CPU_ABI:Ljava/lang/String;
.line 146
sget-object v2, Landroid/os/Build;->CPU_ABI2:Ljava/lang/String;
.line 147
invoke-static {v2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v3
if-eqz v3, :cond_1a
return-object v0
.line 150
:cond_1a
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method static c()Ljava/lang/String;
.registers 15
const-string v0, "~ "
.line 171
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, " Process Summary (From: android.os.Debug.MemoryInfo)\n"
.line 172
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 173
sget-object v2, Ljava/util/Locale;->US:Ljava/util/Locale;
const/4 v3, 0x2
new-array v4, v3, [Ljava/lang/Object;
const-string v5, ""
const/4 v6, 0x0
aput-object v5, v4, v6
const-string v7, "Pss(KB)"
const/4 v8, 0x1
aput-object v7, v4, v8
const-string v7, "%21s %8s\n"
invoke-static {v2, v7, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 174
sget-object v2, Ljava/util/Locale;->US:Ljava/util/Locale;
new-array v4, v3, [Ljava/lang/Object;
aput-object v5, v4, v6
const-string v5, "------"
aput-object v5, v4, v8
invoke-static {v2, v7, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 177
:try_start_35
new-instance v2, Landroid/os/Debug$MemoryInfo;
invoke-direct {v2}, Landroid/os/Debug$MemoryInfo;-><init>()V
.line 178
invoke-static {v2}, Landroid/os/Debug;->getMemoryInfo(Landroid/os/Debug$MemoryInfo;)V
.line 180
sget v4, Landroid/os/Build$VERSION;->SDK_INT:I
:try_end_3f
.catch Ljava/lang/Exception; {:try_start_35 .. :try_end_3f} :catch_1c0
const/16 v5, 0x17
const-string v9, "TOTAL:"
const-string v10, "Private Other:"
const-string v11, "Native Heap:"
const-string v12, "Java Heap:"
const-string v13, "System:"
if-lt v4, v5, :cond_10d
.line 181
:try_start_4d
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
new-array v4, v3, [Ljava/lang/Object;
aput-object v12, v4, v6
const-string v5, "summary.java-heap"
invoke-virtual {v2, v5}, Landroid/os/Debug$MemoryInfo;->getMemoryStat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v5
aput-object v5, v4, v8
invoke-static {v0, v7, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 182
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
new-array v4, v3, [Ljava/lang/Object;
aput-object v11, v4, v6
const-string v5, "summary.native-heap"
invoke-virtual {v2, v5}, Landroid/os/Debug$MemoryInfo;->getMemoryStat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v5
aput-object v5, v4, v8
invoke-static {v0, v7, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 183
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
new-array v4, v3, [Ljava/lang/Object;
const-string v5, "Code:"
aput-object v5, v4, v6
const-string v5, "summary.code"
invoke-virtual {v2, v5}, Landroid/os/Debug$MemoryInfo;->getMemoryStat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v5
aput-object v5, v4, v8
invoke-static {v0, v7, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 184
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
new-array v4, v3, [Ljava/lang/Object;
const-string v5, "Stack:"
aput-object v5, v4, v6
const-string v5, "summary.stack"
invoke-virtual {v2, v5}, Landroid/os/Debug$MemoryInfo;->getMemoryStat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v5
aput-object v5, v4, v8
invoke-static {v0, v7, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 185
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
new-array v4, v3, [Ljava/lang/Object;
const-string v5, "Graphics:"
aput-object v5, v4, v6
const-string v5, "summary.graphics"
invoke-virtual {v2, v5}, Landroid/os/Debug$MemoryInfo;->getMemoryStat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v5
aput-object v5, v4, v8
invoke-static {v0, v7, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 186
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
new-array v4, v3, [Ljava/lang/Object;
aput-object v10, v4, v6
const-string v5, "summary.private-other"
invoke-virtual {v2, v5}, Landroid/os/Debug$MemoryInfo;->getMemoryStat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v5
aput-object v5, v4, v8
invoke-static {v0, v7, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 187
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
new-array v4, v3, [Ljava/lang/Object;
aput-object v13, v4, v6
const-string v5, "summary.system"
invoke-virtual {v2, v5}, Landroid/os/Debug$MemoryInfo;->getMemoryStat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v5
aput-object v5, v4, v8
invoke-static {v0, v7, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 188
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
const-string v4, "%21s %8s %21s %8s\n"
const/4 v5, 0x4
new-array v5, v5, [Ljava/lang/Object;
aput-object v9, v5, v6
const-string v6, "summary.total-pss"
invoke-virtual {v2, v6}, Landroid/os/Debug$MemoryInfo;->getMemoryStat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v6
aput-object v6, v5, v8
const-string v6, "TOTAL SWAP:"
aput-object v6, v5, v3
const/4 v3, 0x3
const-string v6, "summary.total-swap"
invoke-virtual {v2, v6}, Landroid/os/Debug$MemoryInfo;->getMemoryStat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
aput-object v2, v5, v3
invoke-static {v0, v4, v5}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto/16 :goto_1cc
.line 190
:cond_10d
sget-object v4, Ljava/util/Locale;->US:Ljava/util/Locale;
new-array v5, v3, [Ljava/lang/Object;
aput-object v12, v5, v6
new-instance v12, Ljava/lang/StringBuilder;
invoke-direct {v12, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget v14, v2, Landroid/os/Debug$MemoryInfo;->dalvikPrivateDirty:I
invoke-virtual {v12, v14}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v12
aput-object v12, v5, v8
invoke-static {v4, v7, v5}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v4
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 191
sget-object v4, Ljava/util/Locale;->US:Ljava/util/Locale;
new-array v5, v3, [Ljava/lang/Object;
aput-object v11, v5, v6
iget v11, v2, Landroid/os/Debug$MemoryInfo;->nativePrivateDirty:I
invoke-static {v11}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v11
aput-object v11, v5, v8
invoke-static {v4, v7, v5}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v4
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 192
sget-object v4, Ljava/util/Locale;->US:Ljava/util/Locale;
new-array v5, v3, [Ljava/lang/Object;
aput-object v10, v5, v6
new-instance v10, Ljava/lang/StringBuilder;
invoke-direct {v10, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget v11, v2, Landroid/os/Debug$MemoryInfo;->otherPrivateDirty:I
invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v10
aput-object v10, v5, v8
invoke-static {v4, v7, v5}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v4
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 193
sget v4, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v5, 0x13
if-lt v4, v5, :cond_184
.line 194
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
new-array v4, v3, [Ljava/lang/Object;
aput-object v13, v4, v6
invoke-virtual {v2}, Landroid/os/Debug$MemoryInfo;->getTotalPss()I
move-result v5
invoke-virtual {v2}, Landroid/os/Debug$MemoryInfo;->getTotalPrivateDirty()I
move-result v10
sub-int/2addr v5, v10
invoke-virtual {v2}, Landroid/os/Debug$MemoryInfo;->getTotalPrivateClean()I
move-result v10
sub-int/2addr v5, v10
invoke-static {v5}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v5
aput-object v5, v4, v8
invoke-static {v0, v7, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_1a8
.line 196
:cond_184
sget-object v4, Ljava/util/Locale;->US:Ljava/util/Locale;
new-array v5, v3, [Ljava/lang/Object;
aput-object v13, v5, v6
new-instance v10, Ljava/lang/StringBuilder;
invoke-direct {v10, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2}, Landroid/os/Debug$MemoryInfo;->getTotalPss()I
move-result v0
invoke-virtual {v2}, Landroid/os/Debug$MemoryInfo;->getTotalPrivateDirty()I
move-result v11
sub-int/2addr v0, v11
invoke-virtual {v10, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
aput-object v0, v5, v8
invoke-static {v4, v7, v5}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 198
:goto_1a8
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
new-array v3, v3, [Ljava/lang/Object;
aput-object v9, v3, v6
invoke-virtual {v2}, Landroid/os/Debug$MemoryInfo;->getTotalPss()I
move-result v2
invoke-static {v2}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v2
aput-object v2, v3, v8
invoke-static {v0, v7, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:try_end_1bf
.catch Ljava/lang/Exception; {:try_start_4d .. :try_end_1bf} :catch_1c0
goto :goto_1cc
:catch_1c0
move-exception v0
.line 201
invoke-static {}, Lxcrash/m;->d()Lxcrash/h;
move-result-object v2
const-string v3, "xcrash"
const-string v4, "Util getProcessMemoryInfo failed"
invoke-interface {v2, v3, v4, v0}, Lxcrash/h;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
.line 204
:goto_1cc
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method static d()Ljava/lang/String;
.registers 3
.line 311
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "memory info:\n System Summary (From: /proc/meminfo)\n"
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
const/4 v1, 0x0
const-string v2, "/proc/meminfo"
.line 1208
invoke-static {v2, v1}, Lxcrash/l;->a(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v2
.line 313
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "-\n Process Status (From: /proc/PID/status)\n"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "/proc/self/status"
.line 2208
invoke-static {v2, v1}, Lxcrash/l;->a(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v2
.line 316
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "-\n Process Limits (From: /proc/PID/limits)\n"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "/proc/self/limits"
.line 3208
invoke-static {v2, v1}, Lxcrash/l;->a(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v1
.line 319
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, "-\n"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 321
invoke-static {}, Lxcrash/l;->c()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, "\n"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method static e()Ljava/lang/String;
.registers 3
.line 326
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x1d
if-lt v0, v1, :cond_9
const-string v0, "network info:\nNot supported on Android Q (API level 29) and later.\n\n"
return-object v0
.line 331
:cond_9
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "network info:\n TCP over IPv4 (From: /proc/PID/net/tcp)\n"
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
const/16 v1, 0x400
const-string v2, "/proc/self/net/tcp"
.line 333
invoke-static {v2, v1}, Lxcrash/l;->a(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "-\n TCP over IPv6 (From: /proc/PID/net/tcp6)\n"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "/proc/self/net/tcp6"
.line 336
invoke-static {v2, v1}, Lxcrash/l;->a(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "-\n UDP over IPv4 (From: /proc/PID/net/udp)\n"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "/proc/self/net/udp"
.line 339
invoke-static {v2, v1}, Lxcrash/l;->a(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "-\n UDP over IPv6 (From: /proc/PID/net/udp6)\n"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "/proc/self/net/udp6"
.line 342
invoke-static {v2, v1}, Lxcrash/l;->a(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, "-\n ICMP in IPv4 (From: /proc/PID/net/icmp)\n"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v1, 0x100
const-string v2, "/proc/self/net/icmp"
.line 345
invoke-static {v2, v1}, Lxcrash/l;->a(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "-\n ICMP in IPv6 (From: /proc/PID/net/icmp6)\n"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "/proc/self/net/icmp6"
.line 348
invoke-static {v2, v1}, Lxcrash/l;->a(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "-\n UNIX domain (From: /proc/PID/net/unix)\n"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "/proc/self/net/unix"
.line 351
invoke-static {v2, v1}, Lxcrash/l;->a(Ljava/lang/String;I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, "\n"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method static f()Ljava/lang/String;
.registers 11
.line 357
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "open files:\n"
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
const/16 v1, 0xa
.line 360
:try_start_9
new-instance v2, Ljava/io/File;
const-string v3, "/proc/self/fd"
invoke-direct {v2, v3}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 361
new-instance v3, Lxcrash/l$1;
invoke-direct {v3}, Lxcrash/l$1;-><init>()V
invoke-virtual {v2, v3}, Ljava/io/File;->listFiles(Ljava/io/FilenameFilter;)[Ljava/io/File;
move-result-object v2
if-eqz v2, :cond_79
.line 370
array-length v3, v2
const/4 v4, 0x0
const/4 v5, 0x0
:goto_1e
const/16 v6, 0x400
if-ge v4, v3, :cond_63
aget-object v7, v2, v4
:try_end_24
.catch Ljava/lang/Exception; {:try_start_9 .. :try_end_24} :catch_79
const/4 v8, 0x0
.line 373
:try_start_25
sget v9, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v10, 0x15
if-lt v9, v10, :cond_34
.line 374
invoke-virtual {v7}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v9
invoke-static {v9}, Landroid/system/Os;->readlink(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
goto :goto_38
.line 376
:cond_34
invoke-virtual {v7}, Ljava/io/File;->getCanonicalPath()Ljava/lang/String;
move-result-object v8
:try_end_38
.catch Ljava/lang/Exception; {:try_start_25 .. :try_end_38} :catch_38
:catch_38
:goto_38
:try_start_38
const-string v9, " fd "
.line 380
invoke-virtual {v0, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v7}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v7
invoke-virtual {v0, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v7, ": "
invoke-virtual {v0, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 381
invoke-static {v8}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v7
if-eqz v7, :cond_52
const-string v7, "???"
goto :goto_56
:cond_52
invoke-virtual {v8}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v7
:goto_56
invoke-virtual {v0, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
add-int/lit8 v5, v5, 0x1
if-gt v5, v6, :cond_63
add-int/lit8 v4, v4, 0x1
goto :goto_1e
.line 389
:cond_63
array-length v3, v2
if-le v3, v6, :cond_6b
const-string v3, " ......\n"
.line 390
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_6b
const-string v3, " (number of FDs: "
.line 393
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
array-length v2, v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, ")\n"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:try_end_79
.catch Ljava/lang/Exception; {:try_start_38 .. :try_end_79} :catch_79
.line 398
:catch_79
:cond_79
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 399
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method