ceo.smali
.class public Ldxoptimizer/ceo;
.super Ljava/lang/Object;
.source "RTScanUtils.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Ldxoptimizer/ceo$a;
}
.end annotation
# static fields
.field private static final a:Ljava/util/regex/Pattern;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 32
const-string v0, ".*/data/?data/(\\w+\\.?[\\w\\.]+)/.*"
invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
move-result-object v0
sput-object v0, Ldxoptimizer/ceo;->a:Ljava/util/regex/Pattern;
return-void
.end method
.method private static a(Landroid/util/SparseArray;)J
.registers 21
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/util/SparseArray",
"<",
"Ldxoptimizer/ceo$a;",
">;)J"
}
.end annotation
.prologue
.line 120
const-wide/16 v8, -0x1
.line 130
new-instance v2, Ljava/io/File;
const-string v3, "/proc"
invoke-direct {v2, v3}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 131
invoke-virtual {v2}, Ljava/io/File;->listFiles()[Ljava/io/File;
move-result-object v14
array-length v15, v14
const/4 v2, 0x0
move v13, v2
:goto_10
if-ge v13, v15, :cond_10b
aget-object v2, v14, v13
.line 132
invoke-virtual {v2}, Ljava/io/File;->isDirectory()Z
move-result v3
if-eqz v3, :cond_11b
.line 134
:try_start_1a
invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v3
.line 137
const/4 v12, 0x0
.line 138
const/4 v2, 0x0
.line 140
const/4 v5, -0x1
.line 144
const-string v4, "/proc/%d/stat"
const/4 v6, 0x1
new-array v6, v6, [Ljava/lang/Object;
const/4 v7, 0x0
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v10
aput-object v10, v6, v7
invoke-static {v4, v6}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v4
invoke-static {v4}, Ldxoptimizer/cdp;->a(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
.line 145
if-nez v4, :cond_41
move-wide v2, v8
.line 131
:goto_3c
add-int/lit8 v4, v13, 0x1
move v13, v4
move-wide v8, v2
goto :goto_10
.line 146
:cond_41
const-string v6, " "
invoke-virtual {v4, v6}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v6
.line 148
const/4 v4, 0x0
aget-object v4, v6, v4
invoke-static {v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v4
if-eq v3, v4, :cond_52
move-wide v2, v8
goto :goto_3c
.line 150
:cond_52
const/4 v4, 0x1
aget-object v4, v6, v4
invoke-virtual {v4}, Ljava/lang/String;->length()I
move-result v4
.line 151
const/4 v7, 0x3
if-le v4, v7, :cond_66
.line 152
const/4 v7, 0x1
aget-object v7, v6, v7
const/4 v10, 0x1
add-int/lit8 v4, v4, -0x1
invoke-virtual {v7, v10, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v12
.line 155
:cond_66
const/4 v4, 0x3
aget-object v4, v6, v4
invoke-static {v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v4
.line 157
const/16 v7, 0x15
aget-object v6, v6, v7
invoke-static {v6}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v6
.line 160
const-string v10, "/proc/%d/status"
const/4 v11, 0x1
new-array v11, v11, [Ljava/lang/Object;
const/16 v16, 0x0
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v17
aput-object v17, v11, v16
invoke-static {v10, v11}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v10
invoke-static {v10}, Ldxoptimizer/cdp;->a(Ljava/lang/String;)Ljava/lang/String;
move-result-object v10
.line 161
if-nez v10, :cond_8e
move-wide v2, v8
goto :goto_3c
.line 162
:cond_8e
const-string v11, "\n"
invoke-virtual {v10, v11}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v11
array-length v0, v11
move/from16 v16, v0
const/4 v10, 0x0
:goto_98
move/from16 v0, v16
if-ge v10, v0, :cond_bb
aget-object v17, v11, v10
.line 163
invoke-virtual/range {v17 .. v17}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v17
const-string v18, "\\s+"
invoke-virtual/range {v17 .. v18}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v17
.line 164
const-string v18, "Uid:"
const/16 v19, 0x0
aget-object v19, v17, v19
invoke-virtual/range {v18 .. v19}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v18
if-eqz v18, :cond_e5
.line 165
const/4 v5, 0x1
aget-object v5, v17, v5
invoke-static {v5}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
:try_end_ba
.catch Ljava/lang/Exception; {:try_start_1a .. :try_end_ba} :catch_10c
move-result v5
.line 171
:cond_bb
const-wide/16 v10, 0x0
cmp-long v10, v8, v10
if-gez v10, :cond_119
const/16 v10, 0x3e8
if-ne v5, v10, :cond_119
move-wide v10, v6
.line 176
:goto_c6
if-nez v5, :cond_116
.line 177
:try_start_c8
const-string v2, "/proc/%d/cmdline"
const/4 v8, 0x1
new-array v8, v8, [Ljava/lang/Object;
const/4 v9, 0x0
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v16
aput-object v16, v8, v9
invoke-static {v2, v8}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Ldxoptimizer/cdp;->a(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v9
.line 178
if-nez v9, :cond_e8
move-wide v2, v10
goto/16 :goto_3c
.line 162
:cond_e5
add-int/lit8 v10, v10, 0x1
goto :goto_98
.line 179
:cond_e8
if-eqz v9, :cond_114
.line 180
const-string v2, "/system/"
invoke-virtual {v9, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_f5
move-wide v2, v10
.line 181
goto/16 :goto_3c
.line 183
:cond_f5
const-string v2, "[^A-Za-z0-9_\\./]"
invoke-virtual {v9, v2}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v2
.line 184
const/4 v8, 0x0
aget-object v8, v2, v8
.line 188
:goto_fe
new-instance v2, Ldxoptimizer/ceo$a;
invoke-direct/range {v2 .. v9}, Ldxoptimizer/ceo$a;-><init>(IIIJLjava/lang/String;Ljava/lang/String;)V
move-object/from16 v0, p0
invoke-virtual {v0, v3, v2}, Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
:try_end_108
.catch Ljava/lang/Exception; {:try_start_c8 .. :try_end_108} :catch_110
move-wide v2, v10
.line 190
goto/16 :goto_3c
.line 193
:cond_10b
return-wide v8
.line 189
:catch_10c
move-exception v2
move-wide v2, v8
goto/16 :goto_3c
:catch_110
move-exception v2
move-wide v2, v10
goto/16 :goto_3c
:cond_114
move-object v8, v12
goto :goto_fe
:cond_116
move-object v9, v2
move-object v8, v12
goto :goto_fe
:cond_119
move-wide v10, v8
goto :goto_c6
:cond_11b
move-wide v2, v8
goto/16 :goto_3c
.end method
.method public static a(Landroid/content/Context;Ljava/util/Map;Ljava/util/Map;)Ljava/util/Set;
.registers 16
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/Context;",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;)",
"Ljava/util/Set",
"<",
"Ljava/lang/String;",
">;"
}
.end annotation
.prologue
const-wide/16 v2, 0x1f4
const/4 v4, 0x0
const/4 v12, 0x1
.line 52
new-instance v5, Ljava/util/HashSet;
invoke-direct {v5}, Ljava/util/HashSet;-><init>()V
.line 54
new-instance v6, Landroid/util/SparseArray;
invoke-direct {v6}, Landroid/util/SparseArray;-><init>()V
.line 55
invoke-static {v6}, Ldxoptimizer/ceo;->a(Landroid/util/SparseArray;)J
move-result-wide v0
add-long v8, v2, v0
.line 56
cmp-long v0, v8, v2
if-gez v0, :cond_1a
move-object v0, v5
.line 116
:goto_19
return-object v0
:cond_1a
move v3, v4
.line 60
:goto_1b
invoke-virtual {v6}, Landroid/util/SparseArray;->size()I
move-result v0
if-ge v3, v0, :cond_b5
.line 61
invoke-virtual {v6, v3}, Landroid/util/SparseArray;->valueAt(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ldxoptimizer/ceo$a;
.line 62
iget v1, v0, Ldxoptimizer/ceo$a;->c:I
if-nez v1, :cond_45
iget-wide v10, v0, Ldxoptimizer/ceo$a;->d:J
cmp-long v1, v10, v8
if-lez v1, :cond_45
.line 63
iget v1, v0, Ldxoptimizer/ceo$a;->b:I
if-le v1, v12, :cond_65
.line 64
iget v0, v0, Ldxoptimizer/ceo$a;->b:I
invoke-virtual {v6, v0}, Landroid/util/SparseArray;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ldxoptimizer/ceo$a;
.line 66
if-eqz v0, :cond_45
iget v1, v0, Ldxoptimizer/ceo$a;->c:I
const/16 v2, 0x2710
if-ge v1, v2, :cond_49
.line 60
:cond_45
:goto_45
add-int/lit8 v0, v3, 0x1
move v3, v0
goto :goto_1b
.line 67
:cond_49
const/4 v1, 0x0
.line 68
invoke-static {p0}, Ldxoptimizer/cfb;->a(Landroid/content/Context;)Landroid/content/pm/PackageManager;
move-result-object v2
.line 69
if-eqz v2, :cond_57
.line 70
iget v0, v0, Ldxoptimizer/ceo$a;->c:I
invoke-virtual {v2, v0}, Landroid/content/pm/PackageManager;->getPackagesForUid(I)[Ljava/lang/String;
move-result-object v0
move-object v1, v0
.line 72
:cond_57
if-eqz v1, :cond_45
.line 73
array-length v2, v1
move v0, v4
:goto_5b
if-ge v0, v2, :cond_45
aget-object v7, v1, v0
.line 75
invoke-virtual {v5, v7}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
.line 73
add-int/lit8 v0, v0, 0x1
goto :goto_5b
.line 78
:cond_65
iget-object v1, v0, Ldxoptimizer/ceo$a;->f:Ljava/lang/String;
if-eqz v1, :cond_45
.line 79
sget-object v1, Ldxoptimizer/ceo;->a:Ljava/util/regex/Pattern;
iget-object v2, v0, Ldxoptimizer/ceo$a;->f:Ljava/lang/String;
invoke-virtual {v1, v2}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v1
.line 81
invoke-virtual {v1}, Ljava/util/regex/Matcher;->matches()Z
move-result v2
if-eqz v2, :cond_7f
.line 82
invoke-virtual {v1, v12}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v0
.line 84
invoke-virtual {v5, v0}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
goto :goto_45
.line 86
:cond_7f
iget-object v1, v0, Ldxoptimizer/ceo$a;->e:Ljava/lang/String;
invoke-interface {p1, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
.line 87
if-eqz v1, :cond_8d
.line 89
invoke-virtual {v5, v1}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
goto :goto_45
.line 91
:cond_8d
invoke-interface {p2}, Ljava/util/Map;->keySet()Ljava/util/Set;
move-result-object v2
invoke-interface {v2}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v7
:cond_95
invoke-interface {v7}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_e6
invoke-interface {v7}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
.line 92
iget-object v10, v0, Ldxoptimizer/ceo$a;->f:Ljava/lang/String;
invoke-virtual {v10, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v10
if-eqz v10, :cond_95
.line 93
invoke-interface {p2, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
.line 95
invoke-virtual {v5, v0}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
.line 99
:goto_b2
if-nez v0, :cond_45
goto :goto_45
.line 108
:cond_b5
invoke-virtual {v5}, Ljava/util/HashSet;->size()I
move-result v0
if-lez v0, :cond_e3
.line 109
new-instance v1, Ljava/util/HashSet;
invoke-direct {v1}, Ljava/util/HashSet;-><init>()V
.line 110
invoke-static {}, Ldxoptimizer/aep;->a()Ldxoptimizer/aep;
move-result-object v0
invoke-virtual {v0, v12, v12}, Ldxoptimizer/aep;->a(ZZ)Ljava/util/ArrayList;
move-result-object v0
.line 111
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v2
:goto_cc
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_e0
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ldxoptimizer/aeo;
.line 112
invoke-virtual {v0}, Ldxoptimizer/aeo;->d()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
goto :goto_cc
.line 114
:cond_e0
invoke-virtual {v5, v1}, Ljava/util/HashSet;->retainAll(Ljava/util/Collection;)Z
:cond_e3
move-object v0, v5
.line 116
goto/16 :goto_19
:cond_e6
move-object v0, v1
goto :goto_b2
.end method