Skip to content

Instantly share code, notes, and snippets.

@vermut
Created March 11, 2016 22:10
Show Gist options
  • Save vermut/ee2f6a04e6a360ef3577 to your computer and use it in GitHub Desktop.
Save vermut/ee2f6a04e6a360ef3577 to your computer and use it in GitHub Desktop.
PackageParser deodex Sailfish OS
.class public Landroid/content/pm/PackageParser;
.super Ljava/lang/Object;
.source "PackageParser.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroid/content/pm/PackageParser$ServiceIntentInfo;,
Landroid/content/pm/PackageParser$ActivityIntentInfo;,
Landroid/content/pm/PackageParser$IntentInfo;,
Landroid/content/pm/PackageParser$Instrumentation;,
Landroid/content/pm/PackageParser$Provider;,
Landroid/content/pm/PackageParser$Service;,
Landroid/content/pm/PackageParser$Activity;,
Landroid/content/pm/PackageParser$PermissionGroup;,
Landroid/content/pm/PackageParser$Permission;,
Landroid/content/pm/PackageParser$Component;,
Landroid/content/pm/PackageParser$Package;,
Landroid/content/pm/PackageParser$PackageLite;,
Landroid/content/pm/PackageParser$ParseComponentArgs;,
Landroid/content/pm/PackageParser$ParsePackageItemArgs;,
Landroid/content/pm/PackageParser$SplitPermissionInfo;,
Landroid/content/pm/PackageParser$NewPermissionInfo;
}
.end annotation
# static fields
.field private static final ALIEN:Z
.field private static final ANDROID_MANIFEST_FILENAME:Ljava/lang/String; = "AndroidManifest.xml"
.field private static final ANDROID_RESOURCES:Ljava/lang/String; = "http://schemas.android.com/apk/res/android"
.field private static final DEBUG_BACKUP:Z = false
.field private static final DEBUG_JAR:Z = false
.field private static final DEBUG_PARSER:Z = false
.field public static final NEW_PERMISSIONS:[Landroid/content/pm/PackageParser$NewPermissionInfo;
.field public static final PARSE_CHATTY:I = 0x2
.field private static final PARSE_DEFAULT_INSTALL_LOCATION:I = -0x1
.field public static final PARSE_FORWARD_LOCK:I = 0x10
.field public static final PARSE_IGNORE_PROCESSES:I = 0x8
.field public static final PARSE_IS_SYSTEM:I = 0x1
.field public static final PARSE_IS_SYSTEM_DIR:I = 0x40
.field public static final PARSE_MUST_BE_APK:I = 0x4
.field public static final PARSE_ON_SDCARD:I = 0x20
.field private static final RIGID_PARSER:Z = false
.field private static final SDK_CODENAME:Ljava/lang/String;
.field private static final SDK_VERSION:I
.field public static final SPLIT_PERMISSIONS:[Landroid/content/pm/PackageParser$SplitPermissionInfo;
.field private static final TAG:Ljava/lang/String; = "PackageParser"
.field private static mReadBuffer:Ljava/lang/ref/WeakReference;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/ref/WeakReference",
"<[B>;"
}
.end annotation
.end field
.field private static final mSync:Ljava/lang/Object;
.field private static sCompatibilityModeEnabled:Z
# instance fields
.field private mArchiveSourcePath:Ljava/lang/String;
.field private mOnlyCoreApps:Z
.field private mParseActivityAliasArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
.field private mParseActivityArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
.field private mParseError:I
.field private mParseInstrumentationArgs:Landroid/content/pm/PackageParser$ParsePackageItemArgs;
.field private mParseProviderArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
.field private mParseServiceArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
.field private mSeparateProcesses:[Ljava/lang/String;
# direct methods
.method static constructor <clinit>()V
.registers 9
.prologue
const/16 v8, 0x10
const/4 v3, 0x4
const/4 v7, 0x2
const/4 v6, 0x1
const/4 v5, 0x0
.line 121
new-array v0, v7, [Landroid/content/pm/PackageParser$NewPermissionInfo;
new-instance v1, Landroid/content/pm/PackageParser$NewPermissionInfo;
const-string v2, "android.permission.WRITE_EXTERNAL_STORAGE"
invoke-direct {v1, v2, v3, v5}, Landroid/content/pm/PackageParser$NewPermissionInfo;-><init>(Ljava/lang/String;II)V
aput-object v1, v0, v5
new-instance v1, Landroid/content/pm/PackageParser$NewPermissionInfo;
const-string v2, "android.permission.READ_PHONE_STATE"
invoke-direct {v1, v2, v3, v5}, Landroid/content/pm/PackageParser$NewPermissionInfo;-><init>(Ljava/lang/String;II)V
aput-object v1, v0, v6
sput-object v0, Landroid/content/pm/PackageParser;->NEW_PERMISSIONS:[Landroid/content/pm/PackageParser$NewPermissionInfo;
.line 134
const/4 v0, 0x3
new-array v0, v0, [Landroid/content/pm/PackageParser$SplitPermissionInfo;
new-instance v1, Landroid/content/pm/PackageParser$SplitPermissionInfo;
const-string v2, "android.permission.WRITE_EXTERNAL_STORAGE"
new-array v3, v6, [Ljava/lang/String;
const-string v4, "android.permission.READ_EXTERNAL_STORAGE"
aput-object v4, v3, v5
const/16 v4, 0x2711
invoke-direct {v1, v2, v3, v4}, Landroid/content/pm/PackageParser$SplitPermissionInfo;-><init>(Ljava/lang/String;[Ljava/lang/String;I)V
aput-object v1, v0, v5
new-instance v1, Landroid/content/pm/PackageParser$SplitPermissionInfo;
const-string v2, "android.permission.READ_CONTACTS"
new-array v3, v6, [Ljava/lang/String;
const-string v4, "android.permission.READ_CALL_LOG"
aput-object v4, v3, v5
invoke-direct {v1, v2, v3, v8}, Landroid/content/pm/PackageParser$SplitPermissionInfo;-><init>(Ljava/lang/String;[Ljava/lang/String;I)V
aput-object v1, v0, v6
new-instance v1, Landroid/content/pm/PackageParser$SplitPermissionInfo;
const-string v2, "android.permission.WRITE_CONTACTS"
new-array v3, v6, [Ljava/lang/String;
const-string v4, "android.permission.WRITE_CALL_LOG"
aput-object v4, v3, v5
invoke-direct {v1, v2, v3, v8}, Landroid/content/pm/PackageParser$SplitPermissionInfo;-><init>(Ljava/lang/String;[Ljava/lang/String;I)V
aput-object v1, v0, v7
sput-object v0, Landroid/content/pm/PackageParser;->SPLIT_PERMISSIONS:[Landroid/content/pm/PackageParser$SplitPermissionInfo;
.line 154
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
sput v0, Landroid/content/pm/PackageParser;->SDK_VERSION:I
.line 155
const-string v0, "REL"
sget-object v1, Landroid/os/Build$VERSION;->CODENAME:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_74
const/4 v0, 0x0
:goto_5f
sput-object v0, Landroid/content/pm/PackageParser;->SDK_CODENAME:Ljava/lang/String;
.line 160
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
sput-object v0, Landroid/content/pm/PackageParser;->mSync:Ljava/lang/Object;
.line 163
sput-boolean v6, Landroid/content/pm/PackageParser;->sCompatibilityModeEnabled:Z
.line 237
const-string/jumbo v0, "ro.alien"
invoke-static {v0, v5}, Landroid/os/SystemProperties;->getBoolean(Ljava/lang/String;Z)Z
move-result v0
sput-boolean v0, Landroid/content/pm/PackageParser;->ALIEN:Z
return-void
.line 155
:cond_74
sget-object v0, Landroid/os/Build$VERSION;->CODENAME:Ljava/lang/String;
goto :goto_5f
.end method
.method public constructor <init>(Ljava/lang/String;)V
.registers 3
.param p1, "archiveSourcePath" # Ljava/lang/String;
.prologue
.line 239
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 158
const/4 v0, 0x1
iput v0, p0, Landroid/content/pm/PackageParser;->mParseError:I
.line 240
iput-object p1, p0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
.line 241
return-void
.end method
.method static synthetic access$000(Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/String;)Ljava/lang/String;
.registers 4
.param p0, "x0" # Ljava/lang/String;
.param p1, "x1" # Ljava/lang/CharSequence;
.param p2, "x2" # [Ljava/lang/String;
.prologue
.line 78
invoke-static {p0, p1, p2}, Landroid/content/pm/PackageParser;->buildClassName(Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method static synthetic access$100(Ljava/lang/String;Ljava/lang/String;Ljava/lang/CharSequence;I[Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
.registers 7
.param p0, "x0" # Ljava/lang/String;
.param p1, "x1" # Ljava/lang/String;
.param p2, "x2" # Ljava/lang/CharSequence;
.param p3, "x3" # I
.param p4, "x4" # [Ljava/lang/String;
.param p5, "x5" # [Ljava/lang/String;
.prologue
.line 78
invoke-static/range {p0 .. p5}, Landroid/content/pm/PackageParser;->buildProcessName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/CharSequence;I[Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method private static buildClassName(Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/String;)Ljava/lang/String;
.registers 10
.param p0, "pkg" # Ljava/lang/String;
.param p1, "clsSeq" # Ljava/lang/CharSequence;
.param p2, "outError" # [Ljava/lang/String;
.prologue
const/4 v3, 0x0
const/16 v5, 0x2e
const/4 v6, 0x0
.line 1377
if-eqz p1, :cond_c
invoke-interface {p1}, Ljava/lang/CharSequence;->length()I
move-result v4
if-gtz v4, :cond_22
.line 1378
:cond_c
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "Empty class name in package "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
aput-object v4, p2, v6
.line 1396
:goto_21
return-object v3
.line 1381
:cond_22
invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v2
.line 1382
.local v2, "cls":Ljava/lang/String;
invoke-virtual {v2, v6}, Ljava/lang/String;->charAt(I)C
move-result v1
.line 1383
.local v1, "c":C
if-ne v1, v5, :cond_42
.line 1384
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v3
goto :goto_21
.line 1386
:cond_42
invoke-virtual {v2, v5}, Ljava/lang/String;->indexOf(I)I
move-result v4
if-gez v4, :cond_5c
.line 1387
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0, p0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 1388
.local v0, "b":Ljava/lang/StringBuilder;
invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 1389
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 1390
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v3
goto :goto_21
.line 1392
.end local v0 # "b":Ljava/lang/StringBuilder;
:cond_5c
const/16 v4, 0x61
if-lt v1, v4, :cond_69
const/16 v4, 0x7a
if-gt v1, v4, :cond_69
.line 1393
invoke-virtual {v2}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v3
goto :goto_21
.line 1395
:cond_69
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "Bad class name "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v5, " in package "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
aput-object v4, p2, v6
goto :goto_21
.end method
.method private static buildCompoundName(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
.registers 13
.param p0, "pkg" # Ljava/lang/String;
.param p1, "procSeq" # Ljava/lang/CharSequence;
.param p2, "type" # Ljava/lang/String;
.param p3, "outError" # [Ljava/lang/String;
.prologue
const/4 v8, 0x1
const/4 v4, 0x0
const/4 v7, 0x0
.line 1401
invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v2
.line 1402
.local v2, "proc":Ljava/lang/String;
invoke-virtual {v2, v7}, Ljava/lang/String;->charAt(I)C
move-result v0
.line 1403
.local v0, "c":C
if-eqz p0, :cond_9c
const/16 v5, 0x3a
if-ne v0, v5, :cond_9c
.line 1404
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v5
const/4 v6, 0x2
if-ge v5, v6, :cond_48
.line 1405
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Bad "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, " name "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, " in package "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, ": must be at least two characters"
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
aput-object v5, p3, v7
.line 1424
:goto_47
return-object v4
.line 1409
:cond_48
invoke-virtual {v2, v8}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v3
.line 1410
.local v3, "subName":Ljava/lang/String;
invoke-static {v3, v7}, Landroid/content/pm/PackageParser;->validateName(Ljava/lang/String;Z)Ljava/lang/String;
move-result-object v1
.line 1411
.local v1, "nameError":Ljava/lang/String;
if-eqz v1, :cond_86
.line 1412
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Invalid "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, " name "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, " in package "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, ": "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
aput-object v5, p3, v7
goto :goto_47
.line 1416
:cond_86
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v4, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v4
goto :goto_47
.line 1418
.end local v1 # "nameError":Ljava/lang/String;
.end local v3 # "subName":Ljava/lang/String;
:cond_9c
invoke-static {v2, v8}, Landroid/content/pm/PackageParser;->validateName(Ljava/lang/String;Z)Ljava/lang/String;
move-result-object v1
.line 1419
.restart local v1 # "nameError":Ljava/lang/String;
if-eqz v1, :cond_e0
const-string/jumbo v5, "system"
invoke-virtual {v5, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_e0
.line 1420
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Invalid "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, " name "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, " in package "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, ": "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
aput-object v5, p3, v7
goto/16 :goto_47
.line 1424
:cond_e0
invoke-virtual {v2}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v4
goto/16 :goto_47
.end method
.method private static buildProcessName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/CharSequence;I[Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
.registers 9
.param p0, "pkg" # Ljava/lang/String;
.param p1, "defProc" # Ljava/lang/String;
.param p2, "procSeq" # Ljava/lang/CharSequence;
.param p3, "flags" # I
.param p4, "separateProcesses" # [Ljava/lang/String;
.param p5, "outError" # [Ljava/lang/String;
.prologue
.line 1430
and-int/lit8 v2, p3, 0x8
if-eqz v2, :cond_12
const-string/jumbo v2, "system"
invoke-virtual {v2, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_12
.line 1431
if-eqz p1, :cond_10
.line 1444
.end local p1 # "defProc":Ljava/lang/String;
:cond_f
:goto_f
return-object p1
.restart local p1 # "defProc":Ljava/lang/String;
:cond_10
move-object p1, p0
.line 1431
goto :goto_f
.line 1433
:cond_12
if-eqz p4, :cond_32
.line 1434
array-length v2, p4
add-int/lit8 v0, v2, -0x1
.local v0, "i":I
:goto_17
if-ltz v0, :cond_32
.line 1435
aget-object v1, p4, v0
.line 1436
.local v1, "sp":Ljava/lang/String;
invoke-virtual {v1, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_2d
invoke-virtual {v1, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_2d
invoke-virtual {v1, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_2f
:cond_2d
move-object p1, p0
.line 1437
goto :goto_f
.line 1434
:cond_2f
add-int/lit8 v0, v0, -0x1
goto :goto_17
.line 1441
.end local v0 # "i":I
.end local v1 # "sp":Ljava/lang/String;
:cond_32
if-eqz p2, :cond_f
invoke-interface {p2}, Ljava/lang/CharSequence;->length()I
move-result v2
if-lez v2, :cond_f
.line 1444
const-string/jumbo v2, "process"
invoke-static {p0, p2, v2, p5}, Landroid/content/pm/PackageParser;->buildCompoundName(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
goto :goto_f
.end method
.method private static buildTaskAffinityName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/String;)Ljava/lang/String;
.registers 5
.param p0, "pkg" # Ljava/lang/String;
.param p1, "defProc" # Ljava/lang/String;
.param p2, "procSeq" # Ljava/lang/CharSequence;
.param p3, "outError" # [Ljava/lang/String;
.prologue
.line 1449
if-nez p2, :cond_3
.line 1455
.end local p1 # "defProc":Ljava/lang/String;
:goto_2
return-object p1
.line 1452
.restart local p1 # "defProc":Ljava/lang/String;
:cond_3
invoke-interface {p2}, Ljava/lang/CharSequence;->length()I
move-result v0
if-gtz v0, :cond_b
.line 1453
const/4 p1, 0x0
goto :goto_2
.line 1455
:cond_b
const-string/jumbo v0, "taskAffinity"
invoke-static {p0, p2, v0, p3}, Landroid/content/pm/PackageParser;->buildCompoundName(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
goto :goto_2
.end method
.method private static copyNeeded(ILandroid/content/pm/PackageParser$Package;ILandroid/os/Bundle;)Z
.registers 8
.param p0, "flags" # I
.param p1, "p" # Landroid/content/pm/PackageParser$Package;
.param p2, "enabledState" # I
.param p3, "metaData" # Landroid/os/Bundle;
.prologue
const/4 v2, 0x0
const/4 v1, 0x1
.line 3426
if-eqz p2, :cond_10
.line 3427
if-ne p2, v1, :cond_e
move v0, v1
.line 3428
.local v0, "enabled":Z
:goto_7
iget-object v3, p1, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget-boolean v3, v3, Landroid/content/pm/ApplicationInfo;->enabled:Z
if-eq v3, v0, :cond_10
.line 3440
.end local v0 # "enabled":Z
:cond_d
:goto_d
return v1
:cond_e
move v0, v2
.line 3427
goto :goto_7
.line 3432
:cond_10
and-int/lit16 v3, p0, 0x80
if-eqz v3, :cond_1a
if-nez p3, :cond_d
iget-object v3, p1, Landroid/content/pm/PackageParser$Package;->mAppMetaData:Landroid/os/Bundle;
if-nez v3, :cond_d
.line 3436
:cond_1a
and-int/lit16 v3, p0, 0x400
if-eqz v3, :cond_22
iget-object v3, p1, Landroid/content/pm/PackageParser$Package;->usesLibraryFiles:[Ljava/lang/String;
if-nez v3, :cond_d
:cond_22
move v1, v2
.line 3440
goto :goto_d
.end method
.method public static final generateActivityInfo(Landroid/content/pm/PackageParser$Activity;IZII)Landroid/content/pm/ActivityInfo;
.registers 8
.param p0, "a" # Landroid/content/pm/PackageParser$Activity;
.param p1, "flags" # I
.param p2, "stopped" # Z
.param p3, "enabledState" # I
.param p4, "userId" # I
.prologue
.line 3547
if-nez p0, :cond_4
const/4 v0, 0x0
.line 3555
:goto_3
return-object v0
.line 3548
:cond_4
iget-object v1, p0, Landroid/content/pm/PackageParser$Activity;->owner:Landroid/content/pm/PackageParser$Package;
iget-object v2, p0, Landroid/content/pm/PackageParser$Activity;->metaData:Landroid/os/Bundle;
invoke-static {p1, v1, p3, v2}, Landroid/content/pm/PackageParser;->copyNeeded(ILandroid/content/pm/PackageParser$Package;ILandroid/os/Bundle;)Z
move-result v1
if-nez v1, :cond_13
if-nez p4, :cond_13
.line 3549
iget-object v0, p0, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
goto :goto_3
.line 3552
:cond_13
new-instance v0, Landroid/content/pm/ActivityInfo;
iget-object v1, p0, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
invoke-direct {v0, v1}, Landroid/content/pm/ActivityInfo;-><init>(Landroid/content/pm/ActivityInfo;)V
.line 3553
.local v0, "ai":Landroid/content/pm/ActivityInfo;
iget-object v1, p0, Landroid/content/pm/PackageParser$Activity;->metaData:Landroid/os/Bundle;
iput-object v1, v0, Landroid/content/pm/ActivityInfo;->metaData:Landroid/os/Bundle;
.line 3554
iget-object v1, p0, Landroid/content/pm/PackageParser$Activity;->owner:Landroid/content/pm/PackageParser$Package;
invoke-static {v1, p1, p2, p3, p4}, Landroid/content/pm/PackageParser;->generateApplicationInfo(Landroid/content/pm/PackageParser$Package;IZII)Landroid/content/pm/ApplicationInfo;
move-result-object v1
iput-object v1, v0, Landroid/content/pm/ActivityInfo;->applicationInfo:Landroid/content/pm/ApplicationInfo;
goto :goto_3
.end method
.method public static generateApplicationInfo(Landroid/content/pm/PackageParser$Package;IZI)Landroid/content/pm/ApplicationInfo;
.registers 5
.param p0, "p" # Landroid/content/pm/PackageParser$Package;
.param p1, "flags" # I
.param p2, "stopped" # Z
.param p3, "enabledState" # I
.prologue
.line 3445
invoke-static {}, Landroid/os/UserId;->getCallingUserId()I
move-result v0
invoke-static {p0, p1, p2, p3, v0}, Landroid/content/pm/PackageParser;->generateApplicationInfo(Landroid/content/pm/PackageParser$Package;IZII)Landroid/content/pm/ApplicationInfo;
move-result-object v0
return-object v0
.end method
.method public static generateApplicationInfo(Landroid/content/pm/PackageParser$Package;IZII)Landroid/content/pm/ApplicationInfo;
.registers 13
.param p0, "p" # Landroid/content/pm/PackageParser$Package;
.param p1, "flags" # I
.param p2, "stopped" # Z
.param p3, "enabledState" # I
.param p4, "userId" # I
.prologue
const/4 v7, 0x3
const/4 v6, 0x2
const/4 v5, 0x0
const v3, -0x200001
const/4 v4, 0x1
.line 3450
if-nez p0, :cond_b
const/4 v0, 0x0
.line 3499
:goto_a
return-object v0
.line 3451
:cond_b
const/4 v1, 0x0
invoke-static {p1, p0, p3, v1}, Landroid/content/pm/PackageParser;->copyNeeded(ILandroid/content/pm/PackageParser$Package;ILandroid/os/Bundle;)Z
move-result v1
if-nez v1, :cond_46
if-nez p4, :cond_46
.line 3454
sget-boolean v1, Landroid/content/pm/PackageParser;->sCompatibilityModeEnabled:Z
if-nez v1, :cond_1d
.line 3455
iget-object v1, p0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
invoke-virtual {v1}, Landroid/content/pm/ApplicationInfo;->disableCompatibilityMode()V
.line 3457
:cond_1d
if-eqz p2, :cond_35
.line 3458
iget-object v1, p0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v2, v1, Landroid/content/pm/ApplicationInfo;->flags:I
const/high16 v3, 0x200000
or-int/2addr v2, v3
iput v2, v1, Landroid/content/pm/ApplicationInfo;->flags:I
.line 3462
:goto_28
if-ne p3, v4, :cond_3d
.line 3463
iget-object v1, p0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iput-boolean v4, v1, Landroid/content/pm/ApplicationInfo;->enabled:Z
.line 3468
:cond_2e
:goto_2e
iget-object v1, p0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iput p3, v1, Landroid/content/pm/ApplicationInfo;->enabledSetting:I
.line 3469
iget-object v0, p0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
goto :goto_a
.line 3460
:cond_35
iget-object v1, p0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v2, v1, Landroid/content/pm/ApplicationInfo;->flags:I
and-int/2addr v2, v3
iput v2, v1, Landroid/content/pm/ApplicationInfo;->flags:I
goto :goto_28
.line 3464
:cond_3d
if-eq p3, v6, :cond_41
if-ne p3, v7, :cond_2e
.line 3466
:cond_41
iget-object v1, p0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iput-boolean v5, v1, Landroid/content/pm/ApplicationInfo;->enabled:Z
goto :goto_2e
.line 3473
:cond_46
new-instance v0, Landroid/content/pm/ApplicationInfo;
iget-object v1, p0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
invoke-direct {v0, v1}, Landroid/content/pm/ApplicationInfo;-><init>(Landroid/content/pm/ApplicationInfo;)V
.line 3474
.local v0, "ai":Landroid/content/pm/ApplicationInfo;
if-eqz p4, :cond_5f
.line 3475
iget v1, v0, Landroid/content/pm/ApplicationInfo;->uid:I
invoke-static {p4, v1}, Landroid/os/UserId;->getUid(II)I
move-result v1
iput v1, v0, Landroid/content/pm/ApplicationInfo;->uid:I
.line 3476
iget-object v1, v0, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
invoke-static {p4, v1}, Landroid/content/pm/PackageManager;->getDataDirForUser(ILjava/lang/String;)Ljava/lang/String;
move-result-object v1
iput-object v1, v0, Landroid/content/pm/ApplicationInfo;->dataDir:Ljava/lang/String;
.line 3478
:cond_5f
and-int/lit16 v1, p1, 0x80
if-eqz v1, :cond_67
.line 3479
iget-object v1, p0, Landroid/content/pm/PackageParser$Package;->mAppMetaData:Landroid/os/Bundle;
iput-object v1, v0, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle;
.line 3481
:cond_67
and-int/lit16 v1, p1, 0x400
if-eqz v1, :cond_6f
.line 3482
iget-object v1, p0, Landroid/content/pm/PackageParser$Package;->usesLibraryFiles:[Ljava/lang/String;
iput-object v1, v0, Landroid/content/pm/ApplicationInfo;->sharedLibraryFiles:[Ljava/lang/String;
.line 3484
:cond_6f
sget-boolean v1, Landroid/content/pm/PackageParser;->sCompatibilityModeEnabled:Z
if-nez v1, :cond_76
.line 3485
invoke-virtual {v0}, Landroid/content/pm/ApplicationInfo;->disableCompatibilityMode()V
.line 3487
:cond_76
if-eqz p2, :cond_86
.line 3488
iget v1, v0, Landroid/content/pm/ApplicationInfo;->flags:I
const/high16 v2, 0x200000
or-int/2addr v1, v2
iput v1, v0, Landroid/content/pm/ApplicationInfo;->flags:I
.line 3492
:goto_7f
if-ne p3, v4, :cond_8c
.line 3493
iput-boolean v4, v0, Landroid/content/pm/ApplicationInfo;->enabled:Z
.line 3498
:cond_83
:goto_83
iput p3, v0, Landroid/content/pm/ApplicationInfo;->enabledSetting:I
goto :goto_a
.line 3490
:cond_86
iget v1, v0, Landroid/content/pm/ApplicationInfo;->flags:I
and-int/2addr v1, v3
iput v1, v0, Landroid/content/pm/ApplicationInfo;->flags:I
goto :goto_7f
.line 3494
:cond_8c
if-eq p3, v6, :cond_90
if-ne p3, v7, :cond_83
.line 3496
:cond_90
iput-boolean v5, v0, Landroid/content/pm/ApplicationInfo;->enabled:Z
goto :goto_83
.end method
.method public static final generateInstrumentationInfo(Landroid/content/pm/PackageParser$Instrumentation;I)Landroid/content/pm/InstrumentationInfo;
.registers 4
.param p0, "i" # Landroid/content/pm/PackageParser$Instrumentation;
.param p1, "flags" # I
.prologue
.line 3663
if-nez p0, :cond_4
const/4 v0, 0x0
.line 3669
:goto_3
return-object v0
.line 3664
:cond_4
and-int/lit16 v1, p1, 0x80
if-nez v1, :cond_b
.line 3665
iget-object v0, p0, Landroid/content/pm/PackageParser$Instrumentation;->info:Landroid/content/pm/InstrumentationInfo;
goto :goto_3
.line 3667
:cond_b
new-instance v0, Landroid/content/pm/InstrumentationInfo;
iget-object v1, p0, Landroid/content/pm/PackageParser$Instrumentation;->info:Landroid/content/pm/InstrumentationInfo;
invoke-direct {v0, v1}, Landroid/content/pm/InstrumentationInfo;-><init>(Landroid/content/pm/InstrumentationInfo;)V
.line 3668
.local v0, "ii":Landroid/content/pm/InstrumentationInfo;
iget-object v1, p0, Landroid/content/pm/PackageParser$Instrumentation;->metaData:Landroid/os/Bundle;
iput-object v1, v0, Landroid/content/pm/InstrumentationInfo;->metaData:Landroid/os/Bundle;
goto :goto_3
.end method
.method public static generatePackageInfo(Landroid/content/pm/PackageParser$Package;[IIJJLjava/util/HashSet;)Landroid/content/pm/PackageInfo;
.registers 19
.param p0, "p" # Landroid/content/pm/PackageParser$Package;
.param p1, "gids" # [I
.param p2, "flags" # I
.param p3, "firstInstallTime" # J
.param p5, "lastUpdateTime" # J
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/pm/PackageParser$Package;",
"[IIJJ",
"Ljava/util/HashSet",
"<",
"Ljava/lang/String;",
">;)",
"Landroid/content/pm/PackageInfo;"
}
.end annotation
.prologue
.line 259
.local p7, "grantedPermissions":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/String;>;"
const/4 v8, 0x0
const/4 v9, 0x0
invoke-static {}, Landroid/os/UserId;->getCallingUserId()I
move-result v10
move-object v0, p0
move-object v1, p1
move v2, p2
move-wide v3, p3
move-wide/from16 v5, p5
move-object/from16 v7, p7
invoke-static/range {v0 .. v10}, Landroid/content/pm/PackageParser;->generatePackageInfo(Landroid/content/pm/PackageParser$Package;[IIJJLjava/util/HashSet;ZII)Landroid/content/pm/PackageInfo;
move-result-object v0
return-object v0
.end method
.method public static generatePackageInfo(Landroid/content/pm/PackageParser$Package;[IIJJLjava/util/HashSet;ZI)Landroid/content/pm/PackageInfo;
.registers 21
.param p0, "p" # Landroid/content/pm/PackageParser$Package;
.param p1, "gids" # [I
.param p2, "flags" # I
.param p3, "firstInstallTime" # J
.param p5, "lastUpdateTime" # J
.param p8, "stopped" # Z
.param p9, "enabledState" # I
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/pm/PackageParser$Package;",
"[IIJJ",
"Ljava/util/HashSet",
"<",
"Ljava/lang/String;",
">;ZI)",
"Landroid/content/pm/PackageInfo;"
}
.end annotation
.prologue
.line 274
.local p7, "grantedPermissions":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/String;>;"
invoke-static {}, Landroid/os/UserId;->getCallingUserId()I
move-result v10
move-object v0, p0
move-object v1, p1
move v2, p2
move-wide v3, p3
move-wide/from16 v5, p5
move-object/from16 v7, p7
move/from16 v8, p8
move/from16 v9, p9
invoke-static/range {v0 .. v10}, Landroid/content/pm/PackageParser;->generatePackageInfo(Landroid/content/pm/PackageParser$Package;[IIJJLjava/util/HashSet;ZII)Landroid/content/pm/PackageInfo;
move-result-object v0
return-object v0
.end method
.method public static generatePackageInfo(Landroid/content/pm/PackageParser$Package;[IIJJLjava/util/HashSet;ZII)Landroid/content/pm/PackageInfo;
.registers 30
.param p0, "p" # Landroid/content/pm/PackageParser$Package;
.param p1, "gids" # [I
.param p2, "flags" # I
.param p3, "firstInstallTime" # J
.param p5, "lastUpdateTime" # J
.param p8, "stopped" # Z
.param p9, "enabledState" # I
.param p10, "userId" # I
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/pm/PackageParser$Package;",
"[IIJJ",
"Ljava/util/HashSet",
"<",
"Ljava/lang/String;",
">;ZII)",
"Landroid/content/pm/PackageInfo;"
}
.end annotation
.prologue
.line 282
.local p7, "grantedPermissions":Ljava/util/HashSet;, "Ljava/util/HashSet<Ljava/lang/String;>;"
new-instance v12, Landroid/content/pm/PackageInfo;
invoke-direct {v12}, Landroid/content/pm/PackageInfo;-><init>()V
.line 283
.local v12, "pi":Landroid/content/pm/PackageInfo;
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->packageName:Ljava/lang/String;
iput-object v15, v12, Landroid/content/pm/PackageInfo;->packageName:Ljava/lang/String;
.line 284
move-object/from16 v0, p0
iget v15, v0, Landroid/content/pm/PackageParser$Package;->mVersionCode:I
iput v15, v12, Landroid/content/pm/PackageInfo;->versionCode:I
.line 285
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->mVersionName:Ljava/lang/String;
iput-object v15, v12, Landroid/content/pm/PackageInfo;->versionName:Ljava/lang/String;
.line 286
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->mSharedUserId:Ljava/lang/String;
iput-object v15, v12, Landroid/content/pm/PackageInfo;->sharedUserId:Ljava/lang/String;
.line 287
move-object/from16 v0, p0
iget v15, v0, Landroid/content/pm/PackageParser$Package;->mSharedUserLabel:I
iput v15, v12, Landroid/content/pm/PackageInfo;->sharedUserLabel:I
.line 288
move-object/from16 v0, p0
move/from16 v1, p2
move/from16 v2, p8
move/from16 v3, p9
move/from16 v4, p10
invoke-static {v0, v1, v2, v3, v4}, Landroid/content/pm/PackageParser;->generateApplicationInfo(Landroid/content/pm/PackageParser$Package;IZII)Landroid/content/pm/ApplicationInfo;
move-result-object v15
iput-object v15, v12, Landroid/content/pm/PackageInfo;->applicationInfo:Landroid/content/pm/ApplicationInfo;
.line 289
move-object/from16 v0, p0
iget v15, v0, Landroid/content/pm/PackageParser$Package;->installLocation:I
iput v15, v12, Landroid/content/pm/PackageInfo;->installLocation:I
.line 290
move-wide/from16 v0, p3
iput-wide v0, v12, Landroid/content/pm/PackageInfo;->firstInstallTime:J
.line 291
move-wide/from16 v0, p5
iput-wide v0, v12, Landroid/content/pm/PackageInfo;->lastUpdateTime:J
.line 292
move/from16 v0, p2
and-int/lit16 v15, v0, 0x100
if-eqz v15, :cond_4b
.line 293
move-object/from16 v0, p1
iput-object v0, v12, Landroid/content/pm/PackageInfo;->gids:[I
.line 295
:cond_4b
move/from16 v0, p2
and-int/lit16 v15, v0, 0x4000
if-eqz v15, :cond_89
.line 296
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->configPreferences:Ljava/util/ArrayList;
invoke-virtual {v15}, Ljava/util/ArrayList;->size()I
move-result v5
.line 297
.local v5, "N":I
if-lez v5, :cond_6a
.line 298
new-array v15, v5, [Landroid/content/pm/ConfigurationInfo;
iput-object v15, v12, Landroid/content/pm/PackageInfo;->configPreferences:[Landroid/content/pm/ConfigurationInfo;
.line 299
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->configPreferences:Ljava/util/ArrayList;
iget-object v0, v12, Landroid/content/pm/PackageInfo;->configPreferences:[Landroid/content/pm/ConfigurationInfo;
move-object/from16 v16, v0
invoke-virtual/range {v15 .. v16}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 301
:cond_6a
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->reqFeatures:Ljava/util/ArrayList;
if-eqz v15, :cond_de
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->reqFeatures:Ljava/util/ArrayList;
invoke-virtual {v15}, Ljava/util/ArrayList;->size()I
move-result v5
.line 302
:goto_78
if-lez v5, :cond_89
.line 303
new-array v15, v5, [Landroid/content/pm/FeatureInfo;
iput-object v15, v12, Landroid/content/pm/PackageInfo;->reqFeatures:[Landroid/content/pm/FeatureInfo;
.line 304
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->reqFeatures:Ljava/util/ArrayList;
iget-object v0, v12, Landroid/content/pm/PackageInfo;->reqFeatures:[Landroid/content/pm/FeatureInfo;
move-object/from16 v16, v0
invoke-virtual/range {v15 .. v16}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 307
.end local v5 # "N":I
:cond_89
and-int/lit8 v15, p2, 0x1
if-eqz v15, :cond_fe
.line 308
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->activities:Ljava/util/ArrayList;
invoke-virtual {v15}, Ljava/util/ArrayList;->size()I
move-result v5
.line 309
.restart local v5 # "N":I
if-lez v5, :cond_fe
.line 310
move/from16 v0, p2
and-int/lit16 v15, v0, 0x200
if-eqz v15, :cond_e0
.line 311
new-array v15, v5, [Landroid/content/pm/ActivityInfo;
iput-object v15, v12, Landroid/content/pm/PackageInfo;->activities:[Landroid/content/pm/ActivityInfo;
.line 319
:goto_a1
const/4 v7, 0x0
.local v7, "i":I
const/4 v8, 0x0
.local v8, "j":I
move v9, v8
.end local v8 # "j":I
.local v9, "j":I
:goto_a4
if-ge v7, v5, :cond_fe
.line 320
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->activities:Ljava/util/ArrayList;
invoke-virtual {v15, v7}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v6
check-cast v6, Landroid/content/pm/PackageParser$Activity;
.line 321
.local v6, "activity":Landroid/content/pm/PackageParser$Activity;
iget-object v15, v6, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget-boolean v15, v15, Landroid/content/pm/ActivityInfo;->enabled:Z
if-nez v15, :cond_bc
move/from16 v0, p2
and-int/lit16 v15, v0, 0x200
if-eqz v15, :cond_33b
.line 323
:cond_bc
iget-object v0, v12, Landroid/content/pm/PackageInfo;->activities:[Landroid/content/pm/ActivityInfo;
move-object/from16 v16, v0
add-int/lit8 v8, v9, 0x1
.end local v9 # "j":I
.restart local v8 # "j":I
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->activities:Ljava/util/ArrayList;
invoke-virtual {v15, v7}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v15
check-cast v15, Landroid/content/pm/PackageParser$Activity;
move/from16 v0, p2
move/from16 v1, p8
move/from16 v2, p9
move/from16 v3, p10
invoke-static {v15, v0, v1, v2, v3}, Landroid/content/pm/PackageParser;->generateActivityInfo(Landroid/content/pm/PackageParser$Activity;IZII)Landroid/content/pm/ActivityInfo;
move-result-object v15
aput-object v15, v16, v9
.line 319
:goto_da
add-int/lit8 v7, v7, 0x1
move v9, v8
.end local v8 # "j":I
.restart local v9 # "j":I
goto :goto_a4
.line 301
.end local v6 # "activity":Landroid/content/pm/PackageParser$Activity;
.end local v7 # "i":I
.end local v9 # "j":I
:cond_de
const/4 v5, 0x0
goto :goto_78
.line 313
:cond_e0
const/4 v10, 0x0
.line 314
.local v10, "num":I
const/4 v7, 0x0
.restart local v7 # "i":I
:goto_e2
if-ge v7, v5, :cond_f9
.line 315
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->activities:Ljava/util/ArrayList;
invoke-virtual {v15, v7}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v15
check-cast v15, Landroid/content/pm/PackageParser$Activity;
iget-object v15, v15, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget-boolean v15, v15, Landroid/content/pm/ActivityInfo;->enabled:Z
if-eqz v15, :cond_f6
add-int/lit8 v10, v10, 0x1
.line 314
:cond_f6
add-int/lit8 v7, v7, 0x1
goto :goto_e2
.line 317
:cond_f9
new-array v15, v10, [Landroid/content/pm/ActivityInfo;
iput-object v15, v12, Landroid/content/pm/PackageInfo;->activities:[Landroid/content/pm/ActivityInfo;
goto :goto_a1
.line 329
.end local v5 # "N":I
.end local v7 # "i":I
.end local v10 # "num":I
:cond_fe
and-int/lit8 v15, p2, 0x2
if-eqz v15, :cond_171
.line 330
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->receivers:Ljava/util/ArrayList;
invoke-virtual {v15}, Ljava/util/ArrayList;->size()I
move-result v5
.line 331
.restart local v5 # "N":I
if-lez v5, :cond_171
.line 332
move/from16 v0, p2
and-int/lit16 v15, v0, 0x200
if-eqz v15, :cond_153
.line 333
new-array v15, v5, [Landroid/content/pm/ActivityInfo;
iput-object v15, v12, Landroid/content/pm/PackageInfo;->receivers:[Landroid/content/pm/ActivityInfo;
.line 341
:goto_116
const/4 v7, 0x0
.restart local v7 # "i":I
const/4 v8, 0x0
.restart local v8 # "j":I
move v9, v8
.end local v8 # "j":I
.restart local v9 # "j":I
:goto_119
if-ge v7, v5, :cond_171
.line 342
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->receivers:Ljava/util/ArrayList;
invoke-virtual {v15, v7}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v6
check-cast v6, Landroid/content/pm/PackageParser$Activity;
.line 343
.restart local v6 # "activity":Landroid/content/pm/PackageParser$Activity;
iget-object v15, v6, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget-boolean v15, v15, Landroid/content/pm/ActivityInfo;->enabled:Z
if-nez v15, :cond_131
move/from16 v0, p2
and-int/lit16 v15, v0, 0x200
if-eqz v15, :cond_338
.line 345
:cond_131
iget-object v0, v12, Landroid/content/pm/PackageInfo;->receivers:[Landroid/content/pm/ActivityInfo;
move-object/from16 v16, v0
add-int/lit8 v8, v9, 0x1
.end local v9 # "j":I
.restart local v8 # "j":I
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->receivers:Ljava/util/ArrayList;
invoke-virtual {v15, v7}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v15
check-cast v15, Landroid/content/pm/PackageParser$Activity;
move/from16 v0, p2
move/from16 v1, p8
move/from16 v2, p9
move/from16 v3, p10
invoke-static {v15, v0, v1, v2, v3}, Landroid/content/pm/PackageParser;->generateActivityInfo(Landroid/content/pm/PackageParser$Activity;IZII)Landroid/content/pm/ActivityInfo;
move-result-object v15
aput-object v15, v16, v9
.line 341
:goto_14f
add-int/lit8 v7, v7, 0x1
move v9, v8
.end local v8 # "j":I
.restart local v9 # "j":I
goto :goto_119
.line 335
.end local v6 # "activity":Landroid/content/pm/PackageParser$Activity;
.end local v7 # "i":I
.end local v9 # "j":I
:cond_153
const/4 v10, 0x0
.line 336
.restart local v10 # "num":I
const/4 v7, 0x0
.restart local v7 # "i":I
:goto_155
if-ge v7, v5, :cond_16c
.line 337
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->receivers:Ljava/util/ArrayList;
invoke-virtual {v15, v7}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v15
check-cast v15, Landroid/content/pm/PackageParser$Activity;
iget-object v15, v15, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget-boolean v15, v15, Landroid/content/pm/ActivityInfo;->enabled:Z
if-eqz v15, :cond_169
add-int/lit8 v10, v10, 0x1
.line 336
:cond_169
add-int/lit8 v7, v7, 0x1
goto :goto_155
.line 339
:cond_16c
new-array v15, v10, [Landroid/content/pm/ActivityInfo;
iput-object v15, v12, Landroid/content/pm/PackageInfo;->receivers:[Landroid/content/pm/ActivityInfo;
goto :goto_116
.line 351
.end local v5 # "N":I
.end local v7 # "i":I
.end local v10 # "num":I
:cond_171
and-int/lit8 v15, p2, 0x4
if-eqz v15, :cond_1e4
.line 352
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->services:Ljava/util/ArrayList;
invoke-virtual {v15}, Ljava/util/ArrayList;->size()I
move-result v5
.line 353
.restart local v5 # "N":I
if-lez v5, :cond_1e4
.line 354
move/from16 v0, p2
and-int/lit16 v15, v0, 0x200
if-eqz v15, :cond_1c6
.line 355
new-array v15, v5, [Landroid/content/pm/ServiceInfo;
iput-object v15, v12, Landroid/content/pm/PackageInfo;->services:[Landroid/content/pm/ServiceInfo;
.line 363
:goto_189
const/4 v7, 0x0
.restart local v7 # "i":I
const/4 v8, 0x0
.restart local v8 # "j":I
move v9, v8
.end local v8 # "j":I
.restart local v9 # "j":I
:goto_18c
if-ge v7, v5, :cond_1e4
.line 364
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->services:Ljava/util/ArrayList;
invoke-virtual {v15, v7}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v14
check-cast v14, Landroid/content/pm/PackageParser$Service;
.line 365
.local v14, "service":Landroid/content/pm/PackageParser$Service;
iget-object v15, v14, Landroid/content/pm/PackageParser$Service;->info:Landroid/content/pm/ServiceInfo;
iget-boolean v15, v15, Landroid/content/pm/ServiceInfo;->enabled:Z
if-nez v15, :cond_1a4
move/from16 v0, p2
and-int/lit16 v15, v0, 0x200
if-eqz v15, :cond_335
.line 367
:cond_1a4
iget-object v0, v12, Landroid/content/pm/PackageInfo;->services:[Landroid/content/pm/ServiceInfo;
move-object/from16 v16, v0
add-int/lit8 v8, v9, 0x1
.end local v9 # "j":I
.restart local v8 # "j":I
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->services:Ljava/util/ArrayList;
invoke-virtual {v15, v7}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v15
check-cast v15, Landroid/content/pm/PackageParser$Service;
move/from16 v0, p2
move/from16 v1, p8
move/from16 v2, p9
move/from16 v3, p10
invoke-static {v15, v0, v1, v2, v3}, Landroid/content/pm/PackageParser;->generateServiceInfo(Landroid/content/pm/PackageParser$Service;IZII)Landroid/content/pm/ServiceInfo;
move-result-object v15
aput-object v15, v16, v9
.line 363
:goto_1c2
add-int/lit8 v7, v7, 0x1
move v9, v8
.end local v8 # "j":I
.restart local v9 # "j":I
goto :goto_18c
.line 357
.end local v7 # "i":I
.end local v9 # "j":I
.end local v14 # "service":Landroid/content/pm/PackageParser$Service;
:cond_1c6
const/4 v10, 0x0
.line 358
.restart local v10 # "num":I
const/4 v7, 0x0
.restart local v7 # "i":I
:goto_1c8
if-ge v7, v5, :cond_1df
.line 359
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->services:Ljava/util/ArrayList;
invoke-virtual {v15, v7}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v15
check-cast v15, Landroid/content/pm/PackageParser$Service;
iget-object v15, v15, Landroid/content/pm/PackageParser$Service;->info:Landroid/content/pm/ServiceInfo;
iget-boolean v15, v15, Landroid/content/pm/ServiceInfo;->enabled:Z
if-eqz v15, :cond_1dc
add-int/lit8 v10, v10, 0x1
.line 358
:cond_1dc
add-int/lit8 v7, v7, 0x1
goto :goto_1c8
.line 361
:cond_1df
new-array v15, v10, [Landroid/content/pm/ServiceInfo;
iput-object v15, v12, Landroid/content/pm/PackageInfo;->services:[Landroid/content/pm/ServiceInfo;
goto :goto_189
.line 373
.end local v5 # "N":I
.end local v7 # "i":I
.end local v10 # "num":I
:cond_1e4
and-int/lit8 v15, p2, 0x8
if-eqz v15, :cond_257
.line 374
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->providers:Ljava/util/ArrayList;
invoke-virtual {v15}, Ljava/util/ArrayList;->size()I
move-result v5
.line 375
.restart local v5 # "N":I
if-lez v5, :cond_257
.line 376
move/from16 v0, p2
and-int/lit16 v15, v0, 0x200
if-eqz v15, :cond_239
.line 377
new-array v15, v5, [Landroid/content/pm/ProviderInfo;
iput-object v15, v12, Landroid/content/pm/PackageInfo;->providers:[Landroid/content/pm/ProviderInfo;
.line 385
:goto_1fc
const/4 v7, 0x0
.restart local v7 # "i":I
const/4 v8, 0x0
.restart local v8 # "j":I
move v9, v8
.end local v8 # "j":I
.restart local v9 # "j":I
:goto_1ff
if-ge v7, v5, :cond_257
.line 386
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->providers:Ljava/util/ArrayList;
invoke-virtual {v15, v7}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v13
check-cast v13, Landroid/content/pm/PackageParser$Provider;
.line 387
.local v13, "provider":Landroid/content/pm/PackageParser$Provider;
iget-object v15, v13, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
iget-boolean v15, v15, Landroid/content/pm/ProviderInfo;->enabled:Z
if-nez v15, :cond_217
move/from16 v0, p2
and-int/lit16 v15, v0, 0x200
if-eqz v15, :cond_332
.line 389
:cond_217
iget-object v0, v12, Landroid/content/pm/PackageInfo;->providers:[Landroid/content/pm/ProviderInfo;
move-object/from16 v16, v0
add-int/lit8 v8, v9, 0x1
.end local v9 # "j":I
.restart local v8 # "j":I
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->providers:Ljava/util/ArrayList;
invoke-virtual {v15, v7}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v15
check-cast v15, Landroid/content/pm/PackageParser$Provider;
move/from16 v0, p2
move/from16 v1, p8
move/from16 v2, p9
move/from16 v3, p10
invoke-static {v15, v0, v1, v2, v3}, Landroid/content/pm/PackageParser;->generateProviderInfo(Landroid/content/pm/PackageParser$Provider;IZII)Landroid/content/pm/ProviderInfo;
move-result-object v15
aput-object v15, v16, v9
.line 385
:goto_235
add-int/lit8 v7, v7, 0x1
move v9, v8
.end local v8 # "j":I
.restart local v9 # "j":I
goto :goto_1ff
.line 379
.end local v7 # "i":I
.end local v9 # "j":I
.end local v13 # "provider":Landroid/content/pm/PackageParser$Provider;
:cond_239
const/4 v10, 0x0
.line 380
.restart local v10 # "num":I
const/4 v7, 0x0
.restart local v7 # "i":I
:goto_23b
if-ge v7, v5, :cond_252
.line 381
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->providers:Ljava/util/ArrayList;
invoke-virtual {v15, v7}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v15
check-cast v15, Landroid/content/pm/PackageParser$Provider;
iget-object v15, v15, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
iget-boolean v15, v15, Landroid/content/pm/ProviderInfo;->enabled:Z
if-eqz v15, :cond_24f
add-int/lit8 v10, v10, 0x1
.line 380
:cond_24f
add-int/lit8 v7, v7, 0x1
goto :goto_23b
.line 383
:cond_252
new-array v15, v10, [Landroid/content/pm/ProviderInfo;
iput-object v15, v12, Landroid/content/pm/PackageInfo;->providers:[Landroid/content/pm/ProviderInfo;
goto :goto_1fc
.line 395
.end local v5 # "N":I
.end local v7 # "i":I
.end local v10 # "num":I
:cond_257
and-int/lit8 v15, p2, 0x10
if-eqz v15, :cond_285
.line 396
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->instrumentation:Ljava/util/ArrayList;
invoke-virtual {v15}, Ljava/util/ArrayList;->size()I
move-result v5
.line 397
.restart local v5 # "N":I
if-lez v5, :cond_285
.line 398
new-array v15, v5, [Landroid/content/pm/InstrumentationInfo;
iput-object v15, v12, Landroid/content/pm/PackageInfo;->instrumentation:[Landroid/content/pm/InstrumentationInfo;
.line 399
const/4 v7, 0x0
.restart local v7 # "i":I
:goto_26a
if-ge v7, v5, :cond_285
.line 400
iget-object v0, v12, Landroid/content/pm/PackageInfo;->instrumentation:[Landroid/content/pm/InstrumentationInfo;
move-object/from16 v16, v0
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->instrumentation:Ljava/util/ArrayList;
invoke-virtual {v15, v7}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v15
check-cast v15, Landroid/content/pm/PackageParser$Instrumentation;
move/from16 v0, p2
invoke-static {v15, v0}, Landroid/content/pm/PackageParser;->generateInstrumentationInfo(Landroid/content/pm/PackageParser$Instrumentation;I)Landroid/content/pm/InstrumentationInfo;
move-result-object v15
aput-object v15, v16, v7
.line 399
add-int/lit8 v7, v7, 0x1
goto :goto_26a
.line 405
.end local v5 # "N":I
.end local v7 # "i":I
:cond_285
move/from16 v0, p2
and-int/lit16 v15, v0, 0x1000
if-eqz v15, :cond_305
.line 406
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->permissions:Ljava/util/ArrayList;
invoke-virtual {v15}, Ljava/util/ArrayList;->size()I
move-result v5
.line 407
.restart local v5 # "N":I
if-lez v5, :cond_2b5
.line 408
new-array v15, v5, [Landroid/content/pm/PermissionInfo;
iput-object v15, v12, Landroid/content/pm/PackageInfo;->permissions:[Landroid/content/pm/PermissionInfo;
.line 409
const/4 v7, 0x0
.restart local v7 # "i":I
:goto_29a
if-ge v7, v5, :cond_2b5
.line 410
iget-object v0, v12, Landroid/content/pm/PackageInfo;->permissions:[Landroid/content/pm/PermissionInfo;
move-object/from16 v16, v0
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->permissions:Ljava/util/ArrayList;
invoke-virtual {v15, v7}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v15
check-cast v15, Landroid/content/pm/PackageParser$Permission;
move/from16 v0, p2
invoke-static {v15, v0}, Landroid/content/pm/PackageParser;->generatePermissionInfo(Landroid/content/pm/PackageParser$Permission;I)Landroid/content/pm/PermissionInfo;
move-result-object v15
aput-object v15, v16, v7
.line 409
add-int/lit8 v7, v7, 0x1
goto :goto_29a
.line 413
.end local v7 # "i":I
:cond_2b5
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->requestedPermissions:Ljava/util/ArrayList;
invoke-virtual {v15}, Ljava/util/ArrayList;->size()I
move-result v5
.line 414
if-lez v5, :cond_305
.line 415
new-array v15, v5, [Ljava/lang/String;
iput-object v15, v12, Landroid/content/pm/PackageInfo;->requestedPermissions:[Ljava/lang/String;
.line 416
new-array v15, v5, [I
iput-object v15, v12, Landroid/content/pm/PackageInfo;->requestedPermissionsFlags:[I
.line 417
const/4 v7, 0x0
.restart local v7 # "i":I
:goto_2c8
if-ge v7, v5, :cond_305
.line 418
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->requestedPermissions:Ljava/util/ArrayList;
invoke-virtual {v15, v7}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v11
check-cast v11, Ljava/lang/String;
.line 419
.local v11, "perm":Ljava/lang/String;
iget-object v15, v12, Landroid/content/pm/PackageInfo;->requestedPermissions:[Ljava/lang/String;
aput-object v11, v15, v7
.line 420
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->requestedPermissionsRequired:Ljava/util/ArrayList;
invoke-virtual {v15, v7}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v15
check-cast v15, Ljava/lang/Boolean;
invoke-virtual {v15}, Ljava/lang/Boolean;->booleanValue()Z
move-result v15
if-eqz v15, :cond_2f0
.line 421
iget-object v15, v12, Landroid/content/pm/PackageInfo;->requestedPermissionsFlags:[I
aget v16, v15, v7
or-int/lit8 v16, v16, 0x1
aput v16, v15, v7
.line 423
:cond_2f0
if-eqz p7, :cond_302
move-object/from16 v0, p7
invoke-virtual {v0, v11}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
move-result v15
if-eqz v15, :cond_302
.line 424
iget-object v15, v12, Landroid/content/pm/PackageInfo;->requestedPermissionsFlags:[I
aget v16, v15, v7
or-int/lit8 v16, v16, 0x2
aput v16, v15, v7
.line 417
:cond_302
add-int/lit8 v7, v7, 0x1
goto :goto_2c8
.line 429
.end local v5 # "N":I
.end local v7 # "i":I
.end local v11 # "perm":Ljava/lang/String;
:cond_305
and-int/lit8 v15, p2, 0x40
if-eqz v15, :cond_32f
.line 430
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->mSignatures:[Landroid/content/pm/Signature;
if-eqz v15, :cond_330
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->mSignatures:[Landroid/content/pm/Signature;
array-length v5, v15
.line 431
.restart local v5 # "N":I
:goto_314
if-lez v5, :cond_32f
.line 432
new-array v15, v5, [Landroid/content/pm/Signature;
iput-object v15, v12, Landroid/content/pm/PackageInfo;->signatures:[Landroid/content/pm/Signature;
.line 433
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser$Package;->mSignatures:[Landroid/content/pm/Signature;
const/16 v16, 0x0
iget-object v0, v12, Landroid/content/pm/PackageInfo;->signatures:[Landroid/content/pm/Signature;
move-object/from16 v17, v0
const/16 v18, 0x0
move/from16 v0, v16
move-object/from16 v1, v17
move/from16 v2, v18
invoke-static {v15, v0, v1, v2, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 436
.end local v5 # "N":I
:cond_32f
return-object v12
.line 430
:cond_330
const/4 v5, 0x0
goto :goto_314
.restart local v5 # "N":I
.restart local v7 # "i":I
.restart local v9 # "j":I
.restart local v13 # "provider":Landroid/content/pm/PackageParser$Provider;
:cond_332
move v8, v9
.end local v9 # "j":I
.restart local v8 # "j":I
goto/16 :goto_235
.end local v8 # "j":I
.end local v13 # "provider":Landroid/content/pm/PackageParser$Provider;
.restart local v9 # "j":I
.restart local v14 # "service":Landroid/content/pm/PackageParser$Service;
:cond_335
move v8, v9
.end local v9 # "j":I
.restart local v8 # "j":I
goto/16 :goto_1c2
.end local v8 # "j":I
.end local v14 # "service":Landroid/content/pm/PackageParser$Service;
.restart local v6 # "activity":Landroid/content/pm/PackageParser$Activity;
.restart local v9 # "j":I
:cond_338
move v8, v9
.end local v9 # "j":I
.restart local v8 # "j":I
goto/16 :goto_14f
.end local v8 # "j":I
.restart local v9 # "j":I
:cond_33b
move v8, v9
.end local v9 # "j":I
.restart local v8 # "j":I
goto/16 :goto_da
.end method
.method public static final generatePermissionGroupInfo(Landroid/content/pm/PackageParser$PermissionGroup;I)Landroid/content/pm/PermissionGroupInfo;
.registers 4
.param p0, "pg" # Landroid/content/pm/PackageParser$PermissionGroup;
.param p1, "flags" # I
.prologue
.line 3515
if-nez p0, :cond_4
const/4 v0, 0x0
.line 3521
:goto_3
return-object v0
.line 3516
:cond_4
and-int/lit16 v1, p1, 0x80
if-nez v1, :cond_b
.line 3517
iget-object v0, p0, Landroid/content/pm/PackageParser$PermissionGroup;->info:Landroid/content/pm/PermissionGroupInfo;
goto :goto_3
.line 3519
:cond_b
new-instance v0, Landroid/content/pm/PermissionGroupInfo;
iget-object v1, p0, Landroid/content/pm/PackageParser$PermissionGroup;->info:Landroid/content/pm/PermissionGroupInfo;
invoke-direct {v0, v1}, Landroid/content/pm/PermissionGroupInfo;-><init>(Landroid/content/pm/PermissionGroupInfo;)V
.line 3520
.local v0, "pgi":Landroid/content/pm/PermissionGroupInfo;
iget-object v1, p0, Landroid/content/pm/PackageParser$PermissionGroup;->metaData:Landroid/os/Bundle;
iput-object v1, v0, Landroid/content/pm/PermissionGroupInfo;->metaData:Landroid/os/Bundle;
goto :goto_3
.end method
.method public static final generatePermissionInfo(Landroid/content/pm/PackageParser$Permission;I)Landroid/content/pm/PermissionInfo;
.registers 4
.param p0, "p" # Landroid/content/pm/PackageParser$Permission;
.param p1, "flags" # I
.prologue
.line 3504
if-nez p0, :cond_4
const/4 v0, 0x0
.line 3510
:goto_3
return-object v0
.line 3505
:cond_4
and-int/lit16 v1, p1, 0x80
if-nez v1, :cond_b
.line 3506
iget-object v0, p0, Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
goto :goto_3
.line 3508
:cond_b
new-instance v0, Landroid/content/pm/PermissionInfo;
iget-object v1, p0, Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
invoke-direct {v0, v1}, Landroid/content/pm/PermissionInfo;-><init>(Landroid/content/pm/PermissionInfo;)V
.line 3509
.local v0, "pi":Landroid/content/pm/PermissionInfo;
iget-object v1, p0, Landroid/content/pm/PackageParser$Permission;->metaData:Landroid/os/Bundle;
iput-object v1, v0, Landroid/content/pm/PermissionInfo;->metaData:Landroid/os/Bundle;
goto :goto_3
.end method
.method public static final generateProviderInfo(Landroid/content/pm/PackageParser$Provider;IZII)Landroid/content/pm/ProviderInfo;
.registers 9
.param p0, "p" # Landroid/content/pm/PackageParser$Provider;
.param p1, "flags" # I
.param p2, "stopped" # Z
.param p3, "enabledState" # I
.param p4, "userId" # I
.prologue
const/4 v1, 0x0
.line 3624
if-nez p0, :cond_5
move-object v0, v1
.line 3638
:goto_4
return-object v0
.line 3625
:cond_5
iget-object v2, p0, Landroid/content/pm/PackageParser$Provider;->owner:Landroid/content/pm/PackageParser$Package;
iget-object v3, p0, Landroid/content/pm/PackageParser$Provider;->metaData:Landroid/os/Bundle;
invoke-static {p1, v2, p3, v3}, Landroid/content/pm/PackageParser;->copyNeeded(ILandroid/content/pm/PackageParser$Package;ILandroid/os/Bundle;)Z
move-result v2
if-nez v2, :cond_1e
and-int/lit16 v2, p1, 0x800
if-nez v2, :cond_19
iget-object v2, p0, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
iget-object v2, v2, Landroid/content/pm/ProviderInfo;->uriPermissionPatterns:[Landroid/os/PatternMatcher;
if-nez v2, :cond_1e
:cond_19
if-nez p4, :cond_1e
.line 3629
iget-object v0, p0, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
goto :goto_4
.line 3632
:cond_1e
new-instance v0, Landroid/content/pm/ProviderInfo;
iget-object v2, p0, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
invoke-direct {v0, v2}, Landroid/content/pm/ProviderInfo;-><init>(Landroid/content/pm/ProviderInfo;)V
.line 3633
.local v0, "pi":Landroid/content/pm/ProviderInfo;
iget-object v2, p0, Landroid/content/pm/PackageParser$Provider;->metaData:Landroid/os/Bundle;
iput-object v2, v0, Landroid/content/pm/ProviderInfo;->metaData:Landroid/os/Bundle;
.line 3634
and-int/lit16 v2, p1, 0x800
if-nez v2, :cond_2f
.line 3635
iput-object v1, v0, Landroid/content/pm/ProviderInfo;->uriPermissionPatterns:[Landroid/os/PatternMatcher;
.line 3637
:cond_2f
iget-object v1, p0, Landroid/content/pm/PackageParser$Provider;->owner:Landroid/content/pm/PackageParser$Package;
invoke-static {v1, p1, p2, p3, p4}, Landroid/content/pm/PackageParser;->generateApplicationInfo(Landroid/content/pm/PackageParser$Package;IZII)Landroid/content/pm/ApplicationInfo;
move-result-object v1
iput-object v1, v0, Landroid/content/pm/ProviderInfo;->applicationInfo:Landroid/content/pm/ApplicationInfo;
goto :goto_4
.end method
.method public static final generateServiceInfo(Landroid/content/pm/PackageParser$Service;IZII)Landroid/content/pm/ServiceInfo;
.registers 8
.param p0, "s" # Landroid/content/pm/PackageParser$Service;
.param p1, "flags" # I
.param p2, "stopped" # Z
.param p3, "enabledState" # I
.param p4, "userId" # I
.prologue
.line 3581
if-nez p0, :cond_4
const/4 v0, 0x0
.line 3590
:goto_3
return-object v0
.line 3582
:cond_4
iget-object v1, p0, Landroid/content/pm/PackageParser$Service;->owner:Landroid/content/pm/PackageParser$Package;
iget-object v2, p0, Landroid/content/pm/PackageParser$Service;->metaData:Landroid/os/Bundle;
invoke-static {p1, v1, p3, v2}, Landroid/content/pm/PackageParser;->copyNeeded(ILandroid/content/pm/PackageParser$Package;ILandroid/os/Bundle;)Z
move-result v1
if-nez v1, :cond_1d
iget-object v1, p0, Landroid/content/pm/PackageParser$Service;->info:Landroid/content/pm/ServiceInfo;
iget-object v1, v1, Landroid/content/pm/ServiceInfo;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v1, v1, Landroid/content/pm/ApplicationInfo;->uid:I
invoke-static {v1}, Landroid/os/UserId;->getUserId(I)I
move-result v1
if-ne p4, v1, :cond_1d
.line 3584
iget-object v0, p0, Landroid/content/pm/PackageParser$Service;->info:Landroid/content/pm/ServiceInfo;
goto :goto_3
.line 3587
:cond_1d
new-instance v0, Landroid/content/pm/ServiceInfo;
iget-object v1, p0, Landroid/content/pm/PackageParser$Service;->info:Landroid/content/pm/ServiceInfo;
invoke-direct {v0, v1}, Landroid/content/pm/ServiceInfo;-><init>(Landroid/content/pm/ServiceInfo;)V
.line 3588
.local v0, "si":Landroid/content/pm/ServiceInfo;
iget-object v1, p0, Landroid/content/pm/PackageParser$Service;->metaData:Landroid/os/Bundle;
iput-object v1, v0, Landroid/content/pm/ServiceInfo;->metaData:Landroid/os/Bundle;
.line 3589
iget-object v1, p0, Landroid/content/pm/PackageParser$Service;->owner:Landroid/content/pm/PackageParser$Package;
invoke-static {v1, p1, p2, p3, p4}, Landroid/content/pm/PackageParser;->generateApplicationInfo(Landroid/content/pm/PackageParser$Package;IZII)Landroid/content/pm/ApplicationInfo;
move-result-object v1
iput-object v1, v0, Landroid/content/pm/ServiceInfo;->applicationInfo:Landroid/content/pm/ApplicationInfo;
goto :goto_3
.end method
.method private static final isPackageFilename(Ljava/lang/String;)Z
.registers 2
.param p0, "name" # Ljava/lang/String;
.prologue
.line 252
const-string v0, ".apk"
invoke-virtual {p0, v0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v0
return v0
.end method
.method private loadCertificates(Ljava/util/jar/JarFile;Ljava/util/jar/JarEntry;[B)[Ljava/security/cert/Certificate;
.registers 10
.param p1, "jarFile" # Ljava/util/jar/JarFile;
.param p2, "je" # Ljava/util/jar/JarEntry;
.param p3, "readBuffer" # [B
.prologue
const/4 v2, 0x0
.line 444
:try_start_1
new-instance v1, Ljava/io/BufferedInputStream;
invoke-virtual {p1, p2}, Ljava/util/jar/JarFile;->getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
move-result-object v3
invoke-direct {v1, v3}, Ljava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;)V
.line 445
.local v1, "is":Ljava/io/InputStream;
:cond_a
const/4 v3, 0x0
array-length v4, p3
invoke-virtual {v1, p3, v3, v4}, Ljava/io/InputStream;->read([BII)I
move-result v3
const/4 v4, -0x1
if-ne v3, v4, :cond_a
.line 448
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
.line 449
if-eqz p2, :cond_1c
invoke-virtual {p2}, Ljava/util/jar/JarEntry;->getCertificates()[Ljava/security/cert/Certificate;
:try_end_1b
.catch Ljava/io/IOException; {:try_start_1 .. :try_end_1b} :catch_1d
.catch Ljava/lang/RuntimeException; {:try_start_1 .. :try_end_1b} :catch_49
move-result-object v2
.line 457
.end local v1 # "is":Ljava/io/InputStream;
:cond_1c
:goto_1c
return-object v2
.line 450
:catch_1d
move-exception v0
.line 451
.local v0, "e":Ljava/io/IOException;
const-string v3, "PackageParser"
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "Exception reading "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {p2}, Ljava/util/jar/JarEntry;->getName()Ljava/lang/String;
move-result-object v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v5, " in "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {p1}, Ljava/util/jar/JarFile;->getName()Ljava/lang/String;
move-result-object v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-static {v3, v4, v0}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
goto :goto_1c
.line 453
.end local v0 # "e":Ljava/io/IOException;
:catch_49
move-exception v0
.line 454
.local v0, "e":Ljava/lang/RuntimeException;
const-string v3, "PackageParser"
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "Exception reading "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {p2}, Ljava/util/jar/JarEntry;->getName()Ljava/lang/String;
move-result-object v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v5, " in "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {p1}, Ljava/util/jar/JarFile;->getName()Ljava/lang/String;
move-result-object v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-static {v3, v4, v0}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
goto :goto_1c
.end method
.method private parseActivity(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;I[Ljava/lang/String;ZZ)Landroid/content/pm/PackageParser$Activity;
.registers 31
.param p1, "owner" # Landroid/content/pm/PackageParser$Package;
.param p2, "res" # Landroid/content/res/Resources;
.param p3, "parser" # Lorg/xmlpull/v1/XmlPullParser;
.param p4, "attrs" # Landroid/util/AttributeSet;
.param p5, "flags" # I
.param p6, "outError" # [Ljava/lang/String;
.param p7, "receiver" # Z
.param p8, "hardwareAccelerated" # Z
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/xmlpull/v1/XmlPullParserException;,
Ljava/io/IOException;
}
.end annotation
.prologue
.line 2027
sget-object v2, Lcom/android/internal/R$styleable;->AndroidManifestActivity:[I
move-object/from16 v0, p2
move-object/from16 v1, p4
invoke-virtual {v0, v1, v2}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v18
.line 2030
.local v18, "sa":Landroid/content/res/TypedArray;
move-object/from16 v0, p0
iget-object v2, v0, Landroid/content/pm/PackageParser;->mParseActivityArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
if-nez v2, :cond_2a
.line 2031
new-instance v2, Landroid/content/pm/PackageParser$ParseComponentArgs;
const/4 v5, 0x3
const/4 v6, 0x1
const/4 v7, 0x2
const/16 v8, 0x17
move-object/from16 v0, p0
iget-object v9, v0, Landroid/content/pm/PackageParser;->mSeparateProcesses:[Ljava/lang/String;
const/4 v10, 0x7
const/16 v11, 0x11
const/4 v12, 0x5
move-object/from16 v3, p1
move-object/from16 v4, p6
invoke-direct/range {v2 .. v12}, Landroid/content/pm/PackageParser$ParseComponentArgs;-><init>(Landroid/content/pm/PackageParser$Package;[Ljava/lang/String;IIII[Ljava/lang/String;III)V
move-object/from16 v0, p0
iput-object v2, v0, Landroid/content/pm/PackageParser;->mParseActivityArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
.line 2042
:cond_2a
move-object/from16 v0, p0
iget-object v3, v0, Landroid/content/pm/PackageParser;->mParseActivityArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
if-eqz p7, :cond_5c
const-string v2, "<receiver>"
:goto_32
iput-object v2, v3, Landroid/content/pm/PackageParser$ParseComponentArgs;->tag:Ljava/lang/String;
.line 2043
move-object/from16 v0, p0
iget-object v2, v0, Landroid/content/pm/PackageParser;->mParseActivityArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
move-object/from16 v0, v18
iput-object v0, v2, Landroid/content/pm/PackageParser$ParseComponentArgs;->sa:Landroid/content/res/TypedArray;
.line 2044
move-object/from16 v0, p0
iget-object v2, v0, Landroid/content/pm/PackageParser;->mParseActivityArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
move/from16 v0, p5
iput v0, v2, Landroid/content/pm/PackageParser$ParseComponentArgs;->flags:I
.line 2046
new-instance v14, Landroid/content/pm/PackageParser$Activity;
move-object/from16 v0, p0
iget-object v2, v0, Landroid/content/pm/PackageParser;->mParseActivityArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
new-instance v3, Landroid/content/pm/ActivityInfo;
invoke-direct {v3}, Landroid/content/pm/ActivityInfo;-><init>()V
invoke-direct {v14, v2, v3}, Landroid/content/pm/PackageParser$Activity;-><init>(Landroid/content/pm/PackageParser$ParseComponentArgs;Landroid/content/pm/ActivityInfo;)V
.line 2047
.local v14, "a":Landroid/content/pm/PackageParser$Activity;
const/4 v2, 0x0
aget-object v2, p6, v2
if-eqz v2, :cond_5f
.line 2048
invoke-virtual/range {v18 .. v18}, Landroid/content/res/TypedArray;->recycle()V
.line 2049
const/4 v14, 0x0
.line 2247
.end local v14 # "a":Landroid/content/pm/PackageParser$Activity;
:cond_5b
:goto_5b
return-object v14
.line 2042
:cond_5c
const-string v2, "<activity>"
goto :goto_32
.line 2052
.restart local v14 # "a":Landroid/content/pm/PackageParser$Activity;
:cond_5f
const/4 v2, 0x6
move-object/from16 v0, v18
invoke-virtual {v0, v2}, Landroid/content/res/TypedArray;->hasValue(I)Z
move-result v19
.line 2054
.local v19, "setExported":Z
if-eqz v19, :cond_74
.line 2055
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
const/4 v3, 0x6
const/4 v4, 0x0
move-object/from16 v0, v18
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
iput-boolean v3, v2, Landroid/content/pm/ActivityInfo;->exported:Z
.line 2059
:cond_74
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
const/4 v3, 0x0
const/4 v4, 0x0
move-object/from16 v0, v18
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getResourceId(II)I
move-result v3
iput v3, v2, Landroid/content/pm/ActivityInfo;->theme:I
.line 2062
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
const/16 v3, 0x1a
iget-object v4, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget-object v4, v4, Landroid/content/pm/ActivityInfo;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v4, v4, Landroid/content/pm/ApplicationInfo;->uiOptions:I
move-object/from16 v0, v18
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getInt(II)I
move-result v3
iput v3, v2, Landroid/content/pm/ActivityInfo;->uiOptions:I
.line 2066
const/16 v2, 0x1b
const/4 v3, 0x0
move-object/from16 v0, v18
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v17
.line 2068
.local v17, "parentName":Ljava/lang/String;
if-eqz v17, :cond_b4
.line 2069
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget-object v2, v2, Landroid/content/pm/ActivityInfo;->packageName:Ljava/lang/String;
move-object/from16 v0, v17
move-object/from16 v1, p6
invoke-static {v2, v0, v1}, Landroid/content/pm/PackageParser;->buildClassName(Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/String;)Ljava/lang/String;
move-result-object v16
.line 2070
.local v16, "parentClassName":Ljava/lang/String;
const/4 v2, 0x0
aget-object v2, p6, v2
if-nez v2, :cond_227
.line 2071
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
move-object/from16 v0, v16
iput-object v0, v2, Landroid/content/pm/ActivityInfo;->parentActivityName:Ljava/lang/String;
.line 2080
.end local v16 # "parentClassName":Ljava/lang/String;
:cond_b4
:goto_b4
const/4 v2, 0x4
const/4 v3, 0x0
move-object/from16 v0, v18
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v20
.line 2082
.local v20, "str":Ljava/lang/String;
if-nez v20, :cond_255
.line 2083
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget-object v3, v3, Landroid/content/pm/ApplicationInfo;->permission:Ljava/lang/String;
iput-object v3, v2, Landroid/content/pm/ActivityInfo;->permission:Ljava/lang/String;
.line 2088
:goto_c8
const/16 v2, 0x8
const/4 v3, 0x0
move-object/from16 v0, v18
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v20
.line 2090
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget-object v3, v3, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
move-object/from16 v0, p1
iget-object v4, v0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget-object v4, v4, Landroid/content/pm/ApplicationInfo;->taskAffinity:Ljava/lang/String;
move-object/from16 v0, v20
move-object/from16 v1, p6
invoke-static {v3, v4, v0, v1}, Landroid/content/pm/PackageParser;->buildTaskAffinityName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
iput-object v3, v2, Landroid/content/pm/ActivityInfo;->taskAffinity:Ljava/lang/String;
.line 2093
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
const/4 v3, 0x0
iput v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
.line 2094
const/16 v2, 0x9
const/4 v3, 0x0
move-object/from16 v0, v18
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v2
if-eqz v2, :cond_101
.line 2097
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
or-int/lit8 v3, v3, 0x1
iput v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
.line 2100
:cond_101
const/16 v2, 0xa
const/4 v3, 0x0
move-object/from16 v0, v18
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v2
if-eqz v2, :cond_114
.line 2103
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
or-int/lit8 v3, v3, 0x2
iput v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
.line 2106
:cond_114
const/16 v2, 0xb
const/4 v3, 0x0
move-object/from16 v0, v18
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v2
if-eqz v2, :cond_127
.line 2109
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
or-int/lit8 v3, v3, 0x4
iput v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
.line 2112
:cond_127
const/16 v2, 0x15
const/4 v3, 0x0
move-object/from16 v0, v18
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v2
if-eqz v2, :cond_13a
.line 2115
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
or-int/lit16 v3, v3, 0x80
iput v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
.line 2118
:cond_13a
const/16 v2, 0x12
const/4 v3, 0x0
move-object/from16 v0, v18
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v2
if-eqz v2, :cond_14d
.line 2121
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
or-int/lit8 v3, v3, 0x8
iput v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
.line 2124
:cond_14d
const/16 v2, 0xc
const/4 v3, 0x0
move-object/from16 v0, v18
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v2
if-eqz v2, :cond_160
.line 2127
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
or-int/lit8 v3, v3, 0x10
iput v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
.line 2130
:cond_160
const/16 v2, 0xd
const/4 v3, 0x0
move-object/from16 v0, v18
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v2
if-eqz v2, :cond_173
.line 2133
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
or-int/lit8 v3, v3, 0x20
iput v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
.line 2136
:cond_173
const/16 v3, 0x13
move-object/from16 v0, p1
iget-object v2, v0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v2, v2, Landroid/content/pm/ApplicationInfo;->flags:I
and-int/lit8 v2, v2, 0x20
if-eqz v2, :cond_26b
const/4 v2, 0x1
:goto_180
move-object/from16 v0, v18
invoke-virtual {v0, v3, v2}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v2
if-eqz v2, :cond_190
.line 2139
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
or-int/lit8 v3, v3, 0x40
iput v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
.line 2142
:cond_190
const/16 v2, 0x16
const/4 v3, 0x0
move-object/from16 v0, v18
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v2
if-eqz v2, :cond_1a3
.line 2145
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
or-int/lit16 v3, v3, 0x100
iput v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
.line 2148
:cond_1a3
const/16 v2, 0x18
const/4 v3, 0x0
move-object/from16 v0, v18
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v2
if-eqz v2, :cond_1b6
.line 2151
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
or-int/lit16 v3, v3, 0x400
iput v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
.line 2154
:cond_1b6
if-nez p7, :cond_26e
.line 2155
const/16 v2, 0x19
move-object/from16 v0, v18
move/from16 v1, p8
invoke-virtual {v0, v2, v1}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v2
if-eqz v2, :cond_1cc
.line 2158
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
or-int/lit16 v3, v3, 0x200
iput v3, v2, Landroid/content/pm/ActivityInfo;->flags:I
.line 2161
:cond_1cc
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
const/16 v3, 0xe
const/4 v4, 0x0
move-object/from16 v0, v18
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getInt(II)I
move-result v3
iput v3, v2, Landroid/content/pm/ActivityInfo;->launchMode:I
.line 2164
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
const/16 v3, 0xf
const/4 v4, -0x1
move-object/from16 v0, v18
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getInt(II)I
move-result v3
iput v3, v2, Landroid/content/pm/ActivityInfo;->screenOrientation:I
.line 2167
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
const/16 v3, 0x10
const/4 v4, 0x0
move-object/from16 v0, v18
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getInt(II)I
move-result v3
iput v3, v2, Landroid/content/pm/ActivityInfo;->configChanges:I
.line 2170
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
const/16 v3, 0x14
const/4 v4, 0x0
move-object/from16 v0, v18
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getInt(II)I
move-result v3
iput v3, v2, Landroid/content/pm/ActivityInfo;->softInputMode:I
.line 2178
:goto_200
invoke-virtual/range {v18 .. v18}, Landroid/content/res/TypedArray;->recycle()V
.line 2180
if-eqz p7, :cond_21f
move-object/from16 v0, p1
iget-object v2, v0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v2, v2, Landroid/content/pm/ApplicationInfo;->flags:I
const/high16 v3, 0x10000000
and-int/2addr v2, v3
if-eqz v2, :cond_21f
.line 2183
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget-object v2, v2, Landroid/content/pm/ActivityInfo;->processName:Ljava/lang/String;
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->packageName:Ljava/lang/String;
if-ne v2, v3, :cond_21f
.line 2184
const/4 v2, 0x0
const-string v3, "Heavy-weight applications can not have receivers in main process"
aput-object v3, p6, v2
.line 2188
:cond_21f
const/4 v2, 0x0
aget-object v2, p6, v2
if-eqz v2, :cond_279
.line 2189
const/4 v14, 0x0
goto/16 :goto_5b
.line 2073
.end local v20 # "str":Ljava/lang/String;
.restart local v16 # "parentClassName":Ljava/lang/String;
:cond_227
const-string v2, "PackageParser"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Activity "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
iget-object v4, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget-object v4, v4, Landroid/content/pm/ActivityInfo;->name:Ljava/lang/String;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " specified invalid parentActivityName "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
move-object/from16 v0, v17
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 2075
const/4 v2, 0x0
const/4 v3, 0x0
aput-object v3, p6, v2
goto/16 :goto_b4
.line 2085
.end local v16 # "parentClassName":Ljava/lang/String;
.restart local v20 # "str":Ljava/lang/String;
:cond_255
iget-object v3, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
invoke-virtual/range {v20 .. v20}, Ljava/lang/String;->length()I
move-result v2
if-lez v2, :cond_269
invoke-virtual/range {v20 .. v20}, Ljava/lang/String;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v2
:goto_265
iput-object v2, v3, Landroid/content/pm/ActivityInfo;->permission:Ljava/lang/String;
goto/16 :goto_c8
:cond_269
const/4 v2, 0x0
goto :goto_265
.line 2136
:cond_26b
const/4 v2, 0x0
goto/16 :goto_180
.line 2174
:cond_26e
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
const/4 v3, 0x0
iput v3, v2, Landroid/content/pm/ActivityInfo;->launchMode:I
.line 2175
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
const/4 v3, 0x0
iput v3, v2, Landroid/content/pm/ActivityInfo;->configChanges:I
goto :goto_200
.line 2192
:cond_279
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v15
.line 2195
.local v15, "outerDepth":I
:cond_27d
:goto_27d
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->next()I
move-result v21
.local v21, "type":I
const/4 v2, 0x1
move/from16 v0, v21
if-eq v0, v2, :cond_3ba
const/4 v2, 0x3
move/from16 v0, v21
if-ne v0, v2, :cond_291
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v2
if-le v2, v15, :cond_3ba
.line 2197
:cond_291
const/4 v2, 0x3
move/from16 v0, v21
if-eq v0, v2, :cond_27d
const/4 v2, 0x4
move/from16 v0, v21
if-eq v0, v2, :cond_27d
.line 2201
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v2
const-string v3, "intent-filter"
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_2fd
.line 2202
new-instance v7, Landroid/content/pm/PackageParser$ActivityIntentInfo;
invoke-direct {v7, v14}, Landroid/content/pm/PackageParser$ActivityIntentInfo;-><init>(Landroid/content/pm/PackageParser$Activity;)V
.line 2203
.local v7, "intent":Landroid/content/pm/PackageParser$ActivityIntentInfo;
if-nez p7, :cond_2c4
const/4 v9, 0x1
:goto_2af
move-object/from16 v2, p0
move-object/from16 v3, p2
move-object/from16 v4, p3
move-object/from16 v5, p4
move/from16 v6, p5
move-object/from16 v8, p6
invoke-direct/range {v2 .. v9}, Landroid/content/pm/PackageParser;->parseIntent(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;ILandroid/content/pm/PackageParser$IntentInfo;[Ljava/lang/String;Z)Z
move-result v2
if-nez v2, :cond_2c6
.line 2204
const/4 v14, 0x0
goto/16 :goto_5b
.line 2203
:cond_2c4
const/4 v9, 0x0
goto :goto_2af
.line 2206
:cond_2c6
invoke-virtual {v7}, Landroid/content/pm/PackageParser$ActivityIntentInfo;->countActions()I
move-result v2
if-nez v2, :cond_2f7
.line 2207
const-string v2, "PackageParser"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "No actions in intent filter at "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
move-object/from16 v0, p0
iget-object v4, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getPositionDescription()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_27d
.line 2211
:cond_2f7
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->intents:Ljava/util/ArrayList;
invoke-virtual {v2, v7}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_27d
.line 2213
.end local v7 # "intent":Landroid/content/pm/PackageParser$ActivityIntentInfo;
:cond_2fd
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v2
const-string v3, "meta-data"
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_320
.line 2214
iget-object v12, v14, Landroid/content/pm/PackageParser$Activity;->metaData:Landroid/os/Bundle;
move-object/from16 v8, p0
move-object/from16 v9, p2
move-object/from16 v10, p3
move-object/from16 v11, p4
move-object/from16 v13, p6
invoke-direct/range {v8 .. v13}, Landroid/content/pm/PackageParser;->parseMetaData(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/os/Bundle;[Ljava/lang/String;)Landroid/os/Bundle;
move-result-object v2
iput-object v2, v14, Landroid/content/pm/PackageParser$Activity;->metaData:Landroid/os/Bundle;
if-nez v2, :cond_27d
.line 2216
const/4 v14, 0x0
goto/16 :goto_5b
.line 2220
:cond_320
const-string v2, "PackageParser"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Problem in package "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
move-object/from16 v0, p0
iget-object v4, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, ":"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 2221
if-eqz p7, :cond_381
.line 2222
const-string v2, "PackageParser"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Unknown element under <receiver>: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " at "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
move-object/from16 v0, p0
iget-object v4, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getPositionDescription()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 2230
:goto_37c
invoke-static/range {p3 .. p3}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_27d
.line 2226
:cond_381
const-string v2, "PackageParser"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Unknown element under <activity>: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " at "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
move-object/from16 v0, p0
iget-object v4, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getPositionDescription()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_37c
.line 2243
:cond_3ba
if-nez v19, :cond_5b
.line 2244
iget-object v3, v14, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget-object v2, v14, Landroid/content/pm/PackageParser$Activity;->intents:Ljava/util/ArrayList;
invoke-virtual {v2}, Ljava/util/ArrayList;->size()I
move-result v2
if-lez v2, :cond_3cb
const/4 v2, 0x1
:goto_3c7
iput-boolean v2, v3, Landroid/content/pm/ActivityInfo;->exported:Z
goto/16 :goto_5b
:cond_3cb
const/4 v2, 0x0
goto :goto_3c7
.end method
.method private parseActivityAlias(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;I[Ljava/lang/String;)Landroid/content/pm/PackageParser$Activity;
.registers 35
.param p1, "owner" # Landroid/content/pm/PackageParser$Package;
.param p2, "res" # Landroid/content/res/Resources;
.param p3, "parser" # Lorg/xmlpull/v1/XmlPullParser;
.param p4, "attrs" # Landroid/util/AttributeSet;
.param p5, "flags" # I
.param p6, "outError" # [Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/xmlpull/v1/XmlPullParserException;,
Ljava/io/IOException;
}
.end annotation
.prologue
.line 2253
sget-object v2, Lcom/android/internal/R$styleable;->AndroidManifestActivityAlias:[I
move-object/from16 v0, p2
move-object/from16 v1, p4
invoke-virtual {v0, v1, v2}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v21
.line 2256
.local v21, "sa":Landroid/content/res/TypedArray;
const/4 v2, 0x7
const/4 v3, 0x0
move-object/from16 v0, v21
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v26
.line 2258
.local v26, "targetActivity":Ljava/lang/String;
if-nez v26, :cond_1e
.line 2259
const/4 v2, 0x0
const-string v3, "<activity-alias> does not specify android:targetActivity"
aput-object v3, p6, v2
.line 2260
invoke-virtual/range {v21 .. v21}, Landroid/content/res/TypedArray;->recycle()V
.line 2261
const/4 v15, 0x0
.line 2409
:cond_1d
:goto_1d
return-object v15
.line 2264
:cond_1e
move-object/from16 v0, p1
iget-object v2, v0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget-object v2, v2, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
move-object/from16 v0, v26
move-object/from16 v1, p6
invoke-static {v2, v0, v1}, Landroid/content/pm/PackageParser;->buildClassName(Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/String;)Ljava/lang/String;
move-result-object v26
.line 2266
if-nez v26, :cond_33
.line 2267
invoke-virtual/range {v21 .. v21}, Landroid/content/res/TypedArray;->recycle()V
.line 2268
const/4 v15, 0x0
goto :goto_1d
.line 2271
:cond_33
move-object/from16 v0, p0
iget-object v2, v0, Landroid/content/pm/PackageParser;->mParseActivityAliasArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
if-nez v2, :cond_5a
.line 2272
new-instance v2, Landroid/content/pm/PackageParser$ParseComponentArgs;
const/4 v5, 0x2
const/4 v6, 0x0
const/4 v7, 0x1
const/16 v8, 0x8
move-object/from16 v0, p0
iget-object v9, v0, Landroid/content/pm/PackageParser;->mSeparateProcesses:[Ljava/lang/String;
const/4 v10, 0x0
const/4 v11, 0x6
const/4 v12, 0x4
move-object/from16 v3, p1
move-object/from16 v4, p6
invoke-direct/range {v2 .. v12}, Landroid/content/pm/PackageParser$ParseComponentArgs;-><init>(Landroid/content/pm/PackageParser$Package;[Ljava/lang/String;IIII[Ljava/lang/String;III)V
move-object/from16 v0, p0
iput-object v2, v0, Landroid/content/pm/PackageParser;->mParseActivityAliasArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
.line 2281
move-object/from16 v0, p0
iget-object v2, v0, Landroid/content/pm/PackageParser;->mParseActivityAliasArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
const-string v3, "<activity-alias>"
iput-object v3, v2, Landroid/content/pm/PackageParser$ParseComponentArgs;->tag:Ljava/lang/String;
.line 2284
:cond_5a
move-object/from16 v0, p0
iget-object v2, v0, Landroid/content/pm/PackageParser;->mParseActivityAliasArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
move-object/from16 v0, v21
iput-object v0, v2, Landroid/content/pm/PackageParser$ParseComponentArgs;->sa:Landroid/content/res/TypedArray;
.line 2285
move-object/from16 v0, p0
iget-object v2, v0, Landroid/content/pm/PackageParser;->mParseActivityAliasArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
move/from16 v0, p5
iput v0, v2, Landroid/content/pm/PackageParser$ParseComponentArgs;->flags:I
.line 2287
const/16 v25, 0x0
.line 2289
.local v25, "target":Landroid/content/pm/PackageParser$Activity;
move-object/from16 v0, p1
iget-object v2, v0, Landroid/content/pm/PackageParser$Package;->activities:Ljava/util/ArrayList;
invoke-virtual {v2}, Ljava/util/ArrayList;->size()I
move-result v14
.line 2290
.local v14, "NA":I
const/16 v16, 0x0
.local v16, "i":I
:goto_76
move/from16 v0, v16
if-ge v0, v14, :cond_96
.line 2291
move-object/from16 v0, p1
iget-object v2, v0, Landroid/content/pm/PackageParser$Package;->activities:Ljava/util/ArrayList;
move/from16 v0, v16
invoke-virtual {v2, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v24
check-cast v24, Landroid/content/pm/PackageParser$Activity;
.line 2292
.local v24, "t":Landroid/content/pm/PackageParser$Activity;
move-object/from16 v0, v24
iget-object v2, v0, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget-object v2, v2, Landroid/content/pm/ActivityInfo;->name:Ljava/lang/String;
move-object/from16 v0, v26
invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_bc
.line 2293
move-object/from16 v25, v24
.line 2298
.end local v24 # "t":Landroid/content/pm/PackageParser$Activity;
:cond_96
if-nez v25, :cond_bf
.line 2299
const/4 v2, 0x0
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "<activity-alias> target activity "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
move-object/from16 v0, v26
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " not found in manifest"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
aput-object v3, p6, v2
.line 2301
invoke-virtual/range {v21 .. v21}, Landroid/content/res/TypedArray;->recycle()V
.line 2302
const/4 v15, 0x0
goto/16 :goto_1d
.line 2290
.restart local v24 # "t":Landroid/content/pm/PackageParser$Activity;
:cond_bc
add-int/lit8 v16, v16, 0x1
goto :goto_76
.line 2305
.end local v24 # "t":Landroid/content/pm/PackageParser$Activity;
:cond_bf
new-instance v17, Landroid/content/pm/ActivityInfo;
invoke-direct/range {v17 .. v17}, Landroid/content/pm/ActivityInfo;-><init>()V
.line 2306
.local v17, "info":Landroid/content/pm/ActivityInfo;
move-object/from16 v0, v26
move-object/from16 v1, v17
iput-object v0, v1, Landroid/content/pm/ActivityInfo;->targetActivity:Ljava/lang/String;
.line 2307
move-object/from16 v0, v25
iget-object v2, v0, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v2, v2, Landroid/content/pm/ActivityInfo;->configChanges:I
move-object/from16 v0, v17
iput v2, v0, Landroid/content/pm/ActivityInfo;->configChanges:I
.line 2308
move-object/from16 v0, v25
iget-object v2, v0, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v2, v2, Landroid/content/pm/ActivityInfo;->flags:I
move-object/from16 v0, v17
iput v2, v0, Landroid/content/pm/ActivityInfo;->flags:I
.line 2309
move-object/from16 v0, v25
iget-object v2, v0, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v2, v2, Landroid/content/pm/ActivityInfo;->icon:I
move-object/from16 v0, v17
iput v2, v0, Landroid/content/pm/ActivityInfo;->icon:I
.line 2310
move-object/from16 v0, v25
iget-object v2, v0, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v2, v2, Landroid/content/pm/ActivityInfo;->logo:I
move-object/from16 v0, v17
iput v2, v0, Landroid/content/pm/ActivityInfo;->logo:I
.line 2311
move-object/from16 v0, v25
iget-object v2, v0, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v2, v2, Landroid/content/pm/ActivityInfo;->labelRes:I
move-object/from16 v0, v17
iput v2, v0, Landroid/content/pm/ActivityInfo;->labelRes:I
.line 2312
move-object/from16 v0, v25
iget-object v2, v0, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget-object v2, v2, Landroid/content/pm/ActivityInfo;->nonLocalizedLabel:Ljava/lang/CharSequence;
move-object/from16 v0, v17
iput-object v2, v0, Landroid/content/pm/ActivityInfo;->nonLocalizedLabel:Ljava/lang/CharSequence;
.line 2313
move-object/from16 v0, v25
iget-object v2, v0, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v2, v2, Landroid/content/pm/ActivityInfo;->launchMode:I
move-object/from16 v0, v17
iput v2, v0, Landroid/content/pm/ActivityInfo;->launchMode:I
.line 2314
move-object/from16 v0, v25
iget-object v2, v0, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget-object v2, v2, Landroid/content/pm/ActivityInfo;->processName:Ljava/lang/String;
move-object/from16 v0, v17
iput-object v2, v0, Landroid/content/pm/ActivityInfo;->processName:Ljava/lang/String;
.line 2315
move-object/from16 v0, v17
iget v2, v0, Landroid/content/pm/ActivityInfo;->descriptionRes:I
if-nez v2, :cond_12a
.line 2316
move-object/from16 v0, v25
iget-object v2, v0, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v2, v2, Landroid/content/pm/ActivityInfo;->descriptionRes:I
move-object/from16 v0, v17
iput v2, v0, Landroid/content/pm/ActivityInfo;->descriptionRes:I
.line 2318
:cond_12a
move-object/from16 v0, v25
iget-object v2, v0, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v2, v2, Landroid/content/pm/ActivityInfo;->screenOrientation:I
move-object/from16 v0, v17
iput v2, v0, Landroid/content/pm/ActivityInfo;->screenOrientation:I
.line 2319
move-object/from16 v0, v25
iget-object v2, v0, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget-object v2, v2, Landroid/content/pm/ActivityInfo;->taskAffinity:Ljava/lang/String;
move-object/from16 v0, v17
iput-object v2, v0, Landroid/content/pm/ActivityInfo;->taskAffinity:Ljava/lang/String;
.line 2320
move-object/from16 v0, v25
iget-object v2, v0, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v2, v2, Landroid/content/pm/ActivityInfo;->theme:I
move-object/from16 v0, v17
iput v2, v0, Landroid/content/pm/ActivityInfo;->theme:I
.line 2321
move-object/from16 v0, v25
iget-object v2, v0, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v2, v2, Landroid/content/pm/ActivityInfo;->softInputMode:I
move-object/from16 v0, v17
iput v2, v0, Landroid/content/pm/ActivityInfo;->softInputMode:I
.line 2322
move-object/from16 v0, v25
iget-object v2, v0, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget v2, v2, Landroid/content/pm/ActivityInfo;->uiOptions:I
move-object/from16 v0, v17
iput v2, v0, Landroid/content/pm/ActivityInfo;->uiOptions:I
.line 2323
move-object/from16 v0, v25
iget-object v2, v0, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget-object v2, v2, Landroid/content/pm/ActivityInfo;->parentActivityName:Ljava/lang/String;
move-object/from16 v0, v17
iput-object v2, v0, Landroid/content/pm/ActivityInfo;->parentActivityName:Ljava/lang/String;
.line 2325
new-instance v15, Landroid/content/pm/PackageParser$Activity;
move-object/from16 v0, p0
iget-object v2, v0, Landroid/content/pm/PackageParser;->mParseActivityAliasArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
move-object/from16 v0, v17
invoke-direct {v15, v2, v0}, Landroid/content/pm/PackageParser$Activity;-><init>(Landroid/content/pm/PackageParser$ParseComponentArgs;Landroid/content/pm/ActivityInfo;)V
.line 2326
.local v15, "a":Landroid/content/pm/PackageParser$Activity;
const/4 v2, 0x0
aget-object v2, p6, v2
if-eqz v2, :cond_17c
.line 2327
invoke-virtual/range {v21 .. v21}, Landroid/content/res/TypedArray;->recycle()V
.line 2328
const/4 v15, 0x0
goto/16 :goto_1d
.line 2331
:cond_17c
const/4 v2, 0x5
move-object/from16 v0, v21
invoke-virtual {v0, v2}, Landroid/content/res/TypedArray;->hasValue(I)Z
move-result v22
.line 2333
.local v22, "setExported":Z
if-eqz v22, :cond_191
.line 2334
iget-object v2, v15, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
const/4 v3, 0x5
const/4 v4, 0x0
move-object/from16 v0, v21
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
iput-boolean v3, v2, Landroid/content/pm/ActivityInfo;->exported:Z
.line 2339
:cond_191
const/4 v2, 0x3
const/4 v3, 0x0
move-object/from16 v0, v21
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v23
.line 2341
.local v23, "str":Ljava/lang/String;
if-eqz v23, :cond_1ad
.line 2342
iget-object v3, v15, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
invoke-virtual/range {v23 .. v23}, Ljava/lang/String;->length()I
move-result v2
if-lez v2, :cond_1da
invoke-virtual/range {v23 .. v23}, Ljava/lang/String;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v2
:goto_1ab
iput-object v2, v3, Landroid/content/pm/ActivityInfo;->permission:Ljava/lang/String;
.line 2345
:cond_1ad
const/16 v2, 0x9
const/4 v3, 0x0
move-object/from16 v0, v21
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v20
.line 2348
.local v20, "parentName":Ljava/lang/String;
if-eqz v20, :cond_1cf
.line 2349
iget-object v2, v15, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget-object v2, v2, Landroid/content/pm/ActivityInfo;->packageName:Ljava/lang/String;
move-object/from16 v0, v20
move-object/from16 v1, p6
invoke-static {v2, v0, v1}, Landroid/content/pm/PackageParser;->buildClassName(Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/String;)Ljava/lang/String;
move-result-object v19
.line 2350
.local v19, "parentClassName":Ljava/lang/String;
const/4 v2, 0x0
aget-object v2, p6, v2
if-nez v2, :cond_1dc
.line 2351
iget-object v2, v15, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
move-object/from16 v0, v19
iput-object v0, v2, Landroid/content/pm/ActivityInfo;->parentActivityName:Ljava/lang/String;
.line 2359
.end local v19 # "parentClassName":Ljava/lang/String;
:cond_1cf
:goto_1cf
invoke-virtual/range {v21 .. v21}, Landroid/content/res/TypedArray;->recycle()V
.line 2361
const/4 v2, 0x0
aget-object v2, p6, v2
if-eqz v2, :cond_209
.line 2362
const/4 v15, 0x0
goto/16 :goto_1d
.line 2342
.end local v20 # "parentName":Ljava/lang/String;
:cond_1da
const/4 v2, 0x0
goto :goto_1ab
.line 2353
.restart local v19 # "parentClassName":Ljava/lang/String;
.restart local v20 # "parentName":Ljava/lang/String;
:cond_1dc
const-string v2, "PackageParser"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Activity alias "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
iget-object v4, v15, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget-object v4, v4, Landroid/content/pm/ActivityInfo;->name:Ljava/lang/String;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " specified invalid parentActivityName "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
move-object/from16 v0, v20
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 2355
const/4 v2, 0x0
const/4 v3, 0x0
aput-object v3, p6, v2
goto :goto_1cf
.line 2365
.end local v19 # "parentClassName":Ljava/lang/String;
:cond_209
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v18
.line 2368
.local v18, "outerDepth":I
:cond_20d
:goto_20d
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->next()I
move-result v27
.local v27, "type":I
const/4 v2, 0x1
move/from16 v0, v27
if-eq v0, v2, :cond_2eb
const/4 v2, 0x3
move/from16 v0, v27
if-ne v0, v2, :cond_223
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v2
move/from16 v0, v18
if-le v2, v0, :cond_2eb
.line 2370
:cond_223
const/4 v2, 0x3
move/from16 v0, v27
if-eq v0, v2, :cond_20d
const/4 v2, 0x4
move/from16 v0, v27
if-eq v0, v2, :cond_20d
.line 2374
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v2
const-string v3, "intent-filter"
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_28b
.line 2375
new-instance v7, Landroid/content/pm/PackageParser$ActivityIntentInfo;
invoke-direct {v7, v15}, Landroid/content/pm/PackageParser$ActivityIntentInfo;-><init>(Landroid/content/pm/PackageParser$Activity;)V
.line 2376
.local v7, "intent":Landroid/content/pm/PackageParser$ActivityIntentInfo;
const/4 v9, 0x1
move-object/from16 v2, p0
move-object/from16 v3, p2
move-object/from16 v4, p3
move-object/from16 v5, p4
move/from16 v6, p5
move-object/from16 v8, p6
invoke-direct/range {v2 .. v9}, Landroid/content/pm/PackageParser;->parseIntent(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;ILandroid/content/pm/PackageParser$IntentInfo;[Ljava/lang/String;Z)Z
move-result v2
if-nez v2, :cond_254
.line 2377
const/4 v15, 0x0
goto/16 :goto_1d
.line 2379
:cond_254
invoke-virtual {v7}, Landroid/content/pm/PackageParser$ActivityIntentInfo;->countActions()I
move-result v2
if-nez v2, :cond_285
.line 2380
const-string v2, "PackageParser"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "No actions in intent filter at "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
move-object/from16 v0, p0
iget-object v4, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getPositionDescription()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_20d
.line 2384
:cond_285
iget-object v2, v15, Landroid/content/pm/PackageParser$Activity;->intents:Ljava/util/ArrayList;
invoke-virtual {v2, v7}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_20d
.line 2386
.end local v7 # "intent":Landroid/content/pm/PackageParser$ActivityIntentInfo;
:cond_28b
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v2
const-string v3, "meta-data"
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_2ae
.line 2387
iget-object v12, v15, Landroid/content/pm/PackageParser$Activity;->metaData:Landroid/os/Bundle;
move-object/from16 v8, p0
move-object/from16 v9, p2
move-object/from16 v10, p3
move-object/from16 v11, p4
move-object/from16 v13, p6
invoke-direct/range {v8 .. v13}, Landroid/content/pm/PackageParser;->parseMetaData(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/os/Bundle;[Ljava/lang/String;)Landroid/os/Bundle;
move-result-object v2
iput-object v2, v15, Landroid/content/pm/PackageParser$Activity;->metaData:Landroid/os/Bundle;
if-nez v2, :cond_20d
.line 2389
const/4 v15, 0x0
goto/16 :goto_1d
.line 2393
:cond_2ae
const-string v2, "PackageParser"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Unknown element under <activity-alias>: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " at "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
move-object/from16 v0, p0
iget-object v4, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getPositionDescription()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 2396
invoke-static/range {p3 .. p3}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_20d
.line 2405
:cond_2eb
if-nez v22, :cond_1d
.line 2406
iget-object v3, v15, Landroid/content/pm/PackageParser$Activity;->info:Landroid/content/pm/ActivityInfo;
iget-object v2, v15, Landroid/content/pm/PackageParser$Activity;->intents:Ljava/util/ArrayList;
invoke-virtual {v2}, Ljava/util/ArrayList;->size()I
move-result v2
if-lez v2, :cond_2fc
const/4 v2, 0x1
:goto_2f8
iput-boolean v2, v3, Landroid/content/pm/ActivityInfo;->exported:Z
goto/16 :goto_1d
:cond_2fc
const/4 v2, 0x0
goto :goto_2f8
.end method
.method private parseAllMetaData(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Ljava/lang/String;Landroid/content/pm/PackageParser$Component;[Ljava/lang/String;)Z
.registers 15
.param p1, "res" # Landroid/content/res/Resources;
.param p2, "parser" # Lorg/xmlpull/v1/XmlPullParser;
.param p3, "attrs" # Landroid/util/AttributeSet;
.param p4, "tag" # Ljava/lang/String;
.param p5, "outInfo" # Landroid/content/pm/PackageParser$Component;
.param p6, "outError" # [Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/xmlpull/v1/XmlPullParserException;,
Ljava/io/IOException;
}
.end annotation
.prologue
.line 2799
invoke-interface {p2}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v6
.line 2802
.local v6, "outerDepth":I
:cond_4
:goto_4
invoke-interface {p2}, Lorg/xmlpull/v1/XmlPullParser;->next()I
move-result v7
.local v7, "type":I
const/4 v0, 0x1
if-eq v7, v0, :cond_7b
const/4 v0, 0x3
if-ne v7, v0, :cond_14
invoke-interface {p2}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v0
if-le v0, v6, :cond_7b
.line 2804
:cond_14
const/4 v0, 0x3
if-eq v7, v0, :cond_4
const/4 v0, 0x4
if-eq v7, v0, :cond_4
.line 2808
invoke-interface {p2}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v0
const-string v1, "meta-data"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_37
.line 2809
iget-object v4, p5, Landroid/content/pm/PackageParser$Component;->metaData:Landroid/os/Bundle;
move-object v0, p0
move-object v1, p1
move-object v2, p2
move-object v3, p3
move-object v5, p6
invoke-direct/range {v0 .. v5}, Landroid/content/pm/PackageParser;->parseMetaData(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/os/Bundle;[Ljava/lang/String;)Landroid/os/Bundle;
move-result-object v0
iput-object v0, p5, Landroid/content/pm/PackageParser$Component;->metaData:Landroid/os/Bundle;
if-nez v0, :cond_4
.line 2811
const/4 v0, 0x0
.line 2826
:goto_36
return v0
.line 2815
:cond_37
const-string v0, "PackageParser"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Unknown element under "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, ": "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-interface {p2}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " at "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget-object v2, p0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-interface {p2}, Lorg/xmlpull/v1/XmlPullParser;->getPositionDescription()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 2818
invoke-static {p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto :goto_4
.line 2826
:cond_7b
const/4 v0, 0x1
goto :goto_36
.end method
.method private parseApplication(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;I[Ljava/lang/String;)Z
.registers 48
.param p1, "owner" # Landroid/content/pm/PackageParser$Package;
.param p2, "res" # Landroid/content/res/Resources;
.param p3, "parser" # Lorg/xmlpull/v1/XmlPullParser;
.param p4, "attrs" # Landroid/util/AttributeSet;
.param p5, "flags" # I
.param p6, "outError" # [Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/xmlpull/v1/XmlPullParserException;,
Ljava/io/IOException;
}
.end annotation
.prologue
.line 1675
move-object/from16 v0, p1
iget-object v0, v0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
move-object/from16 v25, v0
.line 1676
.local v25, "ai":Landroid/content/pm/ApplicationInfo;
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget-object v0, v3, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
move-object/from16 v33, v0
.line 1678
.local v33, "pkgName":Ljava/lang/String;
sget-object v3, Lcom/android/internal/R$styleable;->AndroidManifestApplication:[I
move-object/from16 v0, p2
move-object/from16 v1, p4
invoke-virtual {v0, v1, v3}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v36
.line 1681
.local v36, "sa":Landroid/content/res/TypedArray;
const/4 v3, 0x3
const/4 v4, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v31
.line 1683
.local v31, "name":Ljava/lang/String;
if-eqz v31, :cond_41
.line 1684
move-object/from16 v0, v33
move-object/from16 v1, v31
move-object/from16 v2, p6
invoke-static {v0, v1, v2}, Landroid/content/pm/PackageParser;->buildClassName(Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
move-object/from16 v0, v25
iput-object v3, v0, Landroid/content/pm/ApplicationInfo;->className:Ljava/lang/String;
.line 1685
move-object/from16 v0, v25
iget-object v3, v0, Landroid/content/pm/ApplicationInfo;->className:Ljava/lang/String;
if-nez v3, :cond_41
.line 1686
invoke-virtual/range {v36 .. v36}, Landroid/content/res/TypedArray;->recycle()V
.line 1687
const/16 v3, -0x6c
move-object/from16 v0, p0
iput v3, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1688
const/4 v3, 0x0
.line 1984
:goto_40
return v3
.line 1692
:cond_41
const/4 v3, 0x4
const/4 v4, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v30
.line 1694
.local v30, "manageSpaceActivity":Ljava/lang/String;
if-eqz v30, :cond_59
.line 1695
move-object/from16 v0, v33
move-object/from16 v1, v30
move-object/from16 v2, p6
invoke-static {v0, v1, v2}, Landroid/content/pm/PackageParser;->buildClassName(Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
move-object/from16 v0, v25
iput-object v3, v0, Landroid/content/pm/ApplicationInfo;->manageSpaceActivityName:Ljava/lang/String;
.line 1699
:cond_59
const/16 v3, 0x11
const/4 v4, 0x1
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v26
.line 1701
.local v26, "allowBackup":Z
if-eqz v26, :cond_b5
.line 1702
move-object/from16 v0, v25
iget v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
const v4, 0x8000
or-int/2addr v3, v4
move-object/from16 v0, v25
iput v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
.line 1706
const/16 v3, 0x10
const/4 v4, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v27
.line 1708
.local v27, "backupAgent":Ljava/lang/String;
if-eqz v27, :cond_b5
.line 1709
move-object/from16 v0, v33
move-object/from16 v1, v27
move-object/from16 v2, p6
invoke-static {v0, v1, v2}, Landroid/content/pm/PackageParser;->buildClassName(Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
move-object/from16 v0, v25
iput-object v3, v0, Landroid/content/pm/ApplicationInfo;->backupAgentName:Ljava/lang/String;
.line 1715
const/16 v3, 0x12
const/4 v4, 0x1
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
if-eqz v3, :cond_9f
.line 1718
move-object/from16 v0, v25
iget v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
const/high16 v4, 0x10000
or-int/2addr v3, v4
move-object/from16 v0, v25
iput v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
.line 1720
:cond_9f
const/16 v3, 0x15
const/4 v4, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
if-eqz v3, :cond_b5
.line 1723
move-object/from16 v0, v25
iget v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
const/high16 v4, 0x20000
or-int/2addr v3, v4
move-object/from16 v0, v25
iput v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
.line 1728
.end local v27 # "backupAgent":Ljava/lang/String;
:cond_b5
const/4 v3, 0x1
move-object/from16 v0, v36
invoke-virtual {v0, v3}, Landroid/content/res/TypedArray;->peekValue(I)Landroid/util/TypedValue;
move-result-object v40
.line 1730
.local v40, "v":Landroid/util/TypedValue;
if-eqz v40, :cond_d0
move-object/from16 v0, v40
iget v3, v0, Landroid/util/TypedValue;->resourceId:I
move-object/from16 v0, v25
iput v3, v0, Landroid/content/pm/ApplicationInfo;->labelRes:I
if-nez v3, :cond_d0
.line 1731
invoke-virtual/range {v40 .. v40}, Landroid/util/TypedValue;->coerceToString()Ljava/lang/CharSequence;
move-result-object v3
move-object/from16 v0, v25
iput-object v3, v0, Landroid/content/pm/ApplicationInfo;->nonLocalizedLabel:Ljava/lang/CharSequence;
.line 1734
:cond_d0
const/4 v3, 0x2
const/4 v4, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getResourceId(II)I
move-result v3
move-object/from16 v0, v25
iput v3, v0, Landroid/content/pm/ApplicationInfo;->icon:I
.line 1736
const/16 v3, 0x16
const/4 v4, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getResourceId(II)I
move-result v3
move-object/from16 v0, v25
iput v3, v0, Landroid/content/pm/ApplicationInfo;->logo:I
.line 1738
const/4 v3, 0x0
const/4 v4, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getResourceId(II)I
move-result v3
move-object/from16 v0, v25
iput v3, v0, Landroid/content/pm/ApplicationInfo;->theme:I
.line 1740
const/16 v3, 0xd
const/4 v4, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getResourceId(II)I
move-result v3
move-object/from16 v0, v25
iput v3, v0, Landroid/content/pm/ApplicationInfo;->descriptionRes:I
.line 1743
and-int/lit8 v3, p5, 0x1
if-eqz v3, :cond_11b
.line 1744
const/16 v3, 0x8
const/4 v4, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
if-eqz v3, :cond_11b
.line 1747
move-object/from16 v0, v25
iget v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
or-int/lit8 v3, v3, 0x8
move-object/from16 v0, v25
iput v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
.line 1751
:cond_11b
const/16 v3, 0xa
const/4 v4, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
if-eqz v3, :cond_130
.line 1754
move-object/from16 v0, v25
iget v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
or-int/lit8 v3, v3, 0x2
move-object/from16 v0, v25
iput v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
.line 1757
:cond_130
const/16 v3, 0x14
const/4 v4, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
if-eqz v3, :cond_145
.line 1760
move-object/from16 v0, v25
iget v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
or-int/lit16 v3, v3, 0x4000
move-object/from16 v0, v25
iput v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
.line 1763
:cond_145
const/16 v4, 0x17
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v3, v3, Landroid/content/pm/ApplicationInfo;->targetSdkVersion:I
const/16 v6, 0xe
if-lt v3, v6, :cond_26d
const/4 v3, 0x1
:goto_152
move-object/from16 v0, v36
invoke-virtual {v0, v4, v3}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v14
.line 1767
.local v14, "hardwareAccelerated":Z
const/4 v3, 0x7
const/4 v4, 0x1
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
if-eqz v3, :cond_16c
.line 1770
move-object/from16 v0, v25
iget v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
or-int/lit8 v3, v3, 0x4
move-object/from16 v0, v25
iput v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
.line 1773
:cond_16c
const/16 v3, 0xe
const/4 v4, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
if-eqz v3, :cond_181
.line 1776
move-object/from16 v0, v25
iget v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
or-int/lit8 v3, v3, 0x20
move-object/from16 v0, v25
iput v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
.line 1779
:cond_181
const/4 v3, 0x5
const/4 v4, 0x1
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
if-eqz v3, :cond_195
.line 1782
move-object/from16 v0, v25
iget v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
or-int/lit8 v3, v3, 0x40
move-object/from16 v0, v25
iput v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
.line 1785
:cond_195
const/16 v3, 0xf
const/4 v4, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
if-eqz v3, :cond_1aa
.line 1788
move-object/from16 v0, v25
iget v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
or-int/lit16 v3, v3, 0x100
move-object/from16 v0, v25
iput v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
.line 1791
:cond_1aa
const/16 v3, 0x18
const/4 v4, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
if-eqz v3, :cond_1c0
.line 1794
move-object/from16 v0, v25
iget v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
const/high16 v4, 0x100000
or-int/2addr v3, v4
move-object/from16 v0, v25
iput v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
.line 1797
:cond_1c0
const/16 v3, 0x1c
const/4 v4, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
if-eqz v3, :cond_1d6
.line 1800
move-object/from16 v0, v25
iget v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
const/high16 v4, 0x400000
or-int/2addr v3, v4
move-object/from16 v0, v25
iput v3, v0, Landroid/content/pm/ApplicationInfo;->flags:I
.line 1804
:cond_1d6
const/4 v3, 0x6
const/4 v4, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v37
.line 1806
.local v37, "str":Ljava/lang/String;
if-eqz v37, :cond_270
invoke-virtual/range {v37 .. v37}, Ljava/lang/String;->length()I
move-result v3
if-lez v3, :cond_270
invoke-virtual/range {v37 .. v37}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v3
:goto_1ea
move-object/from16 v0, v25
iput-object v3, v0, Landroid/content/pm/ApplicationInfo;->permission:Ljava/lang/String;
.line 1808
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v3, v3, Landroid/content/pm/ApplicationInfo;->targetSdkVersion:I
const/16 v4, 0x8
if-lt v3, v4, :cond_273
.line 1809
const/16 v3, 0xc
const/4 v4, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v37
.line 1818
:goto_201
move-object/from16 v0, v25
iget-object v3, v0, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
move-object/from16 v0, v25
iget-object v4, v0, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
move-object/from16 v0, v37
move-object/from16 v1, p6
invoke-static {v3, v4, v0, v1}, Landroid/content/pm/PackageParser;->buildTaskAffinityName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
move-object/from16 v0, v25
iput-object v3, v0, Landroid/content/pm/ApplicationInfo;->taskAffinity:Ljava/lang/String;
.line 1821
const/4 v3, 0x0
aget-object v3, p6, v3
if-nez v3, :cond_24f
.line 1823
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v3, v3, Landroid/content/pm/ApplicationInfo;->targetSdkVersion:I
const/16 v4, 0x8
if-lt v3, v4, :cond_27c
.line 1824
const/16 v3, 0xb
const/4 v4, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v5
.line 1833
.local v5, "pname":Ljava/lang/CharSequence;
:goto_22d
move-object/from16 v0, v25
iget-object v3, v0, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
const/4 v4, 0x0
move-object/from16 v0, p0
iget-object v7, v0, Landroid/content/pm/PackageParser;->mSeparateProcesses:[Ljava/lang/String;
move/from16 v6, p5
move-object/from16 v8, p6
invoke-static/range {v3 .. v8}, Landroid/content/pm/PackageParser;->buildProcessName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/CharSequence;I[Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
move-object/from16 v0, v25
iput-object v3, v0, Landroid/content/pm/ApplicationInfo;->processName:Ljava/lang/String;
.line 1836
const/16 v3, 0x9
const/4 v4, 0x1
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
move-object/from16 v0, v25
iput-boolean v3, v0, Landroid/content/pm/ApplicationInfo;->enabled:Z
.line 1854
.end local v5 # "pname":Ljava/lang/CharSequence;
:cond_24f
const/16 v3, 0x19
const/4 v4, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getInt(II)I
move-result v3
move-object/from16 v0, v25
iput v3, v0, Landroid/content/pm/ApplicationInfo;->uiOptions:I
.line 1857
invoke-virtual/range {v36 .. v36}, Landroid/content/res/TypedArray;->recycle()V
.line 1859
const/4 v3, 0x0
aget-object v3, p6, v3
if-eqz v3, :cond_285
.line 1860
const/16 v3, -0x6c
move-object/from16 v0, p0
iput v3, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1861
const/4 v3, 0x0
goto/16 :goto_40
.line 1763
.end local v14 # "hardwareAccelerated":Z
.end local v37 # "str":Ljava/lang/String;
:cond_26d
const/4 v3, 0x0
goto/16 :goto_152
.line 1806
.restart local v14 # "hardwareAccelerated":Z
.restart local v37 # "str":Ljava/lang/String;
:cond_270
const/4 v3, 0x0
goto/16 :goto_1ea
.line 1815
:cond_273
const/16 v3, 0xc
move-object/from16 v0, v36
invoke-virtual {v0, v3}, Landroid/content/res/TypedArray;->getNonResourceString(I)Ljava/lang/String;
move-result-object v37
goto :goto_201
.line 1830
:cond_27c
const/16 v3, 0xb
move-object/from16 v0, v36
invoke-virtual {v0, v3}, Landroid/content/res/TypedArray;->getNonResourceString(I)Ljava/lang/String;
move-result-object v5
.restart local v5 # "pname":Ljava/lang/CharSequence;
goto :goto_22d
.line 1864
.end local v5 # "pname":Ljava/lang/CharSequence;
:cond_285
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v28
.line 1868
.local v28, "innerDepth":I
:cond_289
:goto_289
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->next()I
move-result v39
.local v39, "type":I
const/4 v3, 0x1
move/from16 v0, v39
if-eq v0, v3, :cond_479
const/4 v3, 0x3
move/from16 v0, v39
if-ne v0, v3, :cond_29f
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v3
move/from16 v0, v28
if-le v3, v0, :cond_479
.line 1869
:cond_29f
const/4 v3, 0x3
move/from16 v0, v39
if-eq v0, v3, :cond_289
const/4 v3, 0x4
move/from16 v0, v39
if-eq v0, v3, :cond_289
.line 1873
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v38
.line 1874
.local v38, "tagName":Ljava/lang/String;
const-string v3, "activity"
move-object/from16 v0, v38
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_2df
.line 1875
const/4 v13, 0x0
move-object/from16 v6, p0
move-object/from16 v7, p1
move-object/from16 v8, p2
move-object/from16 v9, p3
move-object/from16 v10, p4
move/from16 v11, p5
move-object/from16 v12, p6
invoke-direct/range {v6 .. v14}, Landroid/content/pm/PackageParser;->parseActivity(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;I[Ljava/lang/String;ZZ)Landroid/content/pm/PackageParser$Activity;
move-result-object v24
.line 1877
.local v24, "a":Landroid/content/pm/PackageParser$Activity;
if-nez v24, :cond_2d5
.line 1878
const/16 v3, -0x6c
move-object/from16 v0, p0
iput v3, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1879
const/4 v3, 0x0
goto/16 :goto_40
.line 1882
:cond_2d5
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->activities:Ljava/util/ArrayList;
move-object/from16 v0, v24
invoke-virtual {v3, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_289
.line 1884
.end local v24 # "a":Landroid/content/pm/PackageParser$Activity;
:cond_2df
const-string/jumbo v3, "receiver"
move-object/from16 v0, v38
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_316
.line 1885
const/16 v22, 0x1
const/16 v23, 0x0
move-object/from16 v15, p0
move-object/from16 v16, p1
move-object/from16 v17, p2
move-object/from16 v18, p3
move-object/from16 v19, p4
move/from16 v20, p5
move-object/from16 v21, p6
invoke-direct/range {v15 .. v23}, Landroid/content/pm/PackageParser;->parseActivity(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;I[Ljava/lang/String;ZZ)Landroid/content/pm/PackageParser$Activity;
move-result-object v24
.line 1886
.restart local v24 # "a":Landroid/content/pm/PackageParser$Activity;
if-nez v24, :cond_30b
.line 1887
const/16 v3, -0x6c
move-object/from16 v0, p0
iput v3, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1888
const/4 v3, 0x0
goto/16 :goto_40
.line 1891
:cond_30b
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->receivers:Ljava/util/ArrayList;
move-object/from16 v0, v24
invoke-virtual {v3, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto/16 :goto_289
.line 1893
.end local v24 # "a":Landroid/content/pm/PackageParser$Activity;
:cond_316
const-string/jumbo v3, "service"
move-object/from16 v0, v38
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_33b
.line 1894
invoke-direct/range {p0 .. p6}, Landroid/content/pm/PackageParser;->parseService(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;I[Ljava/lang/String;)Landroid/content/pm/PackageParser$Service;
move-result-object v35
.line 1895
.local v35, "s":Landroid/content/pm/PackageParser$Service;
if-nez v35, :cond_330
.line 1896
const/16 v3, -0x6c
move-object/from16 v0, p0
iput v3, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1897
const/4 v3, 0x0
goto/16 :goto_40
.line 1900
:cond_330
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->services:Ljava/util/ArrayList;
move-object/from16 v0, v35
invoke-virtual {v3, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto/16 :goto_289
.line 1902
.end local v35 # "s":Landroid/content/pm/PackageParser$Service;
:cond_33b
const-string/jumbo v3, "provider"
move-object/from16 v0, v38
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_360
.line 1903
invoke-direct/range {p0 .. p6}, Landroid/content/pm/PackageParser;->parseProvider(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;I[Ljava/lang/String;)Landroid/content/pm/PackageParser$Provider;
move-result-object v32
.line 1904
.local v32, "p":Landroid/content/pm/PackageParser$Provider;
if-nez v32, :cond_355
.line 1905
const/16 v3, -0x6c
move-object/from16 v0, p0
iput v3, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1906
const/4 v3, 0x0
goto/16 :goto_40
.line 1909
:cond_355
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->providers:Ljava/util/ArrayList;
move-object/from16 v0, v32
invoke-virtual {v3, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto/16 :goto_289
.line 1911
.end local v32 # "p":Landroid/content/pm/PackageParser$Provider;
:cond_360
const-string v3, "activity-alias"
move-object/from16 v0, v38
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_384
.line 1912
invoke-direct/range {p0 .. p6}, Landroid/content/pm/PackageParser;->parseActivityAlias(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;I[Ljava/lang/String;)Landroid/content/pm/PackageParser$Activity;
move-result-object v24
.line 1913
.restart local v24 # "a":Landroid/content/pm/PackageParser$Activity;
if-nez v24, :cond_379
.line 1914
const/16 v3, -0x6c
move-object/from16 v0, p0
iput v3, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1915
const/4 v3, 0x0
goto/16 :goto_40
.line 1918
:cond_379
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->activities:Ljava/util/ArrayList;
move-object/from16 v0, v24
invoke-virtual {v3, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto/16 :goto_289
.line 1920
.end local v24 # "a":Landroid/content/pm/PackageParser$Activity;
:cond_384
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v3
const-string v4, "meta-data"
invoke-virtual {v3, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_3b1
.line 1924
move-object/from16 v0, p1
iget-object v10, v0, Landroid/content/pm/PackageParser$Package;->mAppMetaData:Landroid/os/Bundle;
move-object/from16 v6, p0
move-object/from16 v7, p2
move-object/from16 v8, p3
move-object/from16 v9, p4
move-object/from16 v11, p6
invoke-direct/range {v6 .. v11}, Landroid/content/pm/PackageParser;->parseMetaData(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/os/Bundle;[Ljava/lang/String;)Landroid/os/Bundle;
move-result-object v3
move-object/from16 v0, p1
iput-object v3, v0, Landroid/content/pm/PackageParser$Package;->mAppMetaData:Landroid/os/Bundle;
if-nez v3, :cond_289
.line 1926
const/16 v3, -0x6c
move-object/from16 v0, p0
iput v3, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1927
const/4 v3, 0x0
goto/16 :goto_40
.line 1930
:cond_3b1
const-string/jumbo v3, "uses-library"
move-object/from16 v0, v38
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_42e
.line 1931
sget-object v3, Lcom/android/internal/R$styleable;->AndroidManifestUsesLibrary:[I
move-object/from16 v0, p2
move-object/from16 v1, p4
invoke-virtual {v0, v1, v3}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v36
.line 1936
const/4 v3, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3}, Landroid/content/res/TypedArray;->getNonResourceString(I)Ljava/lang/String;
move-result-object v29
.line 1938
.local v29, "lname":Ljava/lang/String;
const/4 v3, 0x1
const/4 v4, 0x1
move-object/from16 v0, v36
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v34
.line 1942
.local v34, "req":Z
invoke-virtual/range {v36 .. v36}, Landroid/content/res/TypedArray;->recycle()V
.line 1944
if-eqz v29, :cond_402
.line 1945
if-eqz v34, :cond_407
.line 1946
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->usesLibraries:Ljava/util/ArrayList;
if-nez v3, :cond_3eb
.line 1947
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
move-object/from16 v0, p1
iput-object v3, v0, Landroid/content/pm/PackageParser$Package;->usesLibraries:Ljava/util/ArrayList;
.line 1949
:cond_3eb
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->usesLibraries:Ljava/util/ArrayList;
move-object/from16 v0, v29
invoke-virtual {v3, v0}, Ljava/util/ArrayList;->contains(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_402
.line 1950
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->usesLibraries:Ljava/util/ArrayList;
invoke-virtual/range {v29 .. v29}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 1962
:cond_402
:goto_402
invoke-static/range {p3 .. p3}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_289
.line 1953
:cond_407
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->usesOptionalLibraries:Ljava/util/ArrayList;
if-nez v3, :cond_416
.line 1954
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
move-object/from16 v0, p1
iput-object v3, v0, Landroid/content/pm/PackageParser$Package;->usesOptionalLibraries:Ljava/util/ArrayList;
.line 1956
:cond_416
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->usesOptionalLibraries:Ljava/util/ArrayList;
move-object/from16 v0, v29
invoke-virtual {v3, v0}, Ljava/util/ArrayList;->contains(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_402
.line 1957
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->usesOptionalLibraries:Ljava/util/ArrayList;
invoke-virtual/range {v29 .. v29}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_402
.line 1964
.end local v29 # "lname":Ljava/lang/String;
.end local v34 # "req":Z
:cond_42e
const-string/jumbo v3, "uses-package"
move-object/from16 v0, v38
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_43e
.line 1967
invoke-static/range {p3 .. p3}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_289
.line 1971
:cond_43e
const-string v3, "PackageParser"
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Unknown element under <application>: "
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
move-object/from16 v0, v38
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v6, " at "
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
move-object/from16 v0, p0
iget-object v6, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v6, " "
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getPositionDescription()Ljava/lang/String;
move-result-object v6
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-static {v3, v4}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 1974
invoke-static/range {p3 .. p3}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_289
.line 1984
.end local v38 # "tagName":Ljava/lang/String;
:cond_479
const/4 v3, 0x1
goto/16 :goto_40
.end method
.method private parseInstrumentation(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;[Ljava/lang/String;)Landroid/content/pm/PackageParser$Instrumentation;
.registers 15
.param p1, "owner" # Landroid/content/pm/PackageParser$Package;
.param p2, "res" # Landroid/content/res/Resources;
.param p3, "parser" # Lorg/xmlpull/v1/XmlPullParser;
.param p4, "attrs" # Landroid/util/AttributeSet;
.param p5, "outError" # [Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/xmlpull/v1/XmlPullParserException;,
Ljava/io/IOException;
}
.end annotation
.prologue
.line 1616
sget-object v0, Lcom/android/internal/R$styleable;->AndroidManifestInstrumentation:[I
invoke-virtual {p2, p4, v0}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v7
.line 1619
.local v7, "sa":Landroid/content/res/TypedArray;
iget-object v0, p0, Landroid/content/pm/PackageParser;->mParseInstrumentationArgs:Landroid/content/pm/PackageParser$ParsePackageItemArgs;
if-nez v0, :cond_1d
.line 1620
new-instance v0, Landroid/content/pm/PackageParser$ParsePackageItemArgs;
const/4 v3, 0x2
const/4 v4, 0x0
const/4 v5, 0x1
const/4 v6, 0x6
move-object v1, p1
move-object v2, p5
invoke-direct/range {v0 .. v6}, Landroid/content/pm/PackageParser$ParsePackageItemArgs;-><init>(Landroid/content/pm/PackageParser$Package;[Ljava/lang/String;IIII)V
iput-object v0, p0, Landroid/content/pm/PackageParser;->mParseInstrumentationArgs:Landroid/content/pm/PackageParser$ParsePackageItemArgs;
.line 1625
iget-object v0, p0, Landroid/content/pm/PackageParser;->mParseInstrumentationArgs:Landroid/content/pm/PackageParser$ParsePackageItemArgs;
const-string v1, "<instrumentation>"
iput-object v1, v0, Landroid/content/pm/PackageParser$ParsePackageItemArgs;->tag:Ljava/lang/String;
.line 1628
:cond_1d
iget-object v0, p0, Landroid/content/pm/PackageParser;->mParseInstrumentationArgs:Landroid/content/pm/PackageParser$ParsePackageItemArgs;
iput-object v7, v0, Landroid/content/pm/PackageParser$ParsePackageItemArgs;->sa:Landroid/content/res/TypedArray;
.line 1630
new-instance v5, Landroid/content/pm/PackageParser$Instrumentation;
iget-object v0, p0, Landroid/content/pm/PackageParser;->mParseInstrumentationArgs:Landroid/content/pm/PackageParser$ParsePackageItemArgs;
new-instance v1, Landroid/content/pm/InstrumentationInfo;
invoke-direct {v1}, Landroid/content/pm/InstrumentationInfo;-><init>()V
invoke-direct {v5, v0, v1}, Landroid/content/pm/PackageParser$Instrumentation;-><init>(Landroid/content/pm/PackageParser$ParsePackageItemArgs;Landroid/content/pm/InstrumentationInfo;)V
.line 1632
.local v5, "a":Landroid/content/pm/PackageParser$Instrumentation;
const/4 v0, 0x0
aget-object v0, p5, v0
if-eqz v0, :cond_3b
.line 1633
invoke-virtual {v7}, Landroid/content/res/TypedArray;->recycle()V
.line 1634
const/16 v0, -0x6c
iput v0, p0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1635
const/4 v5, 0x0
.line 1669
.end local v5 # "a":Landroid/content/pm/PackageParser$Instrumentation;
:goto_3a
return-object v5
.line 1641
.restart local v5 # "a":Landroid/content/pm/PackageParser$Instrumentation;
:cond_3b
const/4 v0, 0x3
invoke-virtual {v7, v0}, Landroid/content/res/TypedArray;->getNonResourceString(I)Ljava/lang/String;
move-result-object v8
.line 1643
.local v8, "str":Ljava/lang/String;
iget-object v1, v5, Landroid/content/pm/PackageParser$Instrumentation;->info:Landroid/content/pm/InstrumentationInfo;
if-eqz v8, :cond_72
invoke-virtual {v8}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v0
:goto_48
iput-object v0, v1, Landroid/content/pm/InstrumentationInfo;->targetPackage:Ljava/lang/String;
.line 1645
iget-object v0, v5, Landroid/content/pm/PackageParser$Instrumentation;->info:Landroid/content/pm/InstrumentationInfo;
const/4 v1, 0x4
const/4 v2, 0x0
invoke-virtual {v7, v1, v2}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v1
iput-boolean v1, v0, Landroid/content/pm/InstrumentationInfo;->handleProfiling:Z
.line 1649
iget-object v0, v5, Landroid/content/pm/PackageParser$Instrumentation;->info:Landroid/content/pm/InstrumentationInfo;
const/4 v1, 0x5
const/4 v2, 0x0
invoke-virtual {v7, v1, v2}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v1
iput-boolean v1, v0, Landroid/content/pm/InstrumentationInfo;->functionalTest:Z
.line 1653
invoke-virtual {v7}, Landroid/content/res/TypedArray;->recycle()V
.line 1655
iget-object v0, v5, Landroid/content/pm/PackageParser$Instrumentation;->info:Landroid/content/pm/InstrumentationInfo;
iget-object v0, v0, Landroid/content/pm/InstrumentationInfo;->targetPackage:Ljava/lang/String;
if-nez v0, :cond_74
.line 1656
const/4 v0, 0x0
const-string v1, "<instrumentation> does not specify targetPackage"
aput-object v1, p5, v0
.line 1657
const/16 v0, -0x6c
iput v0, p0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1658
const/4 v5, 0x0
goto :goto_3a
.line 1643
:cond_72
const/4 v0, 0x0
goto :goto_48
.line 1661
:cond_74
const-string v4, "<instrumentation>"
move-object v0, p0
move-object v1, p2
move-object v2, p3
move-object v3, p4
move-object v6, p5
invoke-direct/range {v0 .. v6}, Landroid/content/pm/PackageParser;->parseAllMetaData(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Ljava/lang/String;Landroid/content/pm/PackageParser$Component;[Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_87
.line 1663
const/16 v0, -0x6c
iput v0, p0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1664
const/4 v5, 0x0
goto :goto_3a
.line 1667
:cond_87
iget-object v0, p1, Landroid/content/pm/PackageParser$Package;->instrumentation:Ljava/util/ArrayList;
invoke-virtual {v0, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_3a
.end method
.method private parseIntent(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;ILandroid/content/pm/PackageParser$IntentInfo;[Ljava/lang/String;Z)Z
.registers 24
.param p1, "res" # Landroid/content/res/Resources;
.param p2, "parser" # Lorg/xmlpull/v1/XmlPullParser;
.param p3, "attrs" # Landroid/util/AttributeSet;
.param p4, "flags" # I
.param p5, "outInfo" # Landroid/content/pm/PackageParser$IntentInfo;
.param p6, "outError" # [Ljava/lang/String;
.param p7, "isActivity" # Z
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/xmlpull/v1/XmlPullParserException;,
Ljava/io/IOException;
}
.end annotation
.prologue
.line 2959
sget-object v13, Lcom/android/internal/R$styleable;->AndroidManifestIntentFilter:[I
move-object/from16 v0, p1
move-object/from16 v1, p3
invoke-virtual {v0, v1, v13}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v8
.line 2962
.local v8, "sa":Landroid/content/res/TypedArray;
const/4 v13, 0x2
const/4 v14, 0x0
invoke-virtual {v8, v13, v14}, Landroid/content/res/TypedArray;->getInt(II)I
move-result v7
.line 2964
.local v7, "priority":I
move-object/from16 v0, p5
invoke-virtual {v0, v7}, Landroid/content/pm/PackageParser$IntentInfo;->setPriority(I)V
.line 2966
const/4 v13, 0x0
invoke-virtual {v8, v13}, Landroid/content/res/TypedArray;->peekValue(I)Landroid/util/TypedValue;
move-result-object v11
.line 2968
.local v11, "v":Landroid/util/TypedValue;
if-eqz v11, :cond_2c
iget v13, v11, Landroid/util/TypedValue;->resourceId:I
move-object/from16 v0, p5
iput v13, v0, Landroid/content/pm/PackageParser$IntentInfo;->labelRes:I
if-nez v13, :cond_2c
.line 2969
invoke-virtual {v11}, Landroid/util/TypedValue;->coerceToString()Ljava/lang/CharSequence;
move-result-object v13
move-object/from16 v0, p5
iput-object v13, v0, Landroid/content/pm/PackageParser$IntentInfo;->nonLocalizedLabel:Ljava/lang/CharSequence;
.line 2972
:cond_2c
const/4 v13, 0x1
const/4 v14, 0x0
invoke-virtual {v8, v13, v14}, Landroid/content/res/TypedArray;->getResourceId(II)I
move-result v13
move-object/from16 v0, p5
iput v13, v0, Landroid/content/pm/PackageParser$IntentInfo;->icon:I
.line 2975
const/4 v13, 0x3
const/4 v14, 0x0
invoke-virtual {v8, v13, v14}, Landroid/content/res/TypedArray;->getResourceId(II)I
move-result v13
move-object/from16 v0, p5
iput v13, v0, Landroid/content/pm/PackageParser$IntentInfo;->logo:I
.line 2978
invoke-virtual {v8}, Landroid/content/res/TypedArray;->recycle()V
.line 2980
invoke-interface/range {p2 .. p2}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v5
.line 2983
.local v5, "outerDepth":I
:cond_47
:goto_47
invoke-interface/range {p2 .. p2}, Lorg/xmlpull/v1/XmlPullParser;->next()I
move-result v10
.local v10, "type":I
const/4 v13, 0x1
if-eq v10, v13, :cond_198
const/4 v13, 0x3
if-ne v10, v13, :cond_57
invoke-interface/range {p2 .. p2}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v13
if-le v13, v5, :cond_198
.line 2984
:cond_57
const/4 v13, 0x3
if-eq v10, v13, :cond_47
const/4 v13, 0x4
if-eq v10, v13, :cond_47
.line 2988
invoke-interface/range {p2 .. p2}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v4
.line 2989
.local v4, "nodeName":Ljava/lang/String;
const-string v13, "action"
invoke-virtual {v4, v13}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v13
if-eqz v13, :cond_89
.line 2990
const-string v13, "http://schemas.android.com/apk/res/android"
const-string v14, "name"
move-object/from16 v0, p3
invoke-interface {v0, v13, v14}, Landroid/util/AttributeSet;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v12
.line 2992
.local v12, "value":Ljava/lang/String;
if-eqz v12, :cond_79
const-string v13, ""
if-ne v12, v13, :cond_80
.line 2993
:cond_79
const/4 v13, 0x0
const-string v14, "No value supplied for <android:name>"
aput-object v14, p6, v13
.line 2994
const/4 v13, 0x0
.line 3094
.end local v4 # "nodeName":Ljava/lang/String;
.end local v12 # "value":Ljava/lang/String;
:goto_7f
return v13
.line 2996
.restart local v4 # "nodeName":Ljava/lang/String;
.restart local v12 # "value":Ljava/lang/String;
:cond_80
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
.line 2997
move-object/from16 v0, p5
invoke-virtual {v0, v12}, Landroid/content/pm/PackageParser$IntentInfo;->addAction(Ljava/lang/String;)V
goto :goto_47
.line 2998
.end local v12 # "value":Ljava/lang/String;
:cond_89
const-string v13, "category"
invoke-virtual {v4, v13}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v13
if-eqz v13, :cond_dc
.line 2999
const-string v13, "http://schemas.android.com/apk/res/android"
const-string v14, "name"
move-object/from16 v0, p3
invoke-interface {v0, v13, v14}, Landroid/util/AttributeSet;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v12
.line 3001
.restart local v12 # "value":Ljava/lang/String;
if-eqz v12, :cond_a1
const-string v13, ""
if-ne v12, v13, :cond_a8
.line 3002
:cond_a1
const/4 v13, 0x0
const-string v14, "No value supplied for <android:name>"
aput-object v14, p6, v13
.line 3003
const/4 v13, 0x0
goto :goto_7f
.line 3005
:cond_a8
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
.line 3007
sget-boolean v13, Landroid/content/pm/PackageParser;->ALIEN:Z
if-eqz v13, :cond_d5
and-int/lit8 v13, p4, 0x1
if-nez v13, :cond_d5
const-string v13, "android.intent.category.HOME"
invoke-virtual {v13, v12}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v13
if-eqz v13, :cond_d5
.line 3010
const-string v13, "PackageParser"
const-string v14, "Alien: Ingore android.intent.category.HOME"
invoke-static {v13, v14}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 3011
new-instance v13, Ljava/lang/StringBuilder;
invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v13, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v13
const-string v14, ".alien"
invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v13
invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v12
.line 3014
:cond_d5
move-object/from16 v0, p5
invoke-virtual {v0, v12}, Landroid/content/pm/PackageParser$IntentInfo;->addCategory(Ljava/lang/String;)V
goto/16 :goto_47
.line 3016
.end local v12 # "value":Ljava/lang/String;
:cond_dc
const-string v13, "data"
invoke-virtual {v4, v13}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v13
if-eqz v13, :cond_15b
.line 3017
sget-object v13, Lcom/android/internal/R$styleable;->AndroidManifestData:[I
move-object/from16 v0, p1
move-object/from16 v1, p3
invoke-virtual {v0, v1, v13}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v8
.line 3020
const/4 v13, 0x0
const/4 v14, 0x0
invoke-virtual {v8, v13, v14}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v9
.line 3022
.local v9, "str":Ljava/lang/String;
if-eqz v9, :cond_fb
.line 3024
:try_start_f6
move-object/from16 v0, p5
invoke-virtual {v0, v9}, Landroid/content/pm/PackageParser$IntentInfo;->addDataType(Ljava/lang/String;)V
:try_end_fb
.catch Landroid/content/IntentFilter$MalformedMimeTypeException; {:try_start_f6 .. :try_end_fb} :catch_14d
.line 3032
:cond_fb
const/4 v13, 0x1
const/4 v14, 0x0
invoke-virtual {v8, v13, v14}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v9
.line 3034
if-eqz v9, :cond_108
.line 3035
move-object/from16 v0, p5
invoke-virtual {v0, v9}, Landroid/content/pm/PackageParser$IntentInfo;->addDataScheme(Ljava/lang/String;)V
.line 3038
:cond_108
const/4 v13, 0x2
const/4 v14, 0x0
invoke-virtual {v8, v13, v14}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v3
.line 3040
.local v3, "host":Ljava/lang/String;
const/4 v13, 0x3
const/4 v14, 0x0
invoke-virtual {v8, v13, v14}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v6
.line 3042
.local v6, "port":Ljava/lang/String;
if-eqz v3, :cond_11b
.line 3043
move-object/from16 v0, p5
invoke-virtual {v0, v3, v6}, Landroid/content/pm/PackageParser$IntentInfo;->addDataAuthority(Ljava/lang/String;Ljava/lang/String;)V
.line 3046
:cond_11b
const/4 v13, 0x4
const/4 v14, 0x0
invoke-virtual {v8, v13, v14}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v9
.line 3048
if-eqz v9, :cond_129
.line 3049
const/4 v13, 0x0
move-object/from16 v0, p5
invoke-virtual {v0, v9, v13}, Landroid/content/pm/PackageParser$IntentInfo;->addDataPath(Ljava/lang/String;I)V
.line 3052
:cond_129
const/4 v13, 0x5
const/4 v14, 0x0
invoke-virtual {v8, v13, v14}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v9
.line 3054
if-eqz v9, :cond_137
.line 3055
const/4 v13, 0x1
move-object/from16 v0, p5
invoke-virtual {v0, v9, v13}, Landroid/content/pm/PackageParser$IntentInfo;->addDataPath(Ljava/lang/String;I)V
.line 3058
:cond_137
const/4 v13, 0x6
const/4 v14, 0x0
invoke-virtual {v8, v13, v14}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v9
.line 3060
if-eqz v9, :cond_145
.line 3061
const/4 v13, 0x2
move-object/from16 v0, p5
invoke-virtual {v0, v9, v13}, Landroid/content/pm/PackageParser$IntentInfo;->addDataPath(Ljava/lang/String;I)V
.line 3064
:cond_145
invoke-virtual {v8}, Landroid/content/res/TypedArray;->recycle()V
.line 3065
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_47
.line 3025
.end local v3 # "host":Ljava/lang/String;
.end local v6 # "port":Ljava/lang/String;
:catch_14d
move-exception v2
.line 3026
.local v2, "e":Landroid/content/IntentFilter$MalformedMimeTypeException;
const/4 v13, 0x0
invoke-virtual {v2}, Landroid/content/IntentFilter$MalformedMimeTypeException;->toString()Ljava/lang/String;
move-result-object v14
aput-object v14, p6, v13
.line 3027
invoke-virtual {v8}, Landroid/content/res/TypedArray;->recycle()V
.line 3028
const/4 v13, 0x0
goto/16 :goto_7f
.line 3067
.end local v2 # "e":Landroid/content/IntentFilter$MalformedMimeTypeException;
.end local v9 # "str":Ljava/lang/String;
:cond_15b
const-string v13, "PackageParser"
new-instance v14, Ljava/lang/StringBuilder;
invoke-direct {v14}, Ljava/lang/StringBuilder;-><init>()V
const-string v15, "Unknown element under <intent-filter>: "
invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v14
invoke-interface/range {p2 .. p2}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v15
invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v14
const-string v15, " at "
invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v14
move-object/from16 v0, p0
iget-object v15, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v14
const-string v15, " "
invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v14
invoke-interface/range {p2 .. p2}, Lorg/xmlpull/v1/XmlPullParser;->getPositionDescription()Ljava/lang/String;
move-result-object v15
invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v14
invoke-virtual {v14}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v14
invoke-static {v13, v14}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 3070
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_47
.line 3077
.end local v4 # "nodeName":Ljava/lang/String;
:cond_198
const-string v13, "android.intent.category.DEFAULT"
move-object/from16 v0, p5
invoke-virtual {v0, v13}, Landroid/content/pm/PackageParser$IntentInfo;->hasCategory(Ljava/lang/String;)Z
move-result v13
move-object/from16 v0, p5
iput-boolean v13, v0, Landroid/content/pm/PackageParser$IntentInfo;->hasDefault:Z
.line 3094
const/4 v13, 0x1
goto/16 :goto_7f
.end method
.method private parseMetaData(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/os/Bundle;[Ljava/lang/String;)Landroid/os/Bundle;
.registers 15
.param p1, "res" # Landroid/content/res/Resources;
.param p2, "parser" # Lorg/xmlpull/v1/XmlPullParser;
.param p3, "attrs" # Landroid/util/AttributeSet;
.param p4, "data" # Landroid/os/Bundle;
.param p5, "outError" # [Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/xmlpull/v1/XmlPullParserException;,
Ljava/io/IOException;
}
.end annotation
.prologue
const/4 v4, 0x0
const/4 v5, 0x1
const/4 v6, 0x0
.line 2834
sget-object v7, Lcom/android/internal/R$styleable;->AndroidManifestMetaData:[I
invoke-virtual {p1, p3, v7}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v2
.line 2837
.local v2, "sa":Landroid/content/res/TypedArray;
if-nez p4, :cond_10
.line 2838
new-instance p4, Landroid/os/Bundle;
.end local p4 # "data":Landroid/os/Bundle;
invoke-direct {p4}, Landroid/os/Bundle;-><init>()V
.line 2841
.restart local p4 # "data":Landroid/os/Bundle;
:cond_10
invoke-virtual {v2, v6, v6}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v1
.line 2843
.local v1, "name":Ljava/lang/String;
if-nez v1, :cond_1e
.line 2844
const-string v5, "<meta-data> requires an android:name attribute"
aput-object v5, p5, v6
.line 2845
invoke-virtual {v2}, Landroid/content/res/TypedArray;->recycle()V
.line 2891
:goto_1d
return-object v4
.line 2849
:cond_1e
invoke-virtual {v1}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v1
.line 2851
const/4 v7, 0x2
invoke-virtual {v2, v7}, Landroid/content/res/TypedArray;->peekValue(I)Landroid/util/TypedValue;
move-result-object v3
.line 2853
.local v3, "v":Landroid/util/TypedValue;
if-eqz v3, :cond_3a
iget v7, v3, Landroid/util/TypedValue;->resourceId:I
if-eqz v7, :cond_3a
.line 2855
iget v4, v3, Landroid/util/TypedValue;->resourceId:I
invoke-virtual {p4, v1, v4}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
.line 2887
:goto_32
invoke-virtual {v2}, Landroid/content/res/TypedArray;->recycle()V
.line 2889
invoke-static {p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
move-object v4, p4
.line 2891
goto :goto_1d
.line 2857
:cond_3a
invoke-virtual {v2, v5}, Landroid/content/res/TypedArray;->peekValue(I)Landroid/util/TypedValue;
move-result-object v3
.line 2860
if-eqz v3, :cond_bf
.line 2861
iget v7, v3, Landroid/util/TypedValue;->type:I
const/4 v8, 0x3
if-ne v7, v8, :cond_57
.line 2862
invoke-virtual {v3}, Landroid/util/TypedValue;->coerceToString()Ljava/lang/CharSequence;
move-result-object v0
.line 2863
.local v0, "cs":Ljava/lang/CharSequence;
if-eqz v0, :cond_53
invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v4
:cond_53
invoke-virtual {p4, v1, v4}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_32
.line 2864
.end local v0 # "cs":Ljava/lang/CharSequence;
:cond_57
iget v4, v3, Landroid/util/TypedValue;->type:I
const/16 v7, 0x12
if-ne v4, v7, :cond_68
.line 2865
iget v4, v3, Landroid/util/TypedValue;->data:I
if-eqz v4, :cond_66
move v4, v5
:goto_62
invoke-virtual {p4, v1, v4}, Landroid/os/Bundle;->putBoolean(Ljava/lang/String;Z)V
goto :goto_32
:cond_66
move v4, v6
goto :goto_62
.line 2866
:cond_68
iget v4, v3, Landroid/util/TypedValue;->type:I
const/16 v5, 0x10
if-lt v4, v5, :cond_7a
iget v4, v3, Landroid/util/TypedValue;->type:I
const/16 v5, 0x1f
if-gt v4, v5, :cond_7a
.line 2868
iget v4, v3, Landroid/util/TypedValue;->data:I
invoke-virtual {p4, v1, v4}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
goto :goto_32
.line 2869
:cond_7a
iget v4, v3, Landroid/util/TypedValue;->type:I
const/4 v5, 0x4
if-ne v4, v5, :cond_87
.line 2870
invoke-virtual {v3}, Landroid/util/TypedValue;->getFloat()F
move-result v4
invoke-virtual {p4, v1, v4}, Landroid/os/Bundle;->putFloat(Ljava/lang/String;F)V
goto :goto_32
.line 2873
:cond_87
const-string v4, "PackageParser"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "<meta-data> only supports string, integer, float, color, boolean, and resource reference types: "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-interface {p2}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, " at "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
iget-object v6, p0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, " "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-interface {p2}, Lorg/xmlpull/v1/XmlPullParser;->getPositionDescription()Ljava/lang/String;
move-result-object v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v4, v5}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_32
.line 2882
:cond_bf
const-string v4, "<meta-data> requires an android:value or android:resource attribute"
aput-object v4, p5, v6
.line 2883
const/4 p4, 0x0
goto/16 :goto_32
.end method
.method private parsePackage(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;)Landroid/content/pm/PackageParser$Package;
.registers 53
.param p1, "res" # Landroid/content/res/Resources;
.param p2, "parser" # Landroid/content/res/XmlResourceParser;
.param p3, "flags" # I
.param p4, "outError" # [Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/xmlpull/v1/XmlPullParserException;,
Ljava/io/IOException;
}
.end annotation
.prologue
.line 897
move-object/from16 v7, p2
.line 899
.local v7, "attrs":Landroid/util/AttributeSet;
const/4 v3, 0x0
move-object/from16 v0, p0
iput-object v3, v0, Landroid/content/pm/PackageParser;->mParseInstrumentationArgs:Landroid/content/pm/PackageParser$ParsePackageItemArgs;
.line 900
const/4 v3, 0x0
move-object/from16 v0, p0
iput-object v3, v0, Landroid/content/pm/PackageParser;->mParseActivityArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
.line 901
const/4 v3, 0x0
move-object/from16 v0, p0
iput-object v3, v0, Landroid/content/pm/PackageParser;->mParseServiceArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
.line 902
const/4 v3, 0x0
move-object/from16 v0, p0
iput-object v3, v0, Landroid/content/pm/PackageParser;->mParseProviderArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
.line 904
move-object/from16 v0, p2
move/from16 v1, p3
move-object/from16 v2, p4
invoke-static {v0, v7, v1, v2}, Landroid/content/pm/PackageParser;->parsePackageName(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;I[Ljava/lang/String;)Ljava/lang/String;
move-result-object v34
.line 905
.local v34, "pkgName":Ljava/lang/String;
if-nez v34, :cond_2a
.line 906
const/16 v3, -0x6a
move-object/from16 v0, p0
iput v3, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 907
const/4 v4, 0x0
.line 1372
:cond_29
:goto_29
return-object v4
.line 911
:cond_2a
move-object/from16 v0, p0
iget-boolean v3, v0, Landroid/content/pm/PackageParser;->mOnlyCoreApps:Z
if-eqz v3, :cond_41
.line 912
const/4 v3, 0x0
const-string v5, "coreApp"
const/4 v6, 0x0
invoke-interface {v7, v3, v5, v6}, Landroid/util/AttributeSet;->getAttributeBooleanValue(Ljava/lang/String;Ljava/lang/String;Z)Z
move-result v19
.line 913
.local v19, "core":Z
if-nez v19, :cond_41
.line 914
const/4 v3, 0x1
move-object/from16 v0, p0
iput v3, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 915
const/4 v4, 0x0
goto :goto_29
.line 919
.end local v19 # "core":Z
:cond_41
new-instance v4, Landroid/content/pm/PackageParser$Package;
move-object/from16 v0, v34
invoke-direct {v4, v0}, Landroid/content/pm/PackageParser$Package;-><init>(Ljava/lang/String;)V
.line 920
.local v4, "pkg":Landroid/content/pm/PackageParser$Package;
const/16 v21, 0x0
.line 922
.local v21, "foundApp":Z
sget-object v3, Lcom/android/internal/R$styleable;->AndroidManifest:[I
move-object/from16 v0, p1
invoke-virtual {v0, v7, v3}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v36
.line 924
.local v36, "sa":Landroid/content/res/TypedArray;
const/4 v3, 0x1
const/4 v5, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v5}, Landroid/content/res/TypedArray;->getInteger(II)I
move-result v3
iput v3, v4, Landroid/content/pm/PackageParser$Package;->mVersionCode:I
.line 926
const/4 v3, 0x2
const/4 v5, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v5}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v3
iput-object v3, v4, Landroid/content/pm/PackageParser$Package;->mVersionName:Ljava/lang/String;
.line 928
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->mVersionName:Ljava/lang/String;
if-eqz v3, :cond_72
.line 929
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->mVersionName:Ljava/lang/String;
invoke-virtual {v3}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v3
iput-object v3, v4, Landroid/content/pm/PackageParser$Package;->mVersionName:Ljava/lang/String;
.line 931
:cond_72
const/4 v3, 0x0
const/4 v5, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v5}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v38
.line 933
.local v38, "str":Ljava/lang/String;
if-eqz v38, :cond_d2
invoke-virtual/range {v38 .. v38}, Ljava/lang/String;->length()I
move-result v3
if-lez v3, :cond_d2
.line 934
const/4 v3, 0x1
move-object/from16 v0, v38
invoke-static {v0, v3}, Landroid/content/pm/PackageParser;->validateName(Ljava/lang/String;Z)Ljava/lang/String;
move-result-object v29
.line 935
.local v29, "nameError":Ljava/lang/String;
if-eqz v29, :cond_c2
const-string v3, "android"
move-object/from16 v0, v34
invoke-virtual {v3, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_c2
.line 936
const/4 v3, 0x0
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "<manifest> specifies bad sharedUserId name \""
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
move-object/from16 v0, v38
invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, "\": "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
move-object/from16 v0, v29
invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
aput-object v5, p4, v3
.line 938
const/16 v3, -0x6b
move-object/from16 v0, p0
iput v3, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 939
const/4 v4, 0x0
goto/16 :goto_29
.line 941
:cond_c2
invoke-virtual/range {v38 .. v38}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v3
iput-object v3, v4, Landroid/content/pm/PackageParser$Package;->mSharedUserId:Ljava/lang/String;
.line 942
const/4 v3, 0x3
const/4 v5, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v5}, Landroid/content/res/TypedArray;->getResourceId(II)I
move-result v3
iput v3, v4, Landroid/content/pm/PackageParser$Package;->mSharedUserLabel:I
.line 945
.end local v29 # "nameError":Ljava/lang/String;
:cond_d2
invoke-virtual/range {v36 .. v36}, Landroid/content/res/TypedArray;->recycle()V
.line 947
const/4 v3, 0x4
const/4 v5, -0x1
move-object/from16 v0, v36
invoke-virtual {v0, v3, v5}, Landroid/content/res/TypedArray;->getInteger(II)I
move-result v3
iput v3, v4, Landroid/content/pm/PackageParser$Package;->installLocation:I
.line 950
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v5, v4, Landroid/content/pm/PackageParser$Package;->installLocation:I
iput v5, v3, Landroid/content/pm/ApplicationInfo;->installLocation:I
.line 953
and-int/lit8 v3, p3, 0x10
if-eqz v3, :cond_f2
.line 954
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v5, v3, Landroid/content/pm/ApplicationInfo;->flags:I
const/high16 v6, 0x20000000
or-int/2addr v5, v6
iput v5, v3, Landroid/content/pm/ApplicationInfo;->flags:I
.line 958
:cond_f2
and-int/lit8 v3, p3, 0x20
if-eqz v3, :cond_ff
.line 959
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v5, v3, Landroid/content/pm/ApplicationInfo;->flags:I
const/high16 v6, 0x40000
or-int/2addr v5, v6
iput v5, v3, Landroid/content/pm/ApplicationInfo;->flags:I
.line 963
:cond_ff
const/16 v41, 0x1
.line 964
.local v41, "supportsSmallScreens":I
const/16 v40, 0x1
.line 965
.local v40, "supportsNormalScreens":I
const/16 v39, 0x1
.line 966
.local v39, "supportsLargeScreens":I
const/16 v42, 0x1
.line 967
.local v42, "supportsXLargeScreens":I
const/16 v35, 0x1
.line 968
.local v35, "resizeable":I
const/16 v17, 0x1
.line 970
.local v17, "anyDensity":I
invoke-interface/range {p2 .. p2}, Landroid/content/res/XmlResourceParser;->getDepth()I
move-result v32
.line 972
.local v32, "outerDepth":I
:cond_10f
:goto_10f
invoke-interface/range {p2 .. p2}, Landroid/content/res/XmlResourceParser;->next()I
move-result v46
.local v46, "type":I
const/4 v3, 0x1
move/from16 v0, v46
if-eq v0, v3, :cond_621
const/4 v3, 0x3
move/from16 v0, v46
if-ne v0, v3, :cond_125
invoke-interface/range {p2 .. p2}, Landroid/content/res/XmlResourceParser;->getDepth()I
move-result v3
move/from16 v0, v32
if-le v3, v0, :cond_621
.line 973
:cond_125
const/4 v3, 0x3
move/from16 v0, v46
if-eq v0, v3, :cond_10f
const/4 v3, 0x4
move/from16 v0, v46
if-eq v0, v3, :cond_10f
.line 977
invoke-interface/range {p2 .. p2}, Landroid/content/res/XmlResourceParser;->getName()Ljava/lang/String;
move-result-object v43
.line 978
.local v43, "tagName":Ljava/lang/String;
const-string v3, "application"
move-object/from16 v0, v43
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_15f
.line 979
if-eqz v21, :cond_14a
.line 985
const-string v3, "PackageParser"
const-string v5, "<manifest> has more than one <application>"
invoke-static {v3, v5}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 986
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto :goto_10f
.line 991
:cond_14a
const/16 v21, 0x1
move-object/from16 v3, p0
move-object/from16 v5, p1
move-object/from16 v6, p2
move/from16 v8, p3
move-object/from16 v9, p4
.line 992
invoke-direct/range {v3 .. v9}, Landroid/content/pm/PackageParser;->parseApplication(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;I[Ljava/lang/String;)Z
move-result v3
if-nez v3, :cond_10f
.line 993
const/4 v4, 0x0
goto/16 :goto_29
.line 995
:cond_15f
const-string/jumbo v3, "permission-group"
move-object/from16 v0, v43
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_17f
move-object/from16 v8, p0
move-object v9, v4
move/from16 v10, p3
move-object/from16 v11, p1
move-object/from16 v12, p2
move-object v13, v7
move-object/from16 v14, p4
.line 996
invoke-direct/range {v8 .. v14}, Landroid/content/pm/PackageParser;->parsePermissionGroup(Landroid/content/pm/PackageParser$Package;ILandroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;[Ljava/lang/String;)Landroid/content/pm/PackageParser$PermissionGroup;
move-result-object v3
if-nez v3, :cond_10f
.line 997
const/4 v4, 0x0
goto/16 :goto_29
.line 999
:cond_17f
const-string/jumbo v3, "permission"
move-object/from16 v0, v43
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_19b
move-object/from16 v3, p0
move-object/from16 v5, p1
move-object/from16 v6, p2
move-object/from16 v8, p4
.line 1000
invoke-direct/range {v3 .. v8}, Landroid/content/pm/PackageParser;->parsePermission(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;[Ljava/lang/String;)Landroid/content/pm/PackageParser$Permission;
move-result-object v3
if-nez v3, :cond_10f
.line 1001
const/4 v4, 0x0
goto/16 :goto_29
.line 1003
:cond_19b
const-string/jumbo v3, "permission-tree"
move-object/from16 v0, v43
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_1b7
move-object/from16 v3, p0
move-object/from16 v5, p1
move-object/from16 v6, p2
move-object/from16 v8, p4
.line 1004
invoke-direct/range {v3 .. v8}, Landroid/content/pm/PackageParser;->parsePermissionTree(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;[Ljava/lang/String;)Landroid/content/pm/PackageParser$Permission;
move-result-object v3
if-nez v3, :cond_10f
.line 1005
const/4 v4, 0x0
goto/16 :goto_29
.line 1007
:cond_1b7
const-string/jumbo v3, "uses-permission"
move-object/from16 v0, v43
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_1f5
.line 1008
sget-object v3, Lcom/android/internal/R$styleable;->AndroidManifestUsesPermission:[I
move-object/from16 v0, p1
invoke-virtual {v0, v7, v3}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v36
.line 1013
const/4 v3, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3}, Landroid/content/res/TypedArray;->getNonResourceString(I)Ljava/lang/String;
move-result-object v28
.line 1020
.local v28, "name":Ljava/lang/String;
invoke-virtual/range {v36 .. v36}, Landroid/content/res/TypedArray;->recycle()V
.line 1022
if-eqz v28, :cond_1f0
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->requestedPermissions:Ljava/util/ArrayList;
move-object/from16 v0, v28
invoke-virtual {v3, v0}, Ljava/util/ArrayList;->contains(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_1f0
.line 1023
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->requestedPermissions:Ljava/util/ArrayList;
invoke-virtual/range {v28 .. v28}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v5
invoke-virtual {v3, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 1024
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->requestedPermissionsRequired:Ljava/util/ArrayList;
sget-object v5, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
invoke-virtual {v3, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 1027
:cond_1f0
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_10f
.line 1029
.end local v28 # "name":Ljava/lang/String;
:cond_1f5
const-string/jumbo v3, "uses-configuration"
move-object/from16 v0, v43
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_268
.line 1030
new-instance v18, Landroid/content/pm/ConfigurationInfo;
invoke-direct/range {v18 .. v18}, Landroid/content/pm/ConfigurationInfo;-><init>()V
.line 1031
.local v18, "cPref":Landroid/content/pm/ConfigurationInfo;
sget-object v3, Lcom/android/internal/R$styleable;->AndroidManifestUsesConfiguration:[I
move-object/from16 v0, p1
invoke-virtual {v0, v7, v3}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v36
.line 1033
const/4 v3, 0x0
const/4 v5, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v5}, Landroid/content/res/TypedArray;->getInt(II)I
move-result v3
move-object/from16 v0, v18
iput v3, v0, Landroid/content/pm/ConfigurationInfo;->reqTouchScreen:I
.line 1036
const/4 v3, 0x1
const/4 v5, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v5}, Landroid/content/res/TypedArray;->getInt(II)I
move-result v3
move-object/from16 v0, v18
iput v3, v0, Landroid/content/pm/ConfigurationInfo;->reqKeyboardType:I
.line 1039
const/4 v3, 0x2
const/4 v5, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v5}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
if-eqz v3, :cond_239
.line 1042
move-object/from16 v0, v18
iget v3, v0, Landroid/content/pm/ConfigurationInfo;->reqInputFeatures:I
or-int/lit8 v3, v3, 0x1
move-object/from16 v0, v18
iput v3, v0, Landroid/content/pm/ConfigurationInfo;->reqInputFeatures:I
.line 1044
:cond_239
const/4 v3, 0x3
const/4 v5, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v5}, Landroid/content/res/TypedArray;->getInt(II)I
move-result v3
move-object/from16 v0, v18
iput v3, v0, Landroid/content/pm/ConfigurationInfo;->reqNavigation:I
.line 1047
const/4 v3, 0x4
const/4 v5, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v5}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
if-eqz v3, :cond_259
.line 1050
move-object/from16 v0, v18
iget v3, v0, Landroid/content/pm/ConfigurationInfo;->reqInputFeatures:I
or-int/lit8 v3, v3, 0x2
move-object/from16 v0, v18
iput v3, v0, Landroid/content/pm/ConfigurationInfo;->reqInputFeatures:I
.line 1052
:cond_259
invoke-virtual/range {v36 .. v36}, Landroid/content/res/TypedArray;->recycle()V
.line 1053
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->configPreferences:Ljava/util/ArrayList;
move-object/from16 v0, v18
invoke-virtual {v3, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 1055
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_10f
.line 1057
.end local v18 # "cPref":Landroid/content/pm/ConfigurationInfo;
:cond_268
const-string/jumbo v3, "uses-feature"
move-object/from16 v0, v43
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_2e5
.line 1058
new-instance v20, Landroid/content/pm/FeatureInfo;
invoke-direct/range {v20 .. v20}, Landroid/content/pm/FeatureInfo;-><init>()V
.line 1059
.local v20, "fi":Landroid/content/pm/FeatureInfo;
sget-object v3, Lcom/android/internal/R$styleable;->AndroidManifestUsesFeature:[I
move-object/from16 v0, p1
invoke-virtual {v0, v7, v3}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v36
.line 1063
const/4 v3, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3}, Landroid/content/res/TypedArray;->getNonResourceString(I)Ljava/lang/String;
move-result-object v3
move-object/from16 v0, v20
iput-object v3, v0, Landroid/content/pm/FeatureInfo;->name:Ljava/lang/String;
.line 1065
move-object/from16 v0, v20
iget-object v3, v0, Landroid/content/pm/FeatureInfo;->name:Ljava/lang/String;
if-nez v3, :cond_29d
.line 1066
const/4 v3, 0x1
const/4 v5, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v5}, Landroid/content/res/TypedArray;->getInt(II)I
move-result v3
move-object/from16 v0, v20
iput v3, v0, Landroid/content/pm/FeatureInfo;->reqGlEsVersion:I
.line 1070
:cond_29d
const/4 v3, 0x2
const/4 v5, 0x1
move-object/from16 v0, v36
invoke-virtual {v0, v3, v5}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
if-eqz v3, :cond_2b1
.line 1073
move-object/from16 v0, v20
iget v3, v0, Landroid/content/pm/FeatureInfo;->flags:I
or-int/lit8 v3, v3, 0x1
move-object/from16 v0, v20
iput v3, v0, Landroid/content/pm/FeatureInfo;->flags:I
.line 1075
:cond_2b1
invoke-virtual/range {v36 .. v36}, Landroid/content/res/TypedArray;->recycle()V
.line 1076
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->reqFeatures:Ljava/util/ArrayList;
if-nez v3, :cond_2bf
.line 1077
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
iput-object v3, v4, Landroid/content/pm/PackageParser$Package;->reqFeatures:Ljava/util/ArrayList;
.line 1079
:cond_2bf
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->reqFeatures:Ljava/util/ArrayList;
move-object/from16 v0, v20
invoke-virtual {v3, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 1081
move-object/from16 v0, v20
iget-object v3, v0, Landroid/content/pm/FeatureInfo;->name:Ljava/lang/String;
if-nez v3, :cond_2e0
.line 1082
new-instance v18, Landroid/content/pm/ConfigurationInfo;
invoke-direct/range {v18 .. v18}, Landroid/content/pm/ConfigurationInfo;-><init>()V
.line 1083
.restart local v18 # "cPref":Landroid/content/pm/ConfigurationInfo;
move-object/from16 v0, v20
iget v3, v0, Landroid/content/pm/FeatureInfo;->reqGlEsVersion:I
move-object/from16 v0, v18
iput v3, v0, Landroid/content/pm/ConfigurationInfo;->reqGlEsVersion:I
.line 1084
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->configPreferences:Ljava/util/ArrayList;
move-object/from16 v0, v18
invoke-virtual {v3, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 1087
.end local v18 # "cPref":Landroid/content/pm/ConfigurationInfo;
:cond_2e0
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_10f
.line 1089
.end local v20 # "fi":Landroid/content/pm/FeatureInfo;
:cond_2e5
const-string/jumbo v3, "uses-sdk"
move-object/from16 v0, v43
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_466
.line 1090
sget v3, Landroid/content/pm/PackageParser;->SDK_VERSION:I
if-lez v3, :cond_45a
.line 1091
sget-object v3, Lcom/android/internal/R$styleable;->AndroidManifestUsesSdk:[I
move-object/from16 v0, p1
invoke-virtual {v0, v7, v3}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v36
.line 1094
const/16 v27, 0x0
.line 1095
.local v27, "minVers":I
const/16 v26, 0x0
.line 1096
.local v26, "minCode":Ljava/lang/String;
const/16 v45, 0x0
.line 1097
.local v45, "targetVers":I
const/16 v44, 0x0
.line 1099
.local v44, "targetCode":Ljava/lang/String;
const/4 v3, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3}, Landroid/content/res/TypedArray;->peekValue(I)Landroid/util/TypedValue;
move-result-object v47
.line 1101
.local v47, "val":Landroid/util/TypedValue;
if-eqz v47, :cond_324
.line 1102
move-object/from16 v0, v47
iget v3, v0, Landroid/util/TypedValue;->type:I
const/4 v5, 0x3
if-ne v3, v5, :cond_38a
move-object/from16 v0, v47
iget-object v3, v0, Landroid/util/TypedValue;->string:Ljava/lang/CharSequence;
if-eqz v3, :cond_38a
.line 1103
move-object/from16 v0, v47
iget-object v3, v0, Landroid/util/TypedValue;->string:Ljava/lang/CharSequence;
invoke-virtual {v3}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v26
move-object/from16 v44, v26
.line 1110
:cond_324
:goto_324
const/4 v3, 0x1
move-object/from16 v0, v36
invoke-virtual {v0, v3}, Landroid/content/res/TypedArray;->peekValue(I)Landroid/util/TypedValue;
move-result-object v47
.line 1112
if-eqz v47, :cond_344
.line 1113
move-object/from16 v0, v47
iget v3, v0, Landroid/util/TypedValue;->type:I
const/4 v5, 0x3
if-ne v3, v5, :cond_393
move-object/from16 v0, v47
iget-object v3, v0, Landroid/util/TypedValue;->string:Ljava/lang/CharSequence;
if-eqz v3, :cond_393
.line 1114
move-object/from16 v0, v47
iget-object v3, v0, Landroid/util/TypedValue;->string:Ljava/lang/CharSequence;
invoke-virtual {v3}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v26
move-object/from16 v44, v26
.line 1121
:cond_344
:goto_344
invoke-virtual/range {v36 .. v36}, Landroid/content/res/TypedArray;->recycle()V
.line 1123
if-eqz v26, :cond_3b9
.line 1124
sget-object v3, Landroid/content/pm/PackageParser;->SDK_CODENAME:Ljava/lang/String;
move-object/from16 v0, v26
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_3f2
.line 1125
sget-object v3, Landroid/content/pm/PackageParser;->SDK_CODENAME:Ljava/lang/String;
if-eqz v3, :cond_39a
.line 1126
const/4 v3, 0x0
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Requires development platform "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
move-object/from16 v0, v26
invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, " (current platform is "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
sget-object v6, Landroid/content/pm/PackageParser;->SDK_CODENAME:Ljava/lang/String;
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, ")"
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
aput-object v5, p4, v3
.line 1132
:goto_381
const/16 v3, -0xc
move-object/from16 v0, p0
iput v3, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1133
const/4 v4, 0x0
goto/16 :goto_29
.line 1106
:cond_38a
move-object/from16 v0, v47
iget v0, v0, Landroid/util/TypedValue;->data:I
move/from16 v27, v0
move/from16 v45, v27
goto :goto_324
.line 1117
:cond_393
move-object/from16 v0, v47
iget v0, v0, Landroid/util/TypedValue;->data:I
move/from16 v45, v0
goto :goto_344
.line 1129
:cond_39a
const/4 v3, 0x0
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Requires development platform "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
move-object/from16 v0, v26
invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, " but this is a release platform."
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
aput-object v5, p4, v3
goto :goto_381
.line 1135
:cond_3b9
sget v3, Landroid/content/pm/PackageParser;->SDK_VERSION:I
move/from16 v0, v27
if-le v0, v3, :cond_3f2
.line 1136
const/4 v3, 0x0
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Requires newer sdk version #"
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
move/from16 v0, v27
invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, " (current version is #"
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
sget v6, Landroid/content/pm/PackageParser;->SDK_VERSION:I
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, ")"
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
aput-object v5, p4, v3
.line 1138
const/16 v3, -0xc
move-object/from16 v0, p0
iput v3, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1139
const/4 v4, 0x0
goto/16 :goto_29
.line 1142
:cond_3f2
if-eqz v44, :cond_45f
.line 1143
sget-object v3, Landroid/content/pm/PackageParser;->SDK_CODENAME:Ljava/lang/String;
move-object/from16 v0, v44
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_454
.line 1144
sget-object v3, Landroid/content/pm/PackageParser;->SDK_CODENAME:Ljava/lang/String;
if-eqz v3, :cond_435
.line 1145
const/4 v3, 0x0
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Requires development platform "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
move-object/from16 v0, v44
invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, " (current platform is "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
sget-object v6, Landroid/content/pm/PackageParser;->SDK_CODENAME:Ljava/lang/String;
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, ")"
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
aput-object v5, p4, v3
.line 1151
:goto_42c
const/16 v3, -0xc
move-object/from16 v0, p0
iput v3, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1152
const/4 v4, 0x0
goto/16 :goto_29
.line 1148
:cond_435
const/4 v3, 0x0
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Requires development platform "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
move-object/from16 v0, v44
invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, " but this is a release platform."
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
aput-object v5, p4, v3
goto :goto_42c
.line 1155
:cond_454
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
const/16 v5, 0x2710
iput v5, v3, Landroid/content/pm/ApplicationInfo;->targetSdkVersion:I
.line 1162
.end local v26 # "minCode":Ljava/lang/String;
.end local v27 # "minVers":I
.end local v44 # "targetCode":Ljava/lang/String;
.end local v45 # "targetVers":I
.end local v47 # "val":Landroid/util/TypedValue;
:cond_45a
:goto_45a
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_10f
.line 1158
.restart local v26 # "minCode":Ljava/lang/String;
.restart local v27 # "minVers":I
.restart local v44 # "targetCode":Ljava/lang/String;
.restart local v45 # "targetVers":I
.restart local v47 # "val":Landroid/util/TypedValue;
:cond_45f
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
move/from16 v0, v45
iput v0, v3, Landroid/content/pm/ApplicationInfo;->targetSdkVersion:I
goto :goto_45a
.line 1164
.end local v26 # "minCode":Ljava/lang/String;
.end local v27 # "minVers":I
.end local v44 # "targetCode":Ljava/lang/String;
.end local v45 # "targetVers":I
.end local v47 # "val":Landroid/util/TypedValue;
:cond_466
const-string/jumbo v3, "supports-screens"
move-object/from16 v0, v43
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_4dc
.line 1165
sget-object v3, Lcom/android/internal/R$styleable;->AndroidManifestSupportsScreens:[I
move-object/from16 v0, p1
invoke-virtual {v0, v7, v3}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v36
.line 1168
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
const/4 v5, 0x6
const/4 v6, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v5, v6}, Landroid/content/res/TypedArray;->getInteger(II)I
move-result v5
iput v5, v3, Landroid/content/pm/ApplicationInfo;->requiresSmallestWidthDp:I
.line 1171
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
const/4 v5, 0x7
const/4 v6, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v5, v6}, Landroid/content/res/TypedArray;->getInteger(II)I
move-result v5
iput v5, v3, Landroid/content/pm/ApplicationInfo;->compatibleWidthLimitDp:I
.line 1174
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
const/16 v5, 0x8
const/4 v6, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v5, v6}, Landroid/content/res/TypedArray;->getInteger(II)I
move-result v5
iput v5, v3, Landroid/content/pm/ApplicationInfo;->largestWidthLimitDp:I
.line 1180
const/4 v3, 0x1
move-object/from16 v0, v36
move/from16 v1, v41
invoke-virtual {v0, v3, v1}, Landroid/content/res/TypedArray;->getInteger(II)I
move-result v41
.line 1183
const/4 v3, 0x2
move-object/from16 v0, v36
move/from16 v1, v40
invoke-virtual {v0, v3, v1}, Landroid/content/res/TypedArray;->getInteger(II)I
move-result v40
.line 1186
const/4 v3, 0x3
move-object/from16 v0, v36
move/from16 v1, v39
invoke-virtual {v0, v3, v1}, Landroid/content/res/TypedArray;->getInteger(II)I
move-result v39
.line 1189
const/4 v3, 0x5
move-object/from16 v0, v36
move/from16 v1, v42
invoke-virtual {v0, v3, v1}, Landroid/content/res/TypedArray;->getInteger(II)I
move-result v42
.line 1192
const/4 v3, 0x4
move-object/from16 v0, v36
move/from16 v1, v35
invoke-virtual {v0, v3, v1}, Landroid/content/res/TypedArray;->getInteger(II)I
move-result v35
.line 1195
const/4 v3, 0x0
move-object/from16 v0, v36
move/from16 v1, v17
invoke-virtual {v0, v3, v1}, Landroid/content/res/TypedArray;->getInteger(II)I
move-result v17
.line 1199
invoke-virtual/range {v36 .. v36}, Landroid/content/res/TypedArray;->recycle()V
.line 1201
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_10f
.line 1203
:cond_4dc
const-string/jumbo v3, "protected-broadcast"
move-object/from16 v0, v43
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_522
.line 1204
sget-object v3, Lcom/android/internal/R$styleable;->AndroidManifestProtectedBroadcast:[I
move-object/from16 v0, p1
invoke-virtual {v0, v7, v3}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v36
.line 1209
const/4 v3, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3}, Landroid/content/res/TypedArray;->getNonResourceString(I)Ljava/lang/String;
move-result-object v28
.line 1212
.restart local v28 # "name":Ljava/lang/String;
invoke-virtual/range {v36 .. v36}, Landroid/content/res/TypedArray;->recycle()V
.line 1214
if-eqz v28, :cond_51d
and-int/lit8 v3, p3, 0x1
if-eqz v3, :cond_51d
.line 1215
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->protectedBroadcasts:Ljava/util/ArrayList;
if-nez v3, :cond_50a
.line 1216
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
iput-object v3, v4, Landroid/content/pm/PackageParser$Package;->protectedBroadcasts:Ljava/util/ArrayList;
.line 1218
:cond_50a
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->protectedBroadcasts:Ljava/util/ArrayList;
move-object/from16 v0, v28
invoke-virtual {v3, v0}, Ljava/util/ArrayList;->contains(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_51d
.line 1219
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->protectedBroadcasts:Ljava/util/ArrayList;
invoke-virtual/range {v28 .. v28}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v5
invoke-virtual {v3, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 1223
:cond_51d
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_10f
.line 1225
.end local v28 # "name":Ljava/lang/String;
:cond_522
const-string v3, "instrumentation"
move-object/from16 v0, v43
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_53d
move-object/from16 v3, p0
move-object/from16 v5, p1
move-object/from16 v6, p2
move-object/from16 v8, p4
.line 1226
invoke-direct/range {v3 .. v8}, Landroid/content/pm/PackageParser;->parseInstrumentation(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;[Ljava/lang/String;)Landroid/content/pm/PackageParser$Instrumentation;
move-result-object v3
if-nez v3, :cond_10f
.line 1227
const/4 v4, 0x0
goto/16 :goto_29
.line 1230
:cond_53d
const-string/jumbo v3, "original-package"
move-object/from16 v0, v43
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_580
.line 1231
sget-object v3, Lcom/android/internal/R$styleable;->AndroidManifestOriginalPackage:[I
move-object/from16 v0, p1
invoke-virtual {v0, v7, v3}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v36
.line 1234
const/4 v3, 0x0
const/4 v5, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v5}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v31
.line 1236
.local v31, "orig":Ljava/lang/String;
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->packageName:Ljava/lang/String;
move-object/from16 v0, v31
invoke-virtual {v3, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_578
.line 1237
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->mOriginalPackages:Ljava/util/ArrayList;
if-nez v3, :cond_571
.line 1238
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
iput-object v3, v4, Landroid/content/pm/PackageParser$Package;->mOriginalPackages:Ljava/util/ArrayList;
.line 1239
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->packageName:Ljava/lang/String;
iput-object v3, v4, Landroid/content/pm/PackageParser$Package;->mRealPackage:Ljava/lang/String;
.line 1241
:cond_571
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->mOriginalPackages:Ljava/util/ArrayList;
move-object/from16 v0, v31
invoke-virtual {v3, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 1244
:cond_578
invoke-virtual/range {v36 .. v36}, Landroid/content/res/TypedArray;->recycle()V
.line 1246
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_10f
.line 1248
.end local v31 # "orig":Ljava/lang/String;
:cond_580
const-string v3, "adopt-permissions"
move-object/from16 v0, v43
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_5b6
.line 1249
sget-object v3, Lcom/android/internal/R$styleable;->AndroidManifestOriginalPackage:[I
move-object/from16 v0, p1
invoke-virtual {v0, v7, v3}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v36
.line 1252
const/4 v3, 0x0
const/4 v5, 0x0
move-object/from16 v0, v36
invoke-virtual {v0, v3, v5}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v28
.line 1255
.restart local v28 # "name":Ljava/lang/String;
invoke-virtual/range {v36 .. v36}, Landroid/content/res/TypedArray;->recycle()V
.line 1257
if-eqz v28, :cond_5b1
.line 1258
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->mAdoptPermissions:Ljava/util/ArrayList;
if-nez v3, :cond_5aa
.line 1259
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
iput-object v3, v4, Landroid/content/pm/PackageParser$Package;->mAdoptPermissions:Ljava/util/ArrayList;
.line 1261
:cond_5aa
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->mAdoptPermissions:Ljava/util/ArrayList;
move-object/from16 v0, v28
invoke-virtual {v3, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 1264
:cond_5b1
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_10f
.line 1266
.end local v28 # "name":Ljava/lang/String;
:cond_5b6
const-string/jumbo v3, "uses-gl-texture"
move-object/from16 v0, v43
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_5c6
.line 1268
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_10f
.line 1271
:cond_5c6
const-string v3, "compatible-screens"
move-object/from16 v0, v43
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_5d5
.line 1273
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_10f
.line 1276
:cond_5d5
const-string v3, "eat-comment"
move-object/from16 v0, v43
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_5e4
.line 1278
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_10f
.line 1288
:cond_5e4
const-string v3, "PackageParser"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "Unknown element under <manifest>: "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-interface/range {p2 .. p2}, Landroid/content/res/XmlResourceParser;->getName()Ljava/lang/String;
move-result-object v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, " at "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
move-object/from16 v0, p0
iget-object v6, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, " "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-interface/range {p2 .. p2}, Landroid/content/res/XmlResourceParser;->getPositionDescription()Ljava/lang/String;
move-result-object v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v3, v5}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 1291
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_10f
.line 1296
.end local v43 # "tagName":Ljava/lang/String;
:cond_621
if-nez v21, :cond_636
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->instrumentation:Ljava/util/ArrayList;
invoke-virtual {v3}, Ljava/util/ArrayList;->size()I
move-result v3
if-nez v3, :cond_636
.line 1297
const/4 v3, 0x0
const-string v5, "<manifest> does not contain an <application> or <instrumentation>"
aput-object v5, p4, v3
.line 1298
const/16 v3, -0x6d
move-object/from16 v0, p0
iput v3, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1301
:cond_636
sget-object v3, Landroid/content/pm/PackageParser;->NEW_PERMISSIONS:[Landroid/content/pm/PackageParser$NewPermissionInfo;
array-length v15, v3
.line 1302
.local v15, "NP":I
const/16 v22, 0x0
.line 1303
.local v22, "implicitPerms":Ljava/lang/StringBuilder;
const/16 v24, 0x0
.local v24, "ip":I
:goto_63d
move/from16 v0, v24
if-ge v0, v15, :cond_64f
.line 1304
sget-object v3, Landroid/content/pm/PackageParser;->NEW_PERMISSIONS:[Landroid/content/pm/PackageParser$NewPermissionInfo;
aget-object v30, v3, v24
.line 1306
.local v30, "npi":Landroid/content/pm/PackageParser$NewPermissionInfo;
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v3, v3, Landroid/content/pm/ApplicationInfo;->targetSdkVersion:I
move-object/from16 v0, v30
iget v5, v0, Landroid/content/pm/PackageParser$NewPermissionInfo;->sdkVersion:I
if-lt v3, v5, :cond_684
.line 1322
.end local v30 # "npi":Landroid/content/pm/PackageParser$NewPermissionInfo;
:cond_64f
if-eqz v22, :cond_65a
.line 1323
const-string v3, "PackageParser"
invoke-virtual/range {v22 .. v22}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v3, v5}, Landroid/util/Slog;->i(Ljava/lang/String;Ljava/lang/String;)I
.line 1326
:cond_65a
sget-object v3, Landroid/content/pm/PackageParser;->SPLIT_PERMISSIONS:[Landroid/content/pm/PackageParser$SplitPermissionInfo;
array-length v0, v3
move/from16 v16, v0
.line 1327
.local v16, "NS":I
const/16 v25, 0x0
.local v25, "is":I
:goto_661
move/from16 v0, v25
move/from16 v1, v16
if-ge v0, v1, :cond_6fa
.line 1328
sget-object v3, Landroid/content/pm/PackageParser;->SPLIT_PERMISSIONS:[Landroid/content/pm/PackageParser$SplitPermissionInfo;
aget-object v37, v3, v25
.line 1330
.local v37, "spi":Landroid/content/pm/PackageParser$SplitPermissionInfo;
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v3, v3, Landroid/content/pm/ApplicationInfo;->targetSdkVersion:I
move-object/from16 v0, v37
iget v5, v0, Landroid/content/pm/PackageParser$SplitPermissionInfo;->targetSdk:I
if-ge v3, v5, :cond_681
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->requestedPermissions:Ljava/util/ArrayList;
move-object/from16 v0, v37
iget-object v5, v0, Landroid/content/pm/PackageParser$SplitPermissionInfo;->rootPerm:Ljava/lang/String;
invoke-virtual {v3, v5}, Ljava/util/ArrayList;->contains(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_6ce
.line 1327
:cond_681
add-int/lit8 v25, v25, 0x1
goto :goto_661
.line 1309
.end local v16 # "NS":I
.end local v25 # "is":I
.end local v37 # "spi":Landroid/content/pm/PackageParser$SplitPermissionInfo;
.restart local v30 # "npi":Landroid/content/pm/PackageParser$NewPermissionInfo;
:cond_684
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->requestedPermissions:Ljava/util/ArrayList;
move-object/from16 v0, v30
iget-object v5, v0, Landroid/content/pm/PackageParser$NewPermissionInfo;->name:Ljava/lang/String;
invoke-virtual {v3, v5}, Ljava/util/ArrayList;->contains(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_6c2
.line 1310
if-nez v22, :cond_6c6
.line 1311
new-instance v22, Ljava/lang/StringBuilder;
.end local v22 # "implicitPerms":Ljava/lang/StringBuilder;
const/16 v3, 0x80
move-object/from16 v0, v22
invoke-direct {v0, v3}, Ljava/lang/StringBuilder;-><init>(I)V
.line 1312
.restart local v22 # "implicitPerms":Ljava/lang/StringBuilder;
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->packageName:Ljava/lang/String;
move-object/from16 v0, v22
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 1313
const-string v3, ": compat added "
move-object/from16 v0, v22
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 1317
:goto_6a9
move-object/from16 v0, v30
iget-object v3, v0, Landroid/content/pm/PackageParser$NewPermissionInfo;->name:Ljava/lang/String;
move-object/from16 v0, v22
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 1318
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->requestedPermissions:Ljava/util/ArrayList;
move-object/from16 v0, v30
iget-object v5, v0, Landroid/content/pm/PackageParser$NewPermissionInfo;->name:Ljava/lang/String;
invoke-virtual {v3, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 1319
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->requestedPermissionsRequired:Ljava/util/ArrayList;
sget-object v5, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
invoke-virtual {v3, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 1303
:cond_6c2
add-int/lit8 v24, v24, 0x1
goto/16 :goto_63d
.line 1315
:cond_6c6
const/16 v3, 0x20
move-object/from16 v0, v22
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_6a9
.line 1334
.end local v30 # "npi":Landroid/content/pm/PackageParser$NewPermissionInfo;
.restart local v16 # "NS":I
.restart local v25 # "is":I
.restart local v37 # "spi":Landroid/content/pm/PackageParser$SplitPermissionInfo;
:cond_6ce
const/16 v23, 0x0
.local v23, "in":I
:goto_6d0
move-object/from16 v0, v37
iget-object v3, v0, Landroid/content/pm/PackageParser$SplitPermissionInfo;->newPerms:[Ljava/lang/String;
array-length v3, v3
move/from16 v0, v23
if-ge v0, v3, :cond_681
.line 1335
move-object/from16 v0, v37
iget-object v3, v0, Landroid/content/pm/PackageParser$SplitPermissionInfo;->newPerms:[Ljava/lang/String;
aget-object v33, v3, v23
.line 1336
.local v33, "perm":Ljava/lang/String;
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->requestedPermissions:Ljava/util/ArrayList;
move-object/from16 v0, v33
invoke-virtual {v3, v0}, Ljava/util/ArrayList;->contains(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_6f7
.line 1337
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->requestedPermissions:Ljava/util/ArrayList;
move-object/from16 v0, v33
invoke-virtual {v3, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 1338
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->requestedPermissionsRequired:Ljava/util/ArrayList;
sget-object v5, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
invoke-virtual {v3, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 1334
:cond_6f7
add-int/lit8 v23, v23, 0x1
goto :goto_6d0
.line 1343
.end local v23 # "in":I
.end local v33 # "perm":Ljava/lang/String;
.end local v37 # "spi":Landroid/content/pm/PackageParser$SplitPermissionInfo;
:cond_6fa
if-ltz v41, :cond_705
if-lez v41, :cond_70d
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v3, v3, Landroid/content/pm/ApplicationInfo;->targetSdkVersion:I
const/4 v5, 0x4
if-lt v3, v5, :cond_70d
.line 1346
:cond_705
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v5, v3, Landroid/content/pm/ApplicationInfo;->flags:I
or-int/lit16 v5, v5, 0x200
iput v5, v3, Landroid/content/pm/ApplicationInfo;->flags:I
.line 1348
:cond_70d
if-eqz v40, :cond_717
.line 1349
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v5, v3, Landroid/content/pm/ApplicationInfo;->flags:I
or-int/lit16 v5, v5, 0x400
iput v5, v3, Landroid/content/pm/ApplicationInfo;->flags:I
.line 1351
:cond_717
if-ltz v39, :cond_722
if-lez v39, :cond_72a
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v3, v3, Landroid/content/pm/ApplicationInfo;->targetSdkVersion:I
const/4 v5, 0x4
if-lt v3, v5, :cond_72a
.line 1354
:cond_722
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v5, v3, Landroid/content/pm/ApplicationInfo;->flags:I
or-int/lit16 v5, v5, 0x800
iput v5, v3, Landroid/content/pm/ApplicationInfo;->flags:I
.line 1356
:cond_72a
if-ltz v42, :cond_736
if-lez v42, :cond_73f
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v3, v3, Landroid/content/pm/ApplicationInfo;->targetSdkVersion:I
const/16 v5, 0x9
if-lt v3, v5, :cond_73f
.line 1359
:cond_736
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v5, v3, Landroid/content/pm/ApplicationInfo;->flags:I
const/high16 v6, 0x80000
or-int/2addr v5, v6
iput v5, v3, Landroid/content/pm/ApplicationInfo;->flags:I
.line 1361
:cond_73f
if-ltz v35, :cond_74a
if-lez v35, :cond_752
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v3, v3, Landroid/content/pm/ApplicationInfo;->targetSdkVersion:I
const/4 v5, 0x4
if-lt v3, v5, :cond_752
.line 1364
:cond_74a
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v5, v3, Landroid/content/pm/ApplicationInfo;->flags:I
or-int/lit16 v5, v5, 0x1000
iput v5, v3, Landroid/content/pm/ApplicationInfo;->flags:I
.line 1366
:cond_752
if-ltz v17, :cond_75d
if-lez v17, :cond_29
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v3, v3, Landroid/content/pm/ApplicationInfo;->targetSdkVersion:I
const/4 v5, 0x4
if-lt v3, v5, :cond_29
.line 1369
:cond_75d
iget-object v3, v4, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v5, v3, Landroid/content/pm/ApplicationInfo;->flags:I
or-int/lit16 v5, v5, 0x2000
iput v5, v3, Landroid/content/pm/ApplicationInfo;->flags:I
goto/16 :goto_29
.end method
.method private parsePackageItemInfo(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageItemInfo;[Ljava/lang/String;Ljava/lang/String;Landroid/content/res/TypedArray;IIII)Z
.registers 18
.param p1, "owner" # Landroid/content/pm/PackageParser$Package;
.param p2, "outInfo" # Landroid/content/pm/PackageItemInfo;
.param p3, "outError" # [Ljava/lang/String;
.param p4, "tag" # Ljava/lang/String;
.param p5, "sa" # Landroid/content/res/TypedArray;
.param p6, "nameRes" # I
.param p7, "labelRes" # I
.param p8, "iconRes" # I
.param p9, "logoRes" # I
.prologue
.line 1990
const/4 v5, 0x0
invoke-virtual {p5, p6, v5}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v3
.line 1991
.local v3, "name":Ljava/lang/String;
if-nez v3, :cond_1f
.line 1992
const/4 v5, 0x0
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v6, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v6
const-string v7, " does not specify android:name"
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v6
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
aput-object v6, p3, v5
.line 1993
const/4 v5, 0x0
.line 2020
:goto_1e
return v5
.line 1996
:cond_1f
iget-object v5, p1, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget-object v5, v5, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
invoke-static {v5, v3, p3}, Landroid/content/pm/PackageParser;->buildClassName(Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/String;)Ljava/lang/String;
move-result-object v5
iput-object v5, p2, Landroid/content/pm/PackageItemInfo;->name:Ljava/lang/String;
.line 1998
iget-object v5, p2, Landroid/content/pm/PackageItemInfo;->name:Ljava/lang/String;
if-nez v5, :cond_2f
.line 1999
const/4 v5, 0x0
goto :goto_1e
.line 2002
:cond_2f
const/4 v5, 0x0
move/from16 v0, p8
invoke-virtual {p5, v0, v5}, Landroid/content/res/TypedArray;->getResourceId(II)I
move-result v1
.line 2003
.local v1, "iconVal":I
if-eqz v1, :cond_3d
.line 2004
iput v1, p2, Landroid/content/pm/PackageItemInfo;->icon:I
.line 2005
const/4 v5, 0x0
iput-object v5, p2, Landroid/content/pm/PackageItemInfo;->nonLocalizedLabel:Ljava/lang/CharSequence;
.line 2008
:cond_3d
const/4 v5, 0x0
move/from16 v0, p9
invoke-virtual {p5, v0, v5}, Landroid/content/res/TypedArray;->getResourceId(II)I
move-result v2
.line 2009
.local v2, "logoVal":I
if-eqz v2, :cond_48
.line 2010
iput v2, p2, Landroid/content/pm/PackageItemInfo;->logo:I
.line 2013
:cond_48
invoke-virtual {p5, p7}, Landroid/content/res/TypedArray;->peekValue(I)Landroid/util/TypedValue;
move-result-object v4
.line 2014
.local v4, "v":Landroid/util/TypedValue;
if-eqz v4, :cond_5a
iget v5, v4, Landroid/util/TypedValue;->resourceId:I
iput v5, p2, Landroid/content/pm/PackageItemInfo;->labelRes:I
if-nez v5, :cond_5a
.line 2015
invoke-virtual {v4}, Landroid/util/TypedValue;->coerceToString()Ljava/lang/CharSequence;
move-result-object v5
iput-object v5, p2, Landroid/content/pm/PackageItemInfo;->nonLocalizedLabel:Ljava/lang/CharSequence;
.line 2018
:cond_5a
iget-object v5, p1, Landroid/content/pm/PackageParser$Package;->packageName:Ljava/lang/String;
iput-object v5, p2, Landroid/content/pm/PackageItemInfo;->packageName:Ljava/lang/String;
.line 2020
const/4 v5, 0x1
goto :goto_1e
.end method
.method private static parsePackageLite(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;I[Ljava/lang/String;)Landroid/content/pm/PackageParser$PackageLite;
.registers 17
.param p0, "res" # Landroid/content/res/Resources;
.param p1, "parser" # Lorg/xmlpull/v1/XmlPullParser;
.param p2, "attrs" # Landroid/util/AttributeSet;
.param p3, "flags" # I
.param p4, "outError" # [Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Lorg/xmlpull/v1/XmlPullParserException;
}
.end annotation
.prologue
.line 826
:cond_0
invoke-interface {p1}, Lorg/xmlpull/v1/XmlPullParser;->next()I
move-result v6
.local v6, "type":I
const/4 v9, 0x2
if-eq v6, v9, :cond_a
const/4 v9, 0x1
if-ne v6, v9, :cond_0
.line 830
:cond_a
const/4 v9, 0x2
if-eq v6, v9, :cond_14
.line 831
const/4 v9, 0x0
const-string v10, "No start tag found"
aput-object v10, p4, v9
.line 832
const/4 v9, 0x0
.line 879
:goto_13
return-object v9
.line 836
:cond_14
invoke-interface {p1}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v9
const-string v10, "manifest"
invoke-virtual {v9, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v9
if-nez v9, :cond_27
.line 837
const/4 v9, 0x0
const-string v10, "No <manifest> tag"
aput-object v10, p4, v9
.line 838
const/4 v9, 0x0
goto :goto_13
.line 840
:cond_27
const/4 v9, 0x0
const-string/jumbo v10, "package"
invoke-interface {p2, v9, v10}, Landroid/util/AttributeSet;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
.line 841
.local v4, "pkgName":Ljava/lang/String;
if-eqz v4, :cond_37
invoke-virtual {v4}, Ljava/lang/String;->length()I
move-result v9
if-nez v9, :cond_3e
.line 842
:cond_37
const/4 v9, 0x0
const-string v10, "<manifest> does not specify package"
aput-object v10, p4, v9
.line 843
const/4 v9, 0x0
goto :goto_13
.line 845
:cond_3e
const/4 v9, 0x1
invoke-static {v4, v9}, Landroid/content/pm/PackageParser;->validateName(Ljava/lang/String;Z)Ljava/lang/String;
move-result-object v3
.line 846
.local v3, "nameError":Ljava/lang/String;
if-eqz v3, :cond_6f
const-string v9, "android"
invoke-virtual {v9, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v9
if-nez v9, :cond_6f
.line 847
const/4 v9, 0x0
new-instance v10, Ljava/lang/StringBuilder;
invoke-direct {v10}, Ljava/lang/StringBuilder;-><init>()V
const-string v11, "<manifest> specifies bad package name \""
invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v10
invoke-virtual {v10, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v10
const-string v11, "\": "
invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v10
invoke-virtual {v10, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v10
invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v10
aput-object v10, p4, v9
.line 849
const/4 v9, 0x0
goto :goto_13
.line 851
:cond_6f
const/4 v2, -0x1
.line 852
.local v2, "installLocation":I
const/4 v1, 0x0
.local v1, "i":I
:goto_71
invoke-interface {p2}, Landroid/util/AttributeSet;->getAttributeCount()I
move-result v9
if-ge v1, v9, :cond_88
.line 853
invoke-interface {p2, v1}, Landroid/util/AttributeSet;->getAttributeName(I)Ljava/lang/String;
move-result-object v0
.line 854
.local v0, "attr":Ljava/lang/String;
const-string v9, "installLocation"
invoke-virtual {v0, v9}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v9
if-eqz v9, :cond_c6
.line 855
const/4 v9, -0x1
invoke-interface {p2, v1, v9}, Landroid/util/AttributeSet;->getAttributeIntValue(II)I
move-result v2
.line 862
.end local v0 # "attr":Ljava/lang/String;
:cond_88
invoke-interface {p1}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v9
add-int/lit8 v5, v9, 0x1
.line 864
.local v5, "searchDepth":I
new-instance v8, Ljava/util/ArrayList;
invoke-direct {v8}, Ljava/util/ArrayList;-><init>()V
.line 866
.local v8, "verifiers":Ljava/util/List;, "Ljava/util/List<Landroid/content/pm/VerifierInfo;>;"
:cond_93
:goto_93
invoke-interface {p1}, Lorg/xmlpull/v1/XmlPullParser;->next()I
move-result v6
const/4 v9, 0x1
if-eq v6, v9, :cond_c9
const/4 v9, 0x3
if-ne v6, v9, :cond_a3
invoke-interface {p1}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v9
if-lt v9, v5, :cond_c9
.line 867
:cond_a3
const/4 v9, 0x3
if-eq v6, v9, :cond_93
const/4 v9, 0x4
if-eq v6, v9, :cond_93
.line 871
invoke-interface {p1}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v9
if-ne v9, v5, :cond_93
const-string/jumbo v9, "package-verifier"
invoke-interface {p1}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v10
invoke-virtual {v9, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v9
if-eqz v9, :cond_93
.line 872
invoke-static/range {p0 .. p4}, Landroid/content/pm/PackageParser;->parseVerifier(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;I[Ljava/lang/String;)Landroid/content/pm/VerifierInfo;
move-result-object v7
.line 873
.local v7, "verifier":Landroid/content/pm/VerifierInfo;
if-eqz v7, :cond_93
.line 874
invoke-interface {v8, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_93
.line 852
.end local v5 # "searchDepth":I
.end local v7 # "verifier":Landroid/content/pm/VerifierInfo;
.end local v8 # "verifiers":Ljava/util/List;, "Ljava/util/List<Landroid/content/pm/VerifierInfo;>;"
.restart local v0 # "attr":Ljava/lang/String;
:cond_c6
add-int/lit8 v1, v1, 0x1
goto :goto_71
.line 879
.end local v0 # "attr":Ljava/lang/String;
.restart local v5 # "searchDepth":I
.restart local v8 # "verifiers":Ljava/util/List;, "Ljava/util/List<Landroid/content/pm/VerifierInfo;>;"
:cond_c9
new-instance v9, Landroid/content/pm/PackageParser$PackageLite;
invoke-virtual {v4}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v10
invoke-direct {v9, v10, v2, v8}, Landroid/content/pm/PackageParser$PackageLite;-><init>(Ljava/lang/String;ILjava/util/List;)V
goto/16 :goto_13
.end method
.method public static parsePackageLite(Ljava/lang/String;I)Landroid/content/pm/PackageParser$PackageLite;
.registers 34
.param p0, "packageFilePath" # Ljava/lang/String;
.param p1, "flags" # I
.prologue
.line 715
const/16 v23, 0x0
.line 719
.local v23, "assmgr":Landroid/content/res/AssetManager;
:try_start_2
new-instance v5, Landroid/content/res/AssetManager;
invoke-direct {v5}, Landroid/content/res/AssetManager;-><init>()V
:try_end_7
.catch Ljava/lang/Exception; {:try_start_2 .. :try_end_7} :catch_89
.line 720
.end local v23 # "assmgr":Landroid/content/res/AssetManager;
.local v5, "assmgr":Landroid/content/res/AssetManager;
const/4 v6, 0x0
const/4 v7, 0x0
const/4 v8, 0x0
const/4 v9, 0x0
const/4 v10, 0x0
const/4 v11, 0x0
const/4 v12, 0x0
const/4 v13, 0x0
const/4 v14, 0x0
const/4 v15, 0x0
const/16 v16, 0x0
const/16 v17, 0x0
const/16 v18, 0x0
const/16 v19, 0x0
const/16 v20, 0x0
const/16 v21, 0x0
:try_start_1d
sget v22, Landroid/os/Build$VERSION;->RESOURCES_SDK_INT:I
invoke-virtual/range {v5 .. v22}, Landroid/content/res/AssetManager;->setConfiguration(IILjava/lang/String;IIIIIIIIIIIIII)V
.line 723
move-object/from16 v0, p0
invoke-virtual {v5, v0}, Landroid/content/res/AssetManager;->addAssetPath(Ljava/lang/String;)I
move-result v25
.line 724
.local v25, "cookie":I
if-nez v25, :cond_2d
.line 725
const/16 v29, 0x0
.line 756
.end local v25 # "cookie":I
:cond_2c
:goto_2c
return-object v29
.line 728
.restart local v25 # "cookie":I
:cond_2d
new-instance v28, Landroid/util/DisplayMetrics;
invoke-direct/range {v28 .. v28}, Landroid/util/DisplayMetrics;-><init>()V
.line 729
.local v28, "metrics":Landroid/util/DisplayMetrics;
invoke-virtual/range {v28 .. v28}, Landroid/util/DisplayMetrics;->setToDefaults()V
.line 730
new-instance v31, Landroid/content/res/Resources;
const/4 v6, 0x0
move-object/from16 v0, v31
move-object/from16 v1, v28
invoke-direct {v0, v5, v1, v6}, Landroid/content/res/Resources;-><init>(Landroid/content/res/AssetManager;Landroid/util/DisplayMetrics;Landroid/content/res/Configuration;)V
.line 731
.local v31, "res":Landroid/content/res/Resources;
const-string v6, "AndroidManifest.xml"
move/from16 v0, v25
invoke-virtual {v5, v0, v6}, Landroid/content/res/AssetManager;->openXmlResourceParser(ILjava/lang/String;)Landroid/content/res/XmlResourceParser;
:try_end_46
.catch Ljava/lang/Exception; {:try_start_1d .. :try_end_46} :catch_e7
move-result-object v30
.line 739
.local v30, "parser":Landroid/content/res/XmlResourceParser;
move-object/from16 v24, v30
.line 740
.local v24, "attrs":Landroid/util/AttributeSet;
const/4 v6, 0x1
new-array v0, v6, [Ljava/lang/String;
move-object/from16 v27, v0
.line 741
.local v27, "errors":[Ljava/lang/String;
const/16 v29, 0x0
.line 743
.local v29, "packageLite":Landroid/content/pm/PackageParser$PackageLite;
:try_start_50
move-object/from16 v0, v31
move-object/from16 v1, v30
move-object/from16 v2, v24
move/from16 v3, p1
move-object/from16 v4, v27
invoke-static {v0, v1, v2, v3, v4}, Landroid/content/pm/PackageParser;->parsePackageLite(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;I[Ljava/lang/String;)Landroid/content/pm/PackageParser$PackageLite;
:try_end_5d
.catch Ljava/io/IOException; {:try_start_50 .. :try_end_5d} :catch_b1
.catch Lorg/xmlpull/v1/XmlPullParserException; {:try_start_50 .. :try_end_5d} :catch_c6
.catchall {:try_start_50 .. :try_end_5d} :catchall_db
move-result-object v29
.line 749
if-eqz v30, :cond_63
invoke-interface/range {v30 .. v30}, Landroid/content/res/XmlResourceParser;->close()V
.line 750
:cond_63
if-eqz v5, :cond_68
invoke-virtual {v5}, Landroid/content/res/AssetManager;->close()V
.line 752
:cond_68
:goto_68
if-nez v29, :cond_2c
.line 753
const-string v6, "PackageParser"
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v8, "parsePackageLite error: "
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
const/4 v8, 0x0
aget-object v8, v27, v8
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v7
invoke-static {v6, v7}, Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 754
const/16 v29, 0x0
goto :goto_2c
.line 732
.end local v5 # "assmgr":Landroid/content/res/AssetManager;
.end local v24 # "attrs":Landroid/util/AttributeSet;
.end local v25 # "cookie":I
.end local v27 # "errors":[Ljava/lang/String;
.end local v28 # "metrics":Landroid/util/DisplayMetrics;
.end local v29 # "packageLite":Landroid/content/pm/PackageParser$PackageLite;
.end local v30 # "parser":Landroid/content/res/XmlResourceParser;
.end local v31 # "res":Landroid/content/res/Resources;
.restart local v23 # "assmgr":Landroid/content/res/AssetManager;
:catch_89
move-exception v26
move-object/from16 v5, v23
.line 733
.end local v23 # "assmgr":Landroid/content/res/AssetManager;
.restart local v5 # "assmgr":Landroid/content/res/AssetManager;
.local v26, "e":Ljava/lang/Exception;
:goto_8c
if-eqz v5, :cond_91
invoke-virtual {v5}, Landroid/content/res/AssetManager;->close()V
.line 734
:cond_91
const-string v6, "PackageParser"
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
const-string v8, "Unable to read AndroidManifest.xml of "
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
move-object/from16 v0, p0
invoke-virtual {v7, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v7
move-object/from16 v0, v26
invoke-static {v6, v7, v0}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 736
const/16 v29, 0x0
goto/16 :goto_2c
.line 744
.end local v26 # "e":Ljava/lang/Exception;
.restart local v24 # "attrs":Landroid/util/AttributeSet;
.restart local v25 # "cookie":I
.restart local v27 # "errors":[Ljava/lang/String;
.restart local v28 # "metrics":Landroid/util/DisplayMetrics;
.restart local v29 # "packageLite":Landroid/content/pm/PackageParser$PackageLite;
.restart local v30 # "parser":Landroid/content/res/XmlResourceParser;
.restart local v31 # "res":Landroid/content/res/Resources;
:catch_b1
move-exception v26
.line 745
.local v26, "e":Ljava/io/IOException;
:try_start_b2
const-string v6, "PackageParser"
move-object/from16 v0, p0
move-object/from16 v1, v26
invoke-static {v6, v0, v1}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:try_end_bb
.catchall {:try_start_b2 .. :try_end_bb} :catchall_db
.line 749
if-eqz v30, :cond_c0
invoke-interface/range {v30 .. v30}, Landroid/content/res/XmlResourceParser;->close()V
.line 750
:cond_c0
if-eqz v5, :cond_68
invoke-virtual {v5}, Landroid/content/res/AssetManager;->close()V
goto :goto_68
.line 746
.end local v26 # "e":Ljava/io/IOException;
:catch_c6
move-exception v26
.line 747
.local v26, "e":Lorg/xmlpull/v1/XmlPullParserException;
:try_start_c7
const-string v6, "PackageParser"
move-object/from16 v0, p0
move-object/from16 v1, v26
invoke-static {v6, v0, v1}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:try_end_d0
.catchall {:try_start_c7 .. :try_end_d0} :catchall_db
.line 749
if-eqz v30, :cond_d5
invoke-interface/range {v30 .. v30}, Landroid/content/res/XmlResourceParser;->close()V
.line 750
:cond_d5
if-eqz v5, :cond_68
invoke-virtual {v5}, Landroid/content/res/AssetManager;->close()V
goto :goto_68
.line 749
.end local v26 # "e":Lorg/xmlpull/v1/XmlPullParserException;
:catchall_db
move-exception v6
if-eqz v30, :cond_e1
invoke-interface/range {v30 .. v30}, Landroid/content/res/XmlResourceParser;->close()V
.line 750
:cond_e1
if-eqz v5, :cond_e6
invoke-virtual {v5}, Landroid/content/res/AssetManager;->close()V
:cond_e6
throw v6
.line 732
.end local v24 # "attrs":Landroid/util/AttributeSet;
.end local v25 # "cookie":I
.end local v27 # "errors":[Ljava/lang/String;
.end local v28 # "metrics":Landroid/util/DisplayMetrics;
.end local v29 # "packageLite":Landroid/content/pm/PackageParser$PackageLite;
.end local v30 # "parser":Landroid/content/res/XmlResourceParser;
.end local v31 # "res":Landroid/content/res/Resources;
:catch_e7
move-exception v26
goto :goto_8c
.end method
.method private static parsePackageName(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;I[Ljava/lang/String;)Ljava/lang/String;
.registers 12
.param p0, "parser" # Lorg/xmlpull/v1/XmlPullParser;
.param p1, "attrs" # Landroid/util/AttributeSet;
.param p2, "flags" # I
.param p3, "outError" # [Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Lorg/xmlpull/v1/XmlPullParserException;
}
.end annotation
.prologue
const/4 v4, 0x2
const/4 v7, 0x1
const/4 v6, 0x0
const/4 v3, 0x0
.line 791
:cond_4
invoke-interface {p0}, Lorg/xmlpull/v1/XmlPullParser;->next()I
move-result v2
.local v2, "type":I
if-eq v2, v4, :cond_c
if-ne v2, v7, :cond_4
.line 795
:cond_c
if-eq v2, v4, :cond_13
.line 796
const-string v4, "No start tag found"
aput-object v4, p3, v6
.line 817
:goto_12
return-object v3
.line 801
:cond_13
invoke-interface {p0}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v4
const-string v5, "manifest"
invoke-virtual {v4, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-nez v4, :cond_24
.line 802
const-string v4, "No <manifest> tag"
aput-object v4, p3, v6
goto :goto_12
.line 805
:cond_24
const-string/jumbo v4, "package"
invoke-interface {p1, v3, v4}, Landroid/util/AttributeSet;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 806
.local v1, "pkgName":Ljava/lang/String;
if-eqz v1, :cond_33
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v4
if-nez v4, :cond_38
.line 807
:cond_33
const-string v4, "<manifest> does not specify package"
aput-object v4, p3, v6
goto :goto_12
.line 810
:cond_38
invoke-static {v1, v7}, Landroid/content/pm/PackageParser;->validateName(Ljava/lang/String;Z)Ljava/lang/String;
move-result-object v0
.line 811
.local v0, "nameError":Ljava/lang/String;
if-eqz v0, :cond_66
const-string v4, "android"
invoke-virtual {v4, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-nez v4, :cond_66
.line 812
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "<manifest> specifies bad package name \""
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v5, "\": "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
aput-object v4, p3, v6
goto :goto_12
.line 817
:cond_66
invoke-virtual {v1}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v3
goto :goto_12
.end method
.method private parsePermission(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;[Ljava/lang/String;)Landroid/content/pm/PackageParser$Permission;
.registers 21
.param p1, "owner" # Landroid/content/pm/PackageParser$Package;
.param p2, "res" # Landroid/content/res/Resources;
.param p3, "parser" # Lorg/xmlpull/v1/XmlPullParser;
.param p4, "attrs" # Landroid/util/AttributeSet;
.param p5, "outError" # [Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/xmlpull/v1/XmlPullParserException;,
Ljava/io/IOException;
}
.end annotation
.prologue
.line 1503
new-instance v13, Landroid/content/pm/PackageParser$Permission;
move-object/from16 v0, p1
invoke-direct {v13, v0}, Landroid/content/pm/PackageParser$Permission;-><init>(Landroid/content/pm/PackageParser$Package;)V
.line 1505
.local v13, "perm":Landroid/content/pm/PackageParser$Permission;
sget-object v2, Lcom/android/internal/R$styleable;->AndroidManifestPermission:[I
move-object/from16 v0, p2
move-object/from16 v1, p4
invoke-virtual {v0, v1, v2}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v7
.line 1508
.local v7, "sa":Landroid/content/res/TypedArray;
iget-object v4, v13, Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
const-string v6, "<permission>"
const/4 v8, 0x2
const/4 v9, 0x0
const/4 v10, 0x1
const/4 v11, 0x6
move-object v2, p0
move-object/from16 v3, p1
move-object/from16 v5, p5
invoke-direct/range {v2 .. v11}, Landroid/content/pm/PackageParser;->parsePackageItemInfo(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageItemInfo;[Ljava/lang/String;Ljava/lang/String;Landroid/content/res/TypedArray;IIII)Z
move-result v2
if-nez v2, :cond_2d
.line 1514
invoke-virtual {v7}, Landroid/content/res/TypedArray;->recycle()V
.line 1515
const/16 v2, -0x6c
iput v2, p0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1516
const/4 v13, 0x0
.line 1563
.end local v13 # "perm":Landroid/content/pm/PackageParser$Permission;
:goto_2c
return-object v13
.line 1521
.restart local v13 # "perm":Landroid/content/pm/PackageParser$Permission;
:cond_2d
iget-object v2, v13, Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
const/4 v3, 0x4
invoke-virtual {v7, v3}, Landroid/content/res/TypedArray;->getNonResourceString(I)Ljava/lang/String;
move-result-object v3
iput-object v3, v2, Landroid/content/pm/PermissionInfo;->group:Ljava/lang/String;
.line 1523
iget-object v2, v13, Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
iget-object v2, v2, Landroid/content/pm/PermissionInfo;->group:Ljava/lang/String;
if-eqz v2, :cond_48
.line 1524
iget-object v2, v13, Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
iget-object v3, v13, Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
iget-object v3, v3, Landroid/content/pm/PermissionInfo;->group:Ljava/lang/String;
invoke-virtual {v3}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v3
iput-object v3, v2, Landroid/content/pm/PermissionInfo;->group:Ljava/lang/String;
.line 1527
:cond_48
iget-object v2, v13, Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
const/4 v3, 0x5
const/4 v4, 0x0
invoke-virtual {v7, v3, v4}, Landroid/content/res/TypedArray;->getResourceId(II)I
move-result v3
iput v3, v2, Landroid/content/pm/PermissionInfo;->descriptionRes:I
.line 1531
iget-object v2, v13, Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
const/4 v3, 0x3
const/4 v4, 0x0
invoke-virtual {v7, v3, v4}, Landroid/content/res/TypedArray;->getInt(II)I
move-result v3
iput v3, v2, Landroid/content/pm/PermissionInfo;->protectionLevel:I
.line 1535
invoke-virtual {v7}, Landroid/content/res/TypedArray;->recycle()V
.line 1537
iget-object v2, v13, Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
iget v2, v2, Landroid/content/pm/PermissionInfo;->protectionLevel:I
const/4 v3, -0x1
if-ne v2, v3, :cond_71
.line 1538
const/4 v2, 0x0
const-string v3, "<permission> does not specify protectionLevel"
aput-object v3, p5, v2
.line 1539
const/16 v2, -0x6c
iput v2, p0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1540
const/4 v13, 0x0
goto :goto_2c
.line 1543
:cond_71
iget-object v2, v13, Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
iget-object v3, v13, Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
iget v3, v3, Landroid/content/pm/PermissionInfo;->protectionLevel:I
invoke-static {v3}, Landroid/content/pm/PermissionInfo;->fixProtectionLevel(I)I
move-result v3
iput v3, v2, Landroid/content/pm/PermissionInfo;->protectionLevel:I
.line 1545
iget-object v2, v13, Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
iget v2, v2, Landroid/content/pm/PermissionInfo;->protectionLevel:I
and-int/lit16 v2, v2, 0xf0
if-eqz v2, :cond_99
.line 1546
iget-object v2, v13, Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
iget v2, v2, Landroid/content/pm/PermissionInfo;->protectionLevel:I
and-int/lit8 v2, v2, 0xf
const/4 v3, 0x2
if-eq v2, v3, :cond_99
.line 1548
const/4 v2, 0x0
const-string v3, "<permission> protectionLevel specifies a flag but is not based on signature type"
aput-object v3, p5, v2
.line 1550
const/16 v2, -0x6c
iput v2, p0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1551
const/4 v13, 0x0
goto :goto_2c
.line 1555
:cond_99
const-string v12, "<permission>"
move-object v8, p0
move-object/from16 v9, p2
move-object/from16 v10, p3
move-object/from16 v11, p4
move-object/from16 v14, p5
invoke-direct/range {v8 .. v14}, Landroid/content/pm/PackageParser;->parseAllMetaData(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Ljava/lang/String;Landroid/content/pm/PackageParser$Component;[Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_b1
.line 1557
const/16 v2, -0x6c
iput v2, p0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1558
const/4 v13, 0x0
goto/16 :goto_2c
.line 1561
:cond_b1
move-object/from16 v0, p1
iget-object v2, v0, Landroid/content/pm/PackageParser$Package;->permissions:Ljava/util/ArrayList;
invoke-virtual {v2, v13}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto/16 :goto_2c
.end method
.method private parsePermissionGroup(Landroid/content/pm/PackageParser$Package;ILandroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;[Ljava/lang/String;)Landroid/content/pm/PackageParser$PermissionGroup;
.registers 22
.param p1, "owner" # Landroid/content/pm/PackageParser$Package;
.param p2, "flags" # I
.param p3, "res" # Landroid/content/res/Resources;
.param p4, "parser" # Lorg/xmlpull/v1/XmlPullParser;
.param p5, "attrs" # Landroid/util/AttributeSet;
.param p6, "outError" # [Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/xmlpull/v1/XmlPullParserException;,
Ljava/io/IOException;
}
.end annotation
.prologue
.line 1461
new-instance v13, Landroid/content/pm/PackageParser$PermissionGroup;
move-object/from16 v0, p1
invoke-direct {v13, v0}, Landroid/content/pm/PackageParser$PermissionGroup;-><init>(Landroid/content/pm/PackageParser$Package;)V
.line 1463
.local v13, "perm":Landroid/content/pm/PackageParser$PermissionGroup;
sget-object v2, Lcom/android/internal/R$styleable;->AndroidManifestPermissionGroup:[I
move-object/from16 v0, p3
move-object/from16 v1, p5
invoke-virtual {v0, v1, v2}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v7
.line 1466
.local v7, "sa":Landroid/content/res/TypedArray;
iget-object v4, v13, Landroid/content/pm/PackageParser$PermissionGroup;->info:Landroid/content/pm/PermissionGroupInfo;
const-string v6, "<permission-group>"
const/4 v8, 0x2
const/4 v9, 0x0
const/4 v10, 0x1
const/4 v11, 0x5
move-object v2, p0
move-object/from16 v3, p1
move-object/from16 v5, p6
invoke-direct/range {v2 .. v11}, Landroid/content/pm/PackageParser;->parsePackageItemInfo(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageItemInfo;[Ljava/lang/String;Ljava/lang/String;Landroid/content/res/TypedArray;IIII)Z
move-result v2
if-nez v2, :cond_2d
.line 1472
invoke-virtual {v7}, Landroid/content/res/TypedArray;->recycle()V
.line 1473
const/16 v2, -0x6c
iput v2, p0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1474
const/4 v13, 0x0
.line 1497
.end local v13 # "perm":Landroid/content/pm/PackageParser$PermissionGroup;
:goto_2c
return-object v13
.line 1477
.restart local v13 # "perm":Landroid/content/pm/PackageParser$PermissionGroup;
:cond_2d
iget-object v2, v13, Landroid/content/pm/PackageParser$PermissionGroup;->info:Landroid/content/pm/PermissionGroupInfo;
const/4 v3, 0x4
const/4 v4, 0x0
invoke-virtual {v7, v3, v4}, Landroid/content/res/TypedArray;->getResourceId(II)I
move-result v3
iput v3, v2, Landroid/content/pm/PermissionGroupInfo;->descriptionRes:I
.line 1480
iget-object v2, v13, Landroid/content/pm/PackageParser$PermissionGroup;->info:Landroid/content/pm/PermissionGroupInfo;
const/4 v3, 0x0
iput v3, v2, Landroid/content/pm/PermissionGroupInfo;->flags:I
.line 1481
iget-object v2, v13, Landroid/content/pm/PackageParser$PermissionGroup;->info:Landroid/content/pm/PermissionGroupInfo;
const/4 v3, 0x3
const/4 v4, 0x0
invoke-virtual {v7, v3, v4}, Landroid/content/res/TypedArray;->getInt(II)I
move-result v3
iput v3, v2, Landroid/content/pm/PermissionGroupInfo;->priority:I
.line 1483
iget-object v2, v13, Landroid/content/pm/PackageParser$PermissionGroup;->info:Landroid/content/pm/PermissionGroupInfo;
iget v2, v2, Landroid/content/pm/PermissionGroupInfo;->priority:I
if-lez v2, :cond_55
and-int/lit8 v2, p2, 0x1
if-nez v2, :cond_55
.line 1484
iget-object v2, v13, Landroid/content/pm/PackageParser$PermissionGroup;->info:Landroid/content/pm/PermissionGroupInfo;
const/4 v3, 0x0
iput v3, v2, Landroid/content/pm/PermissionGroupInfo;->priority:I
.line 1487
:cond_55
invoke-virtual {v7}, Landroid/content/res/TypedArray;->recycle()V
.line 1489
const-string v12, "<permission-group>"
move-object v8, p0
move-object/from16 v9, p3
move-object/from16 v10, p4
move-object/from16 v11, p5
move-object/from16 v14, p6
invoke-direct/range {v8 .. v14}, Landroid/content/pm/PackageParser;->parseAllMetaData(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Ljava/lang/String;Landroid/content/pm/PackageParser$Component;[Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_6f
.line 1491
const/16 v2, -0x6c
iput v2, p0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1492
const/4 v13, 0x0
goto :goto_2c
.line 1495
:cond_6f
move-object/from16 v0, p1
iget-object v2, v0, Landroid/content/pm/PackageParser$Package;->permissionGroups:Ljava/util/ArrayList;
invoke-virtual {v2, v13}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_2c
.end method
.method private parsePermissionTree(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;[Ljava/lang/String;)Landroid/content/pm/PackageParser$Permission;
.registers 22
.param p1, "owner" # Landroid/content/pm/PackageParser$Package;
.param p2, "res" # Landroid/content/res/Resources;
.param p3, "parser" # Lorg/xmlpull/v1/XmlPullParser;
.param p4, "attrs" # Landroid/util/AttributeSet;
.param p5, "outError" # [Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/xmlpull/v1/XmlPullParserException;,
Ljava/io/IOException;
}
.end annotation
.prologue
.line 1569
new-instance v13, Landroid/content/pm/PackageParser$Permission;
move-object/from16 v0, p1
invoke-direct {v13, v0}, Landroid/content/pm/PackageParser$Permission;-><init>(Landroid/content/pm/PackageParser$Package;)V
.line 1571
.local v13, "perm":Landroid/content/pm/PackageParser$Permission;
sget-object v2, Lcom/android/internal/R$styleable;->AndroidManifestPermissionTree:[I
move-object/from16 v0, p2
move-object/from16 v1, p4
invoke-virtual {v0, v1, v2}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v7
.line 1574
.local v7, "sa":Landroid/content/res/TypedArray;
iget-object v4, v13, Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
const-string v6, "<permission-tree>"
const/4 v8, 0x2
const/4 v9, 0x0
const/4 v10, 0x1
const/4 v11, 0x3
move-object/from16 v2, p0
move-object/from16 v3, p1
move-object/from16 v5, p5
invoke-direct/range {v2 .. v11}, Landroid/content/pm/PackageParser;->parsePackageItemInfo(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageItemInfo;[Ljava/lang/String;Ljava/lang/String;Landroid/content/res/TypedArray;IIII)Z
move-result v2
if-nez v2, :cond_30
.line 1580
invoke-virtual {v7}, Landroid/content/res/TypedArray;->recycle()V
.line 1581
const/16 v2, -0x6c
move-object/from16 v0, p0
iput v2, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1582
const/4 v13, 0x0
.line 1610
.end local v13 # "perm":Landroid/content/pm/PackageParser$Permission;
:goto_2f
return-object v13
.line 1585
.restart local v13 # "perm":Landroid/content/pm/PackageParser$Permission;
:cond_30
invoke-virtual {v7}, Landroid/content/res/TypedArray;->recycle()V
.line 1587
iget-object v2, v13, Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
iget-object v2, v2, Landroid/content/pm/PermissionInfo;->name:Ljava/lang/String;
const/16 v3, 0x2e
invoke-virtual {v2, v3}, Ljava/lang/String;->indexOf(I)I
move-result v15
.line 1588
.local v15, "index":I
if-lez v15, :cond_4b
.line 1589
iget-object v2, v13, Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
iget-object v2, v2, Landroid/content/pm/PermissionInfo;->name:Ljava/lang/String;
const/16 v3, 0x2e
add-int/lit8 v4, v15, 0x1
invoke-virtual {v2, v3, v4}, Ljava/lang/String;->indexOf(II)I
move-result v15
.line 1591
:cond_4b
if-gez v15, :cond_6f
.line 1592
const/4 v2, 0x0
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "<permission-tree> name has less than three segments: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
iget-object v4, v13, Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
iget-object v4, v4, Landroid/content/pm/PermissionInfo;->name:Ljava/lang/String;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
aput-object v3, p5, v2
.line 1594
const/16 v2, -0x6c
move-object/from16 v0, p0
iput v2, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1595
const/4 v13, 0x0
goto :goto_2f
.line 1598
:cond_6f
iget-object v2, v13, Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
const/4 v3, 0x0
iput v3, v2, Landroid/content/pm/PermissionInfo;->descriptionRes:I
.line 1599
iget-object v2, v13, Landroid/content/pm/PackageParser$Permission;->info:Landroid/content/pm/PermissionInfo;
const/4 v3, 0x0
iput v3, v2, Landroid/content/pm/PermissionInfo;->protectionLevel:I
.line 1600
const/4 v2, 0x1
iput-boolean v2, v13, Landroid/content/pm/PackageParser$Permission;->tree:Z
.line 1602
const-string v12, "<permission-tree>"
move-object/from16 v8, p0
move-object/from16 v9, p2
move-object/from16 v10, p3
move-object/from16 v11, p4
move-object/from16 v14, p5
invoke-direct/range {v8 .. v14}, Landroid/content/pm/PackageParser;->parseAllMetaData(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Ljava/lang/String;Landroid/content/pm/PackageParser$Component;[Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_96
.line 1604
const/16 v2, -0x6c
move-object/from16 v0, p0
iput v2, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 1605
const/4 v13, 0x0
goto :goto_2f
.line 1608
:cond_96
move-object/from16 v0, p1
iget-object v2, v0, Landroid/content/pm/PackageParser$Package;->permissions:Ljava/util/ArrayList;
invoke-virtual {v2, v13}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_2f
.end method
.method private parseProvider(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;I[Ljava/lang/String;)Landroid/content/pm/PackageParser$Provider;
.registers 24
.param p1, "owner" # Landroid/content/pm/PackageParser$Package;
.param p2, "res" # Landroid/content/res/Resources;
.param p3, "parser" # Lorg/xmlpull/v1/XmlPullParser;
.param p4, "attrs" # Landroid/util/AttributeSet;
.param p5, "flags" # I
.param p6, "outError" # [Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/xmlpull/v1/XmlPullParserException;,
Ljava/io/IOException;
}
.end annotation
.prologue
.line 2415
sget-object v2, Lcom/android/internal/R$styleable;->AndroidManifestProvider:[I
move-object/from16 v0, p2
move-object/from16 v1, p4
invoke-virtual {v0, v1, v2}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v15
.line 2418
.local v15, "sa":Landroid/content/res/TypedArray;
move-object/from16 v0, p0
iget-object v2, v0, Landroid/content/pm/PackageParser;->mParseProviderArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
if-nez v2, :cond_33
.line 2419
new-instance v2, Landroid/content/pm/PackageParser$ParseComponentArgs;
const/4 v5, 0x2
const/4 v6, 0x0
const/4 v7, 0x1
const/16 v8, 0xf
move-object/from16 v0, p0
iget-object v9, v0, Landroid/content/pm/PackageParser;->mSeparateProcesses:[Ljava/lang/String;
const/16 v10, 0x8
const/16 v11, 0xe
const/4 v12, 0x6
move-object/from16 v3, p1
move-object/from16 v4, p6
invoke-direct/range {v2 .. v12}, Landroid/content/pm/PackageParser$ParseComponentArgs;-><init>(Landroid/content/pm/PackageParser$Package;[Ljava/lang/String;IIII[Ljava/lang/String;III)V
move-object/from16 v0, p0
iput-object v2, v0, Landroid/content/pm/PackageParser;->mParseProviderArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
.line 2428
move-object/from16 v0, p0
iget-object v2, v0, Landroid/content/pm/PackageParser;->mParseProviderArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
const-string v3, "<provider>"
iput-object v3, v2, Landroid/content/pm/PackageParser$ParseComponentArgs;->tag:Ljava/lang/String;
.line 2431
:cond_33
move-object/from16 v0, p0
iget-object v2, v0, Landroid/content/pm/PackageParser;->mParseProviderArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
iput-object v15, v2, Landroid/content/pm/PackageParser$ParseComponentArgs;->sa:Landroid/content/res/TypedArray;
.line 2432
move-object/from16 v0, p0
iget-object v2, v0, Landroid/content/pm/PackageParser;->mParseProviderArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
move/from16 v0, p5
iput v0, v2, Landroid/content/pm/PackageParser$ParseComponentArgs;->flags:I
.line 2434
new-instance v6, Landroid/content/pm/PackageParser$Provider;
move-object/from16 v0, p0
iget-object v2, v0, Landroid/content/pm/PackageParser;->mParseProviderArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
new-instance v3, Landroid/content/pm/ProviderInfo;
invoke-direct {v3}, Landroid/content/pm/ProviderInfo;-><init>()V
invoke-direct {v6, v2, v3}, Landroid/content/pm/PackageParser$Provider;-><init>(Landroid/content/pm/PackageParser$ParseComponentArgs;Landroid/content/pm/ProviderInfo;)V
.line 2435
.local v6, "p":Landroid/content/pm/PackageParser$Provider;
const/4 v2, 0x0
aget-object v2, p6, v2
if-eqz v2, :cond_59
.line 2436
invoke-virtual {v15}, Landroid/content/res/TypedArray;->recycle()V
.line 2437
const/4 v6, 0x0
.line 2508
.end local v6 # "p":Landroid/content/pm/PackageParser$Provider;
:cond_58
:goto_58
return-object v6
.line 2440
.restart local v6 # "p":Landroid/content/pm/PackageParser$Provider;
:cond_59
iget-object v2, v6, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
const/4 v3, 0x7
const/4 v4, 0x1
invoke-virtual {v15, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
iput-boolean v3, v2, Landroid/content/pm/ProviderInfo;->exported:Z
.line 2443
const/16 v2, 0xa
const/4 v3, 0x0
invoke-virtual {v15, v2, v3}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v13
.line 2446
.local v13, "cpname":Ljava/lang/String;
iget-object v2, v6, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
const/16 v3, 0xb
const/4 v4, 0x0
invoke-virtual {v15, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
iput-boolean v3, v2, Landroid/content/pm/ProviderInfo;->isSyncable:Z
.line 2450
const/4 v2, 0x3
const/4 v3, 0x0
invoke-virtual {v15, v2, v3}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v14
.line 2452
.local v14, "permission":Ljava/lang/String;
const/4 v2, 0x4
const/4 v3, 0x0
invoke-virtual {v15, v2, v3}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v16
.line 2454
.local v16, "str":Ljava/lang/String;
if-nez v16, :cond_85
.line 2455
move-object/from16 v16, v14
.line 2457
:cond_85
if-nez v16, :cond_e8
.line 2458
iget-object v2, v6, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget-object v3, v3, Landroid/content/pm/ApplicationInfo;->permission:Ljava/lang/String;
iput-object v3, v2, Landroid/content/pm/ProviderInfo;->readPermission:Ljava/lang/String;
.line 2463
:goto_91
const/4 v2, 0x5
const/4 v3, 0x0
invoke-virtual {v15, v2, v3}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v16
.line 2465
if-nez v16, :cond_9b
.line 2466
move-object/from16 v16, v14
.line 2468
:cond_9b
if-nez v16, :cond_fd
.line 2469
iget-object v2, v6, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget-object v3, v3, Landroid/content/pm/ApplicationInfo;->permission:Ljava/lang/String;
iput-object v3, v2, Landroid/content/pm/ProviderInfo;->writePermission:Ljava/lang/String;
.line 2475
:goto_a7
iget-object v2, v6, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
const/16 v3, 0xd
const/4 v4, 0x0
invoke-virtual {v15, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
iput-boolean v3, v2, Landroid/content/pm/ProviderInfo;->grantUriPermissions:Z
.line 2479
iget-object v2, v6, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
const/16 v3, 0x9
const/4 v4, 0x0
invoke-virtual {v15, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
iput-boolean v3, v2, Landroid/content/pm/ProviderInfo;->multiprocess:Z
.line 2483
iget-object v2, v6, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
const/16 v3, 0xc
const/4 v4, 0x0
invoke-virtual {v15, v3, v4}, Landroid/content/res/TypedArray;->getInt(II)I
move-result v3
iput v3, v2, Landroid/content/pm/ProviderInfo;->initOrder:I
.line 2487
invoke-virtual {v15}, Landroid/content/res/TypedArray;->recycle()V
.line 2489
move-object/from16 v0, p1
iget-object v2, v0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v2, v2, Landroid/content/pm/ApplicationInfo;->flags:I
const/high16 v3, 0x10000000
and-int/2addr v2, v3
if-eqz v2, :cond_112
.line 2492
iget-object v2, v6, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
iget-object v2, v2, Landroid/content/pm/ProviderInfo;->processName:Ljava/lang/String;
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->packageName:Ljava/lang/String;
if-ne v2, v3, :cond_112
.line 2493
const/4 v2, 0x0
const-string v3, "Heavy-weight applications can not have providers in main process"
aput-object v3, p6, v2
.line 2494
const/4 v6, 0x0
goto/16 :goto_58
.line 2460
:cond_e8
iget-object v3, v6, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
invoke-virtual/range {v16 .. v16}, Ljava/lang/String;->length()I
move-result v2
if-lez v2, :cond_fb
invoke-virtual/range {v16 .. v16}, Ljava/lang/String;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v2
:goto_f8
iput-object v2, v3, Landroid/content/pm/ProviderInfo;->readPermission:Ljava/lang/String;
goto :goto_91
:cond_fb
const/4 v2, 0x0
goto :goto_f8
.line 2471
:cond_fd
iget-object v3, v6, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
invoke-virtual/range {v16 .. v16}, Ljava/lang/String;->length()I
move-result v2
if-lez v2, :cond_110
invoke-virtual/range {v16 .. v16}, Ljava/lang/String;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v2
:goto_10d
iput-object v2, v3, Landroid/content/pm/ProviderInfo;->writePermission:Ljava/lang/String;
goto :goto_a7
:cond_110
const/4 v2, 0x0
goto :goto_10d
.line 2498
:cond_112
if-nez v13, :cond_11c
.line 2499
const/4 v2, 0x0
const-string v3, "<provider> does not incude authorities attribute"
aput-object v3, p6, v2
.line 2500
const/4 v6, 0x0
goto/16 :goto_58
.line 2502
:cond_11c
iget-object v2, v6, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
invoke-virtual {v13}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v3
iput-object v3, v2, Landroid/content/pm/ProviderInfo;->authority:Ljava/lang/String;
move-object/from16 v2, p0
move-object/from16 v3, p2
move-object/from16 v4, p3
move-object/from16 v5, p4
move-object/from16 v7, p6
.line 2504
invoke-direct/range {v2 .. v7}, Landroid/content/pm/PackageParser;->parseProviderTags(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/pm/PackageParser$Provider;[Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_58
.line 2505
const/4 v6, 0x0
goto/16 :goto_58
.end method
.method private parseProviderTags(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/pm/PackageParser$Provider;[Ljava/lang/String;)Z
.registers 26
.param p1, "res" # Landroid/content/res/Resources;
.param p2, "parser" # Lorg/xmlpull/v1/XmlPullParser;
.param p3, "attrs" # Landroid/util/AttributeSet;
.param p4, "outInfo" # Landroid/content/pm/PackageParser$Provider;
.param p5, "outError" # [Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/xmlpull/v1/XmlPullParserException;,
Ljava/io/IOException;
}
.end annotation
.prologue
.line 2515
invoke-interface/range {p2 .. p2}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v11
.line 2518
.local v11, "outerDepth":I
:cond_4
:goto_4
invoke-interface/range {p2 .. p2}, Lorg/xmlpull/v1/XmlPullParser;->next()I
move-result v18
.local v18, "type":I
const/4 v2, 0x1
move/from16 v0, v18
if-eq v0, v2, :cond_294
const/4 v2, 0x3
move/from16 v0, v18
if-ne v0, v2, :cond_18
invoke-interface/range {p2 .. p2}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v2
if-le v2, v11, :cond_294
.line 2520
:cond_18
const/4 v2, 0x3
move/from16 v0, v18
if-eq v0, v2, :cond_4
const/4 v2, 0x4
move/from16 v0, v18
if-eq v0, v2, :cond_4
.line 2524
invoke-interface/range {p2 .. p2}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v2
const-string v3, "meta-data"
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_48
.line 2525
move-object/from16 v0, p4
iget-object v6, v0, Landroid/content/pm/PackageParser$Provider;->metaData:Landroid/os/Bundle;
move-object/from16 v2, p0
move-object/from16 v3, p1
move-object/from16 v4, p2
move-object/from16 v5, p3
move-object/from16 v7, p5
invoke-direct/range {v2 .. v7}, Landroid/content/pm/PackageParser;->parseMetaData(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/os/Bundle;[Ljava/lang/String;)Landroid/os/Bundle;
move-result-object v2
move-object/from16 v0, p4
iput-object v2, v0, Landroid/content/pm/PackageParser$Provider;->metaData:Landroid/os/Bundle;
if-nez v2, :cond_4
.line 2527
const/4 v2, 0x0
.line 2684
:goto_47
return v2
.line 2530
:cond_48
invoke-interface/range {p2 .. p2}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v2
const-string v3, "grant-uri-permission"
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_11c
.line 2531
sget-object v2, Lcom/android/internal/R$styleable;->AndroidManifestGrantUriPermission:[I
move-object/from16 v0, p1
move-object/from16 v1, p3
invoke-virtual {v0, v1, v2}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v16
.line 2534
.local v16, "sa":Landroid/content/res/TypedArray;
const/4 v12, 0x0
.line 2536
.local v12, "pa":Landroid/os/PatternMatcher;
const/4 v2, 0x0
const/4 v3, 0x0
move-object/from16 v0, v16
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v17
.line 2538
.local v17, "str":Ljava/lang/String;
if-eqz v17, :cond_71
.line 2539
new-instance v12, Landroid/os/PatternMatcher;
.end local v12 # "pa":Landroid/os/PatternMatcher;
const/4 v2, 0x0
move-object/from16 v0, v17
invoke-direct {v12, v0, v2}, Landroid/os/PatternMatcher;-><init>(Ljava/lang/String;I)V
.line 2542
.restart local v12 # "pa":Landroid/os/PatternMatcher;
:cond_71
const/4 v2, 0x1
const/4 v3, 0x0
move-object/from16 v0, v16
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v17
.line 2544
if-eqz v17, :cond_83
.line 2545
new-instance v12, Landroid/os/PatternMatcher;
.end local v12 # "pa":Landroid/os/PatternMatcher;
const/4 v2, 0x1
move-object/from16 v0, v17
invoke-direct {v12, v0, v2}, Landroid/os/PatternMatcher;-><init>(Ljava/lang/String;I)V
.line 2548
.restart local v12 # "pa":Landroid/os/PatternMatcher;
:cond_83
const/4 v2, 0x2
const/4 v3, 0x0
move-object/from16 v0, v16
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v17
.line 2550
if-eqz v17, :cond_95
.line 2551
new-instance v12, Landroid/os/PatternMatcher;
.end local v12 # "pa":Landroid/os/PatternMatcher;
const/4 v2, 0x2
move-object/from16 v0, v17
invoke-direct {v12, v0, v2}, Landroid/os/PatternMatcher;-><init>(Ljava/lang/String;I)V
.line 2554
.restart local v12 # "pa":Landroid/os/PatternMatcher;
:cond_95
invoke-virtual/range {v16 .. v16}, Landroid/content/res/TypedArray;->recycle()V
.line 2556
if-eqz v12, :cond_df
.line 2557
move-object/from16 v0, p4
iget-object v2, v0, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
iget-object v2, v2, Landroid/content/pm/ProviderInfo;->uriPermissionPatterns:[Landroid/os/PatternMatcher;
if-nez v2, :cond_c0
.line 2558
move-object/from16 v0, p4
iget-object v2, v0, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
const/4 v3, 0x1
new-array v3, v3, [Landroid/os/PatternMatcher;
iput-object v3, v2, Landroid/content/pm/ProviderInfo;->uriPermissionPatterns:[Landroid/os/PatternMatcher;
.line 2559
move-object/from16 v0, p4
iget-object v2, v0, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
iget-object v2, v2, Landroid/content/pm/ProviderInfo;->uriPermissionPatterns:[Landroid/os/PatternMatcher;
const/4 v3, 0x0
aput-object v12, v2, v3
.line 2567
:goto_b4
move-object/from16 v0, p4
iget-object v2, v0, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
const/4 v3, 0x1
iput-boolean v3, v2, Landroid/content/pm/ProviderInfo;->grantUriPermissions:Z
.line 2580
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_4
.line 2561
:cond_c0
move-object/from16 v0, p4
iget-object v2, v0, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
iget-object v2, v2, Landroid/content/pm/ProviderInfo;->uriPermissionPatterns:[Landroid/os/PatternMatcher;
array-length v8, v2
.line 2562
.local v8, "N":I
add-int/lit8 v2, v8, 0x1
new-array v10, v2, [Landroid/os/PatternMatcher;
.line 2563
.local v10, "newp":[Landroid/os/PatternMatcher;
move-object/from16 v0, p4
iget-object v2, v0, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
iget-object v2, v2, Landroid/content/pm/ProviderInfo;->uriPermissionPatterns:[Landroid/os/PatternMatcher;
const/4 v3, 0x0
const/4 v4, 0x0
invoke-static {v2, v3, v10, v4, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 2564
aput-object v12, v10, v8
.line 2565
move-object/from16 v0, p4
iget-object v2, v0, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
iput-object v10, v2, Landroid/content/pm/ProviderInfo;->uriPermissionPatterns:[Landroid/os/PatternMatcher;
goto :goto_b4
.line 2570
.end local v8 # "N":I
.end local v10 # "newp":[Landroid/os/PatternMatcher;
:cond_df
const-string v2, "PackageParser"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Unknown element under <path-permission>: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-interface/range {p2 .. p2}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " at "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
move-object/from16 v0, p0
iget-object v4, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-interface/range {p2 .. p2}, Lorg/xmlpull/v1/XmlPullParser;->getPositionDescription()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 2573
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_4
.line 2582
.end local v12 # "pa":Landroid/os/PatternMatcher;
.end local v16 # "sa":Landroid/content/res/TypedArray;
.end local v17 # "str":Ljava/lang/String;
:cond_11c
invoke-interface/range {p2 .. p2}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v2
const-string/jumbo v3, "path-permission"
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_257
.line 2583
sget-object v2, Lcom/android/internal/R$styleable;->AndroidManifestPathPermission:[I
move-object/from16 v0, p1
move-object/from16 v1, p3
invoke-virtual {v0, v1, v2}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v16
.line 2586
.restart local v16 # "sa":Landroid/content/res/TypedArray;
const/4 v12, 0x0
.line 2588
.local v12, "pa":Landroid/content/pm/PathPermission;
const/4 v2, 0x0
const/4 v3, 0x0
move-object/from16 v0, v16
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v14
.line 2590
.local v14, "permission":Ljava/lang/String;
const/4 v2, 0x1
const/4 v3, 0x0
move-object/from16 v0, v16
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v15
.line 2592
.local v15, "readPermission":Ljava/lang/String;
if-nez v15, :cond_147
.line 2593
move-object v15, v14
.line 2595
:cond_147
const/4 v2, 0x2
const/4 v3, 0x0
move-object/from16 v0, v16
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v19
.line 2597
.local v19, "writePermission":Ljava/lang/String;
if-nez v19, :cond_153
.line 2598
move-object/from16 v19, v14
.line 2601
:cond_153
const/4 v9, 0x0
.line 2602
.local v9, "havePerm":Z
if-eqz v15, :cond_15b
.line 2603
invoke-virtual {v15}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v15
.line 2604
const/4 v9, 0x1
.line 2606
:cond_15b
if-eqz v19, :cond_162
.line 2607
invoke-virtual/range {v19 .. v19}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v19
.line 2608
const/4 v9, 0x1
.line 2611
:cond_162
if-nez v9, :cond_1a1
.line 2613
const-string v2, "PackageParser"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "No readPermission or writePermssion for <path-permission>: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-interface/range {p2 .. p2}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " at "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
move-object/from16 v0, p0
iget-object v4, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-interface/range {p2 .. p2}, Lorg/xmlpull/v1/XmlPullParser;->getPositionDescription()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 2616
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_4
.line 2624
:cond_1a1
const/4 v2, 0x3
const/4 v3, 0x0
move-object/from16 v0, v16
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v13
.line 2626
.local v13, "path":Ljava/lang/String;
if-eqz v13, :cond_1b3
.line 2627
new-instance v12, Landroid/content/pm/PathPermission;
.end local v12 # "pa":Landroid/content/pm/PathPermission;
const/4 v2, 0x0
move-object/from16 v0, v19
invoke-direct {v12, v13, v2, v15, v0}, Landroid/content/pm/PathPermission;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
.line 2631
.restart local v12 # "pa":Landroid/content/pm/PathPermission;
:cond_1b3
const/4 v2, 0x4
const/4 v3, 0x0
move-object/from16 v0, v16
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v13
.line 2633
if-eqz v13, :cond_1c5
.line 2634
new-instance v12, Landroid/content/pm/PathPermission;
.end local v12 # "pa":Landroid/content/pm/PathPermission;
const/4 v2, 0x1
move-object/from16 v0, v19
invoke-direct {v12, v13, v2, v15, v0}, Landroid/content/pm/PathPermission;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
.line 2638
.restart local v12 # "pa":Landroid/content/pm/PathPermission;
:cond_1c5
const/4 v2, 0x5
const/4 v3, 0x0
move-object/from16 v0, v16
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v13
.line 2640
if-eqz v13, :cond_1d7
.line 2641
new-instance v12, Landroid/content/pm/PathPermission;
.end local v12 # "pa":Landroid/content/pm/PathPermission;
const/4 v2, 0x2
move-object/from16 v0, v19
invoke-direct {v12, v13, v2, v15, v0}, Landroid/content/pm/PathPermission;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
.line 2645
.restart local v12 # "pa":Landroid/content/pm/PathPermission;
:cond_1d7
invoke-virtual/range {v16 .. v16}, Landroid/content/res/TypedArray;->recycle()V
.line 2647
if-eqz v12, :cond_21a
.line 2648
move-object/from16 v0, p4
iget-object v2, v0, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
iget-object v2, v2, Landroid/content/pm/ProviderInfo;->pathPermissions:[Landroid/content/pm/PathPermission;
if-nez v2, :cond_1fb
.line 2649
move-object/from16 v0, p4
iget-object v2, v0, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
const/4 v3, 0x1
new-array v3, v3, [Landroid/content/pm/PathPermission;
iput-object v3, v2, Landroid/content/pm/ProviderInfo;->pathPermissions:[Landroid/content/pm/PathPermission;
.line 2650
move-object/from16 v0, p4
iget-object v2, v0, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
iget-object v2, v2, Landroid/content/pm/ProviderInfo;->pathPermissions:[Landroid/content/pm/PathPermission;
const/4 v3, 0x0
aput-object v12, v2, v3
.line 2669
:goto_1f6
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_4
.line 2652
:cond_1fb
move-object/from16 v0, p4
iget-object v2, v0, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
iget-object v2, v2, Landroid/content/pm/ProviderInfo;->pathPermissions:[Landroid/content/pm/PathPermission;
array-length v8, v2
.line 2653
.restart local v8 # "N":I
add-int/lit8 v2, v8, 0x1
new-array v10, v2, [Landroid/content/pm/PathPermission;
.line 2654
.local v10, "newp":[Landroid/content/pm/PathPermission;
move-object/from16 v0, p4
iget-object v2, v0, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
iget-object v2, v2, Landroid/content/pm/ProviderInfo;->pathPermissions:[Landroid/content/pm/PathPermission;
const/4 v3, 0x0
const/4 v4, 0x0
invoke-static {v2, v3, v10, v4, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 2655
aput-object v12, v10, v8
.line 2656
move-object/from16 v0, p4
iget-object v2, v0, Landroid/content/pm/PackageParser$Provider;->info:Landroid/content/pm/ProviderInfo;
iput-object v10, v2, Landroid/content/pm/ProviderInfo;->pathPermissions:[Landroid/content/pm/PathPermission;
goto :goto_1f6
.line 2660
.end local v8 # "N":I
.end local v10 # "newp":[Landroid/content/pm/PathPermission;
:cond_21a
const-string v2, "PackageParser"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "No path, pathPrefix, or pathPattern for <path-permission>: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-interface/range {p2 .. p2}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " at "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
move-object/from16 v0, p0
iget-object v4, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-interface/range {p2 .. p2}, Lorg/xmlpull/v1/XmlPullParser;->getPositionDescription()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 2663
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_4
.line 2673
.end local v9 # "havePerm":Z
.end local v12 # "pa":Landroid/content/pm/PathPermission;
.end local v13 # "path":Ljava/lang/String;
.end local v14 # "permission":Ljava/lang/String;
.end local v15 # "readPermission":Ljava/lang/String;
.end local v16 # "sa":Landroid/content/res/TypedArray;
.end local v19 # "writePermission":Ljava/lang/String;
:cond_257
const-string v2, "PackageParser"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Unknown element under <provider>: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-interface/range {p2 .. p2}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " at "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
move-object/from16 v0, p0
iget-object v4, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-interface/range {p2 .. p2}, Lorg/xmlpull/v1/XmlPullParser;->getPositionDescription()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 2676
invoke-static/range {p2 .. p2}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_4
.line 2684
:cond_294
const/4 v2, 0x1
goto/16 :goto_47
.end method
.method private parseService(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;I[Ljava/lang/String;)Landroid/content/pm/PackageParser$Service;
.registers 27
.param p1, "owner" # Landroid/content/pm/PackageParser$Package;
.param p2, "res" # Landroid/content/res/Resources;
.param p3, "parser" # Lorg/xmlpull/v1/XmlPullParser;
.param p4, "attrs" # Landroid/util/AttributeSet;
.param p5, "flags" # I
.param p6, "outError" # [Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/xmlpull/v1/XmlPullParserException;,
Ljava/io/IOException;
}
.end annotation
.prologue
.line 2690
sget-object v2, Lcom/android/internal/R$styleable;->AndroidManifestService:[I
move-object/from16 v0, p2
move-object/from16 v1, p4
invoke-virtual {v0, v1, v2}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v16
.line 2693
.local v16, "sa":Landroid/content/res/TypedArray;
move-object/from16 v0, p0
iget-object v2, v0, Landroid/content/pm/PackageParser;->mParseServiceArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
if-nez v2, :cond_31
.line 2694
new-instance v2, Landroid/content/pm/PackageParser$ParseComponentArgs;
const/4 v5, 0x2
const/4 v6, 0x0
const/4 v7, 0x1
const/16 v8, 0x8
move-object/from16 v0, p0
iget-object v9, v0, Landroid/content/pm/PackageParser;->mSeparateProcesses:[Ljava/lang/String;
const/4 v10, 0x6
const/4 v11, 0x7
const/4 v12, 0x4
move-object/from16 v3, p1
move-object/from16 v4, p6
invoke-direct/range {v2 .. v12}, Landroid/content/pm/PackageParser$ParseComponentArgs;-><init>(Landroid/content/pm/PackageParser$Package;[Ljava/lang/String;IIII[Ljava/lang/String;III)V
move-object/from16 v0, p0
iput-object v2, v0, Landroid/content/pm/PackageParser;->mParseServiceArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
.line 2703
move-object/from16 v0, p0
iget-object v2, v0, Landroid/content/pm/PackageParser;->mParseServiceArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
const-string v3, "<service>"
iput-object v3, v2, Landroid/content/pm/PackageParser$ParseComponentArgs;->tag:Ljava/lang/String;
.line 2706
:cond_31
move-object/from16 v0, p0
iget-object v2, v0, Landroid/content/pm/PackageParser;->mParseServiceArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
move-object/from16 v0, v16
iput-object v0, v2, Landroid/content/pm/PackageParser$ParseComponentArgs;->sa:Landroid/content/res/TypedArray;
.line 2707
move-object/from16 v0, p0
iget-object v2, v0, Landroid/content/pm/PackageParser;->mParseServiceArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
move/from16 v0, p5
iput v0, v2, Landroid/content/pm/PackageParser$ParseComponentArgs;->flags:I
.line 2709
new-instance v15, Landroid/content/pm/PackageParser$Service;
move-object/from16 v0, p0
iget-object v2, v0, Landroid/content/pm/PackageParser;->mParseServiceArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
new-instance v3, Landroid/content/pm/ServiceInfo;
invoke-direct {v3}, Landroid/content/pm/ServiceInfo;-><init>()V
invoke-direct {v15, v2, v3}, Landroid/content/pm/PackageParser$Service;-><init>(Landroid/content/pm/PackageParser$ParseComponentArgs;Landroid/content/pm/ServiceInfo;)V
.line 2710
.local v15, "s":Landroid/content/pm/PackageParser$Service;
const/4 v2, 0x0
aget-object v2, p6, v2
if-eqz v2, :cond_59
.line 2711
invoke-virtual/range {v16 .. v16}, Landroid/content/res/TypedArray;->recycle()V
.line 2712
const/4 v15, 0x0
.line 2792
.end local v15 # "s":Landroid/content/pm/PackageParser$Service;
:cond_58
:goto_58
return-object v15
.line 2715
.restart local v15 # "s":Landroid/content/pm/PackageParser$Service;
:cond_59
const/4 v2, 0x5
move-object/from16 v0, v16
invoke-virtual {v0, v2}, Landroid/content/res/TypedArray;->hasValue(I)Z
move-result v17
.line 2717
.local v17, "setExported":Z
if-eqz v17, :cond_6e
.line 2718
iget-object v2, v15, Landroid/content/pm/PackageParser$Service;->info:Landroid/content/pm/ServiceInfo;
const/4 v3, 0x5
const/4 v4, 0x0
move-object/from16 v0, v16
invoke-virtual {v0, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
iput-boolean v3, v2, Landroid/content/pm/ServiceInfo;->exported:Z
.line 2722
:cond_6e
const/4 v2, 0x3
const/4 v3, 0x0
move-object/from16 v0, v16
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
move-result-object v18
.line 2724
.local v18, "str":Ljava/lang/String;
if-nez v18, :cond_cc
.line 2725
iget-object v2, v15, Landroid/content/pm/PackageParser$Service;->info:Landroid/content/pm/ServiceInfo;
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget-object v3, v3, Landroid/content/pm/ApplicationInfo;->permission:Ljava/lang/String;
iput-object v3, v2, Landroid/content/pm/ServiceInfo;->permission:Ljava/lang/String;
.line 2730
:goto_82
iget-object v2, v15, Landroid/content/pm/PackageParser$Service;->info:Landroid/content/pm/ServiceInfo;
const/4 v3, 0x0
iput v3, v2, Landroid/content/pm/ServiceInfo;->flags:I
.line 2731
const/16 v2, 0x9
const/4 v3, 0x0
move-object/from16 v0, v16
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v2
if-eqz v2, :cond_9a
.line 2734
iget-object v2, v15, Landroid/content/pm/PackageParser$Service;->info:Landroid/content/pm/ServiceInfo;
iget v3, v2, Landroid/content/pm/ServiceInfo;->flags:I
or-int/lit8 v3, v3, 0x1
iput v3, v2, Landroid/content/pm/ServiceInfo;->flags:I
.line 2736
:cond_9a
const/16 v2, 0xa
const/4 v3, 0x0
move-object/from16 v0, v16
invoke-virtual {v0, v2, v3}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v2
if-eqz v2, :cond_ad
.line 2739
iget-object v2, v15, Landroid/content/pm/PackageParser$Service;->info:Landroid/content/pm/ServiceInfo;
iget v3, v2, Landroid/content/pm/ServiceInfo;->flags:I
or-int/lit8 v3, v3, 0x2
iput v3, v2, Landroid/content/pm/ServiceInfo;->flags:I
.line 2742
:cond_ad
invoke-virtual/range {v16 .. v16}, Landroid/content/res/TypedArray;->recycle()V
.line 2744
move-object/from16 v0, p1
iget-object v2, v0, Landroid/content/pm/PackageParser$Package;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v2, v2, Landroid/content/pm/ApplicationInfo;->flags:I
const/high16 v3, 0x10000000
and-int/2addr v2, v3
if-eqz v2, :cond_e1
.line 2747
iget-object v2, v15, Landroid/content/pm/PackageParser$Service;->info:Landroid/content/pm/ServiceInfo;
iget-object v2, v2, Landroid/content/pm/ServiceInfo;->processName:Ljava/lang/String;
move-object/from16 v0, p1
iget-object v3, v0, Landroid/content/pm/PackageParser$Package;->packageName:Ljava/lang/String;
if-ne v2, v3, :cond_e1
.line 2748
const/4 v2, 0x0
const-string v3, "Heavy-weight applications can not have services in main process"
aput-object v3, p6, v2
.line 2749
const/4 v15, 0x0
goto :goto_58
.line 2727
:cond_cc
iget-object v3, v15, Landroid/content/pm/PackageParser$Service;->info:Landroid/content/pm/ServiceInfo;
invoke-virtual/range {v18 .. v18}, Ljava/lang/String;->length()I
move-result v2
if-lez v2, :cond_df
invoke-virtual/range {v18 .. v18}, Ljava/lang/String;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v2
:goto_dc
iput-object v2, v3, Landroid/content/pm/ServiceInfo;->permission:Ljava/lang/String;
goto :goto_82
:cond_df
const/4 v2, 0x0
goto :goto_dc
.line 2753
:cond_e1
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v14
.line 2756
.local v14, "outerDepth":I
:cond_e5
:goto_e5
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->next()I
move-result v19
.local v19, "type":I
const/4 v2, 0x1
move/from16 v0, v19
if-eq v0, v2, :cond_190
const/4 v2, 0x3
move/from16 v0, v19
if-ne v0, v2, :cond_f9
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v2
if-le v2, v14, :cond_190
.line 2758
:cond_f9
const/4 v2, 0x3
move/from16 v0, v19
if-eq v0, v2, :cond_e5
const/4 v2, 0x4
move/from16 v0, v19
if-eq v0, v2, :cond_e5
.line 2762
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v2
const-string v3, "intent-filter"
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_130
.line 2763
new-instance v7, Landroid/content/pm/PackageParser$ServiceIntentInfo;
invoke-direct {v7, v15}, Landroid/content/pm/PackageParser$ServiceIntentInfo;-><init>(Landroid/content/pm/PackageParser$Service;)V
.line 2764
.local v7, "intent":Landroid/content/pm/PackageParser$ServiceIntentInfo;
const/4 v9, 0x0
move-object/from16 v2, p0
move-object/from16 v3, p2
move-object/from16 v4, p3
move-object/from16 v5, p4
move/from16 v6, p5
move-object/from16 v8, p6
invoke-direct/range {v2 .. v9}, Landroid/content/pm/PackageParser;->parseIntent(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;ILandroid/content/pm/PackageParser$IntentInfo;[Ljava/lang/String;Z)Z
move-result v2
if-nez v2, :cond_12a
.line 2765
const/4 v15, 0x0
goto/16 :goto_58
.line 2768
:cond_12a
iget-object v2, v15, Landroid/content/pm/PackageParser$Service;->intents:Ljava/util/ArrayList;
invoke-virtual {v2, v7}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_e5
.line 2769
.end local v7 # "intent":Landroid/content/pm/PackageParser$ServiceIntentInfo;
:cond_130
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v2
const-string v3, "meta-data"
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_153
.line 2770
iget-object v12, v15, Landroid/content/pm/PackageParser$Service;->metaData:Landroid/os/Bundle;
move-object/from16 v8, p0
move-object/from16 v9, p2
move-object/from16 v10, p3
move-object/from16 v11, p4
move-object/from16 v13, p6
invoke-direct/range {v8 .. v13}, Landroid/content/pm/PackageParser;->parseMetaData(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/os/Bundle;[Ljava/lang/String;)Landroid/os/Bundle;
move-result-object v2
iput-object v2, v15, Landroid/content/pm/PackageParser$Service;->metaData:Landroid/os/Bundle;
if-nez v2, :cond_e5
.line 2772
const/4 v15, 0x0
goto/16 :goto_58
.line 2776
:cond_153
const-string v2, "PackageParser"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Unknown element under <service>: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " at "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
move-object/from16 v0, p0
iget-object v4, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-interface/range {p3 .. p3}, Lorg/xmlpull/v1/XmlPullParser;->getPositionDescription()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 2779
invoke-static/range {p3 .. p3}, Lcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
goto/16 :goto_e5
.line 2788
:cond_190
if-nez v17, :cond_58
.line 2789
iget-object v3, v15, Landroid/content/pm/PackageParser$Service;->info:Landroid/content/pm/ServiceInfo;
iget-object v2, v15, Landroid/content/pm/PackageParser$Service;->intents:Ljava/util/ArrayList;
invoke-virtual {v2}, Ljava/util/ArrayList;->size()I
move-result v2
if-lez v2, :cond_1a1
const/4 v2, 0x1
:goto_19d
iput-boolean v2, v3, Landroid/content/pm/ServiceInfo;->exported:Z
goto/16 :goto_58
:cond_1a1
const/4 v2, 0x0
goto :goto_19d
.end method
.method private static parseVerifier(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;I[Ljava/lang/String;)Landroid/content/pm/VerifierInfo;
.registers 16
.param p0, "res" # Landroid/content/res/Resources;
.param p1, "parser" # Lorg/xmlpull/v1/XmlPullParser;
.param p2, "attrs" # Landroid/util/AttributeSet;
.param p3, "flags" # I
.param p4, "outError" # [Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/xmlpull/v1/XmlPullParserException;,
Ljava/io/IOException;
}
.end annotation
.prologue
.line 2897
sget-object v8, Lcom/android/internal/R$styleable;->AndroidManifestPackageVerifier:[I
invoke-virtual {p0, p2, v8}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v7
.line 2900
.local v7, "sa":Landroid/content/res/TypedArray;
const/4 v8, 0x0
invoke-virtual {v7, v8}, Landroid/content/res/TypedArray;->getNonResourceString(I)Ljava/lang/String;
move-result-object v5
.line 2903
.local v5, "packageName":Ljava/lang/String;
const/4 v8, 0x1
invoke-virtual {v7, v8}, Landroid/content/res/TypedArray;->getNonResourceString(I)Ljava/lang/String;
move-result-object v2
.line 2906
.local v2, "encodedPublicKey":Ljava/lang/String;
invoke-virtual {v7}, Landroid/content/res/TypedArray;->recycle()V
.line 2908
if-eqz v5, :cond_1b
invoke-virtual {v5}, Ljava/lang/String;->length()I
move-result v8
if-nez v8, :cond_25
.line 2909
:cond_1b
const-string v8, "PackageParser"
const-string/jumbo v9, "verifier package name was null; skipping"
invoke-static {v8, v9}, Landroid/util/Slog;->i(Ljava/lang/String;Ljava/lang/String;)I
.line 2910
const/4 v8, 0x0
.line 2948
:goto_24
return-object v8
.line 2911
:cond_25
if-nez v2, :cond_46
.line 2912
const-string v8, "PackageParser"
new-instance v9, Ljava/lang/StringBuilder;
invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v10, "verifier "
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v9
invoke-virtual {v9, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v9
const-string v10, " public key was null; skipping"
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v9
invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v9
invoke-static {v8, v9}, Landroid/util/Slog;->i(Ljava/lang/String;Ljava/lang/String;)I
.line 2917
:cond_46
const/4 v8, 0x0
:try_start_47
invoke-static {v2, v8}, Landroid/util/Base64;->decode(Ljava/lang/String;I)[B
move-result-object v1
.line 2918
.local v1, "encoded":[B
new-instance v4, Ljava/security/spec/X509EncodedKeySpec;
invoke-direct {v4, v1}, Ljava/security/spec/X509EncodedKeySpec;-><init>([B)V
:try_end_50
.catch Ljava/lang/IllegalArgumentException; {:try_start_47 .. :try_end_50} :catch_6a
.line 2926
.local v4, "keySpec":Ljava/security/spec/EncodedKeySpec;
:try_start_50
const-string v8, "RSA"
invoke-static {v8}, Ljava/security/KeyFactory;->getInstance(Ljava/lang/String;)Ljava/security/KeyFactory;
move-result-object v3
.line 2927
.local v3, "keyFactory":Ljava/security/KeyFactory;
invoke-virtual {v3, v4}, Ljava/security/KeyFactory;->generatePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
move-result-object v6
.line 2928
.local v6, "publicKey":Ljava/security/PublicKey;
new-instance v8, Landroid/content/pm/VerifierInfo;
invoke-direct {v8, v5, v6}, Landroid/content/pm/VerifierInfo;-><init>(Ljava/lang/String;Ljava/security/PublicKey;)V
:try_end_5f
.catch Ljava/security/NoSuchAlgorithmException; {:try_start_50 .. :try_end_5f} :catch_60
.catch Ljava/security/spec/InvalidKeySpecException; {:try_start_50 .. :try_end_5f} :catch_8b
goto :goto_24
.line 2929
.end local v3 # "keyFactory":Ljava/security/KeyFactory;
.end local v6 # "publicKey":Ljava/security/PublicKey;
:catch_60
move-exception v0
.line 2930
.local v0, "e":Ljava/security/NoSuchAlgorithmException;
const-string v8, "PackageParser"
const-string v9, "Could not parse public key because RSA isn\'t included in build"
invoke-static {v8, v9}, Landroid/util/Log;->wtf(Ljava/lang/String;Ljava/lang/String;)I
.line 2931
const/4 v8, 0x0
goto :goto_24
.line 2919
.end local v0 # "e":Ljava/security/NoSuchAlgorithmException;
.end local v1 # "encoded":[B
.end local v4 # "keySpec":Ljava/security/spec/EncodedKeySpec;
:catch_6a
move-exception v0
.line 2920
.local v0, "e":Ljava/lang/IllegalArgumentException;
const-string v8, "PackageParser"
new-instance v9, Ljava/lang/StringBuilder;
invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
const-string v10, "Could not parse verifier "
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v9
invoke-virtual {v9, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v9
const-string v10, " public key; invalid Base64"
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v9
invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v9
invoke-static {v8, v9}, Landroid/util/Slog;->i(Ljava/lang/String;Ljava/lang/String;)I
.line 2921
const/4 v8, 0x0
goto :goto_24
.line 2932
.end local v0 # "e":Ljava/lang/IllegalArgumentException;
.restart local v1 # "encoded":[B
.restart local v4 # "keySpec":Ljava/security/spec/EncodedKeySpec;
:catch_8b
move-exception v8
.line 2938
:try_start_8c
const-string v8, "DSA"
invoke-static {v8}, Ljava/security/KeyFactory;->getInstance(Ljava/lang/String;)Ljava/security/KeyFactory;
move-result-object v3
.line 2939
.restart local v3 # "keyFactory":Ljava/security/KeyFactory;
invoke-virtual {v3, v4}, Ljava/security/KeyFactory;->generatePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
move-result-object v6
.line 2940
.restart local v6 # "publicKey":Ljava/security/PublicKey;
new-instance v8, Landroid/content/pm/VerifierInfo;
invoke-direct {v8, v5, v6}, Landroid/content/pm/VerifierInfo;-><init>(Ljava/lang/String;Ljava/security/PublicKey;)V
:try_end_9b
.catch Ljava/security/NoSuchAlgorithmException; {:try_start_8c .. :try_end_9b} :catch_9c
.catch Ljava/security/spec/InvalidKeySpecException; {:try_start_8c .. :try_end_9b} :catch_a7
goto :goto_24
.line 2941
.end local v3 # "keyFactory":Ljava/security/KeyFactory;
.end local v6 # "publicKey":Ljava/security/PublicKey;
:catch_9c
move-exception v0
.line 2942
.local v0, "e":Ljava/security/NoSuchAlgorithmException;
const-string v8, "PackageParser"
const-string v9, "Could not parse public key because DSA isn\'t included in build"
invoke-static {v8, v9}, Landroid/util/Log;->wtf(Ljava/lang/String;Ljava/lang/String;)I
.line 2943
const/4 v8, 0x0
goto/16 :goto_24
.line 2944
.end local v0 # "e":Ljava/security/NoSuchAlgorithmException;
:catch_a7
move-exception v8
.line 2948
const/4 v8, 0x0
goto/16 :goto_24
.end method
.method public static setCompatibilityModeEnabled(Z)V
.registers 1
.param p0, "compatibilityModeEnabled" # Z
.prologue
.line 3712
sput-boolean p0, Landroid/content/pm/PackageParser;->sCompatibilityModeEnabled:Z
.line 3713
return-void
.end method
.method public static stringToSignature(Ljava/lang/String;)Landroid/content/pm/Signature;
.registers 5
.param p0, "str" # Ljava/lang/String;
.prologue
.line 886
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
.line 887
.local v0, "N":I
new-array v2, v0, [B
.line 888
.local v2, "sig":[B
const/4 v1, 0x0
.local v1, "i":I
:goto_7
if-ge v1, v0, :cond_13
.line 889
invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C
move-result v3
int-to-byte v3, v3
aput-byte v3, v2, v1
.line 888
add-int/lit8 v1, v1, 0x1
goto :goto_7
.line 891
:cond_13
new-instance v3, Landroid/content/pm/Signature;
invoke-direct {v3, v2}, Landroid/content/pm/Signature;-><init>([B)V
return-object v3
.end method
.method private static validateName(Ljava/lang/String;Z)Ljava/lang/String;
.registers 9
.param p0, "name" # Ljava/lang/String;
.param p1, "requiresSeparator" # Z
.prologue
.line 760
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
.line 761
.local v0, "N":I
const/4 v3, 0x0
.line 762
.local v3, "hasSep":Z
const/4 v2, 0x1
.line 763
.local v2, "front":Z
const/4 v4, 0x0
.local v4, "i":I
:goto_7
if-ge v4, v0, :cond_50
.line 764
invoke-virtual {p0, v4}, Ljava/lang/String;->charAt(I)C
move-result v1
.line 765
.local v1, "c":C
const/16 v5, 0x61
if-lt v1, v5, :cond_15
const/16 v5, 0x7a
if-le v1, v5, :cond_1d
:cond_15
const/16 v5, 0x41
if-lt v1, v5, :cond_21
const/16 v5, 0x5a
if-gt v1, v5, :cond_21
.line 766
:cond_1d
const/4 v2, 0x0
.line 763
:cond_1e
:goto_1e
add-int/lit8 v4, v4, 0x1
goto :goto_7
.line 769
:cond_21
if-nez v2, :cond_2f
.line 770
const/16 v5, 0x30
if-lt v1, v5, :cond_2b
const/16 v5, 0x39
if-le v1, v5, :cond_1e
:cond_2b
const/16 v5, 0x5f
if-eq v1, v5, :cond_1e
.line 774
:cond_2f
const/16 v5, 0x2e
if-ne v1, v5, :cond_36
.line 775
const/4 v3, 0x1
.line 776
const/4 v2, 0x1
.line 777
goto :goto_1e
.line 779
:cond_36
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "bad character \'"
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v5
const-string v6, "\'"
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
.line 781
.end local v1 # "c":C
:goto_4f
return-object v5
:cond_50
if-nez v3, :cond_54
if-nez p1, :cond_56
:cond_54
const/4 v5, 0x0
goto :goto_4f
:cond_56
const-string v5, "must have at least one \'.\' separator"
goto :goto_4f
.end method
# virtual methods
.method public collectCertificates(Landroid/content/pm/PackageParser$Package;I)Z
.registers 25
.param p1, "pkg" # Landroid/content/pm/PackageParser$Package;
.param p2, "flags" # I
.prologue
.line 567
const/16 v19, 0x0
move-object/from16 v0, v19
move-object/from16 v1, p1
iput-object v0, v1, Landroid/content/pm/PackageParser$Package;->mSignatures:[Landroid/content/pm/Signature;
.line 570
const/16 v17, 0x0
.line 571
.local v17, "readBuffer":[B
sget-object v20, Landroid/content/pm/PackageParser;->mSync:Ljava/lang/Object;
monitor-enter v20
.line 572
:try_start_d
sget-object v18, Landroid/content/pm/PackageParser;->mReadBuffer:Ljava/lang/ref/WeakReference;
.line 573
.local v18, "readBufferRef":Ljava/lang/ref/WeakReference;, "Ljava/lang/ref/WeakReference<[B>;"
if-eqz v18, :cond_1f
.line 574
const/16 v19, 0x0
sput-object v19, Landroid/content/pm/PackageParser;->mReadBuffer:Ljava/lang/ref/WeakReference;
.line 575
invoke-virtual/range {v18 .. v18}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v19
move-object/from16 v0, v19
check-cast v0, [B
move-object/from16 v17, v0
.line 577
:cond_1f
if-nez v17, :cond_32
.line 578
const/16 v19, 0x2000
move/from16 v0, v19
new-array v0, v0, [B
move-object/from16 v17, v0
.line 579
new-instance v18, Ljava/lang/ref/WeakReference;
.end local v18 # "readBufferRef":Ljava/lang/ref/WeakReference;, "Ljava/lang/ref/WeakReference<[B>;"
move-object/from16 v0, v18
move-object/from16 v1, v17
invoke-direct {v0, v1}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
.line 581
.restart local v18 # "readBufferRef":Ljava/lang/ref/WeakReference;, "Ljava/lang/ref/WeakReference<[B>;"
:cond_32
monitor-exit v20
:try_end_33
.catchall {:try_start_d .. :try_end_33} :catchall_9f
.line 584
:try_start_33
new-instance v12, Ljava/util/jar/JarFile;
move-object/from16 v0, p0
iget-object v0, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
move-object/from16 v19, v0
const/16 v20, 0x1
const/16 v21, 0x1
move-object/from16 v0, v19
move/from16 v1, v20
move/from16 v2, v21
invoke-direct {v12, v0, v1, v2}, Ljava/util/jar/JarFile;-><init>(Ljava/lang/String;ZZ)V
.line 586
.local v12, "jarFile":Ljava/util/jar/JarFile;
const/4 v5, 0x0
.line 588
.local v5, "certs":[Ljava/security/cert/Certificate;
and-int/lit8 v19, p2, 0x1
if-eqz v19, :cond_a2
.line 593
const-string v19, "AndroidManifest.xml"
move-object/from16 v0, v19
invoke-virtual {v12, v0}, Ljava/util/jar/JarFile;->getJarEntry(Ljava/lang/String;)Ljava/util/jar/JarEntry;
move-result-object v11
.line 594
.local v11, "jarEntry":Ljava/util/jar/JarEntry;
move-object/from16 v0, p0
move-object/from16 v1, v17
invoke-direct {v0, v12, v11, v1}, Landroid/content/pm/PackageParser;->loadCertificates(Ljava/util/jar/JarFile;Ljava/util/jar/JarEntry;[B)[Ljava/security/cert/Certificate;
move-result-object v5
.line 595
if-nez v5, :cond_1ab
.line 596
const-string v19, "PackageParser"
new-instance v20, Ljava/lang/StringBuilder;
invoke-direct/range {v20 .. v20}, Ljava/lang/StringBuilder;-><init>()V
const-string v21, "Package "
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
move-object/from16 v0, p1
iget-object v0, v0, Landroid/content/pm/PackageParser$Package;->packageName:Ljava/lang/String;
move-object/from16 v21, v0
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
const-string v21, " has no certificates at entry "
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
invoke-virtual {v11}, Ljava/util/jar/JarEntry;->getName()Ljava/lang/String;
move-result-object v21
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
const-string v21, "; ignoring!"
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
invoke-virtual/range {v20 .. v20}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v20
invoke-static/range {v19 .. v20}, Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 599
invoke-virtual {v12}, Ljava/util/jar/JarFile;->close()V
.line 600
const/16 v19, -0x67
move/from16 v0, v19
move-object/from16 v1, p0
iput v0, v1, Landroid/content/pm/PackageParser;->mParseError:I
:try_end_9c
.catch Ljava/security/cert/CertificateEncodingException; {:try_start_33 .. :try_end_9c} :catch_1e7
.catch Ljava/io/IOException; {:try_start_33 .. :try_end_9c} :catch_246
.catch Ljava/lang/RuntimeException; {:try_start_33 .. :try_end_9c} :catch_275
.line 601
const/16 v19, 0x0
.line 704
.end local v5 # "certs":[Ljava/security/cert/Certificate;
.end local v11 # "jarEntry":Ljava/util/jar/JarEntry;
.end local v12 # "jarFile":Ljava/util/jar/JarFile;
:goto_9e
return v19
.line 581
.end local v18 # "readBufferRef":Ljava/lang/ref/WeakReference;, "Ljava/lang/ref/WeakReference<[B>;"
:catchall_9f
move-exception v19
:try_start_a0
monitor-exit v20
:try_end_a1
.catchall {:try_start_a0 .. :try_end_a1} :catchall_9f
throw v19
.line 616
.restart local v5 # "certs":[Ljava/security/cert/Certificate;
.restart local v12 # "jarFile":Ljava/util/jar/JarFile;
.restart local v18 # "readBufferRef":Ljava/lang/ref/WeakReference;, "Ljava/lang/ref/WeakReference<[B>;"
:cond_a2
:try_start_a2
invoke-virtual {v12}, Ljava/util/jar/JarFile;->entries()Ljava/util/Enumeration;
move-result-object v7
.line 617
.local v7, "entries":Ljava/util/Enumeration;, "Ljava/util/Enumeration<Ljava/util/jar/JarEntry;>;"
invoke-virtual {v12}, Ljava/util/jar/JarFile;->getManifest()Ljava/util/jar/Manifest;
move-result-object v15
.line 618
.local v15, "manifest":Ljava/util/jar/Manifest;
:cond_aa
:goto_aa
invoke-interface {v7}, Ljava/util/Enumeration;->hasMoreElements()Z
move-result v19
if-eqz v19, :cond_1ab
.line 619
invoke-interface {v7}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;
move-result-object v13
check-cast v13, Ljava/util/jar/JarEntry;
.line 620
.local v13, "je":Ljava/util/jar/JarEntry;
invoke-virtual {v13}, Ljava/util/jar/JarEntry;->isDirectory()Z
move-result v19
if-nez v19, :cond_aa
.line 622
invoke-virtual {v13}, Ljava/util/jar/JarEntry;->getName()Ljava/lang/String;
move-result-object v16
.line 624
.local v16, "name":Ljava/lang/String;
const-string v19, "META-INF/"
move-object/from16 v0, v16
move-object/from16 v1, v19
invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v19
if-nez v19, :cond_aa
.line 627
const-string v19, "AndroidManifest.xml"
move-object/from16 v0, v19
move-object/from16 v1, v16
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v19
if-eqz v19, :cond_e6
.line 628
invoke-virtual/range {v15 .. v16}, Ljava/util/jar/Manifest;->getAttributes(Ljava/lang/String;)Ljava/util/jar/Attributes;
move-result-object v4
.line 629
.local v4, "attributes":Ljava/util/jar/Attributes;
invoke-static {v4}, Landroid/content/pm/ManifestDigest;->fromAttributes(Ljava/util/jar/Attributes;)Landroid/content/pm/ManifestDigest;
move-result-object v19
move-object/from16 v0, v19
move-object/from16 v1, p1
iput-object v0, v1, Landroid/content/pm/PackageParser$Package;->manifestDigest:Landroid/content/pm/ManifestDigest;
.line 632
.end local v4 # "attributes":Ljava/util/jar/Attributes;
:cond_e6
move-object/from16 v0, p0
move-object/from16 v1, v17
invoke-direct {v0, v12, v13, v1}, Landroid/content/pm/PackageParser;->loadCertificates(Ljava/util/jar/JarFile;Ljava/util/jar/JarEntry;[B)[Ljava/security/cert/Certificate;
move-result-object v14
.line 639
.local v14, "localCerts":[Ljava/security/cert/Certificate;
if-nez v14, :cond_131
.line 640
const-string v19, "PackageParser"
new-instance v20, Ljava/lang/StringBuilder;
invoke-direct/range {v20 .. v20}, Ljava/lang/StringBuilder;-><init>()V
const-string v21, "Package "
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
move-object/from16 v0, p1
iget-object v0, v0, Landroid/content/pm/PackageParser$Package;->packageName:Ljava/lang/String;
move-object/from16 v21, v0
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
const-string v21, " has no certificates at entry "
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
invoke-virtual {v13}, Ljava/util/jar/JarEntry;->getName()Ljava/lang/String;
move-result-object v21
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
const-string v21, "; ignoring!"
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
invoke-virtual/range {v20 .. v20}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v20
invoke-static/range {v19 .. v20}, Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 643
invoke-virtual {v12}, Ljava/util/jar/JarFile;->close()V
.line 644
const/16 v19, -0x67
move/from16 v0, v19
move-object/from16 v1, p0
iput v0, v1, Landroid/content/pm/PackageParser;->mParseError:I
.line 645
const/16 v19, 0x0
goto/16 :goto_9e
.line 646
:cond_131
if-nez v5, :cond_136
.line 647
move-object v5, v14
goto/16 :goto_aa
.line 650
:cond_136
const/4 v9, 0x0
.local v9, "i":I
:goto_137
array-length v0, v5
move/from16 v19, v0
move/from16 v0, v19
if-ge v9, v0, :cond_aa
.line 651
const/4 v8, 0x0
.line 652
.local v8, "found":Z
const/4 v10, 0x0
.local v10, "j":I
:goto_140
array-length v0, v14
move/from16 v19, v0
move/from16 v0, v19
if-ge v10, v0, :cond_156
.line 653
aget-object v19, v5, v9
if-eqz v19, :cond_1a5
aget-object v19, v5, v9
aget-object v20, v14, v10
invoke-virtual/range {v19 .. v20}, Ljava/security/cert/Certificate;->equals(Ljava/lang/Object;)Z
move-result v19
if-eqz v19, :cond_1a5
.line 655
const/4 v8, 0x1
.line 659
:cond_156
if-eqz v8, :cond_164
array-length v0, v5
move/from16 v19, v0
array-length v0, v14
move/from16 v20, v0
move/from16 v0, v19
move/from16 v1, v20
if-eq v0, v1, :cond_1a8
.line 660
:cond_164
const-string v19, "PackageParser"
new-instance v20, Ljava/lang/StringBuilder;
invoke-direct/range {v20 .. v20}, Ljava/lang/StringBuilder;-><init>()V
const-string v21, "Package "
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
move-object/from16 v0, p1
iget-object v0, v0, Landroid/content/pm/PackageParser$Package;->packageName:Ljava/lang/String;
move-object/from16 v21, v0
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
const-string v21, " has mismatched certificates at entry "
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
invoke-virtual {v13}, Ljava/util/jar/JarEntry;->getName()Ljava/lang/String;
move-result-object v21
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
const-string v21, "; ignoring!"
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
invoke-virtual/range {v20 .. v20}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v20
invoke-static/range {v19 .. v20}, Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 663
invoke-virtual {v12}, Ljava/util/jar/JarFile;->close()V
.line 664
const/16 v19, -0x68
move/from16 v0, v19
move-object/from16 v1, p0
iput v0, v1, Landroid/content/pm/PackageParser;->mParseError:I
.line 665
const/16 v19, 0x0
goto/16 :goto_9e
.line 652
:cond_1a5
add-int/lit8 v10, v10, 0x1
goto :goto_140
.line 650
:cond_1a8
add-int/lit8 v9, v9, 0x1
goto :goto_137
.line 671
.end local v7 # "entries":Ljava/util/Enumeration;, "Ljava/util/Enumeration<Ljava/util/jar/JarEntry;>;"
.end local v8 # "found":Z
.end local v9 # "i":I
.end local v10 # "j":I
.end local v13 # "je":Ljava/util/jar/JarEntry;
.end local v14 # "localCerts":[Ljava/security/cert/Certificate;
.end local v15 # "manifest":Ljava/util/jar/Manifest;
.end local v16 # "name":Ljava/lang/String;
:cond_1ab
invoke-virtual {v12}, Ljava/util/jar/JarFile;->close()V
.line 673
sget-object v20, Landroid/content/pm/PackageParser;->mSync:Ljava/lang/Object;
monitor-enter v20
:try_end_1b1
.catch Ljava/security/cert/CertificateEncodingException; {:try_start_a2 .. :try_end_1b1} :catch_1e7
.catch Ljava/io/IOException; {:try_start_a2 .. :try_end_1b1} :catch_246
.catch Ljava/lang/RuntimeException; {:try_start_a2 .. :try_end_1b1} :catch_275
.line 674
:try_start_1b1
sput-object v18, Landroid/content/pm/PackageParser;->mReadBuffer:Ljava/lang/ref/WeakReference;
.line 675
monitor-exit v20
:try_end_1b4
.catchall {:try_start_1b1 .. :try_end_1b4} :catchall_1e4
.line 677
if-eqz v5, :cond_216
:try_start_1b6
array-length v0, v5
move/from16 v19, v0
if-lez v19, :cond_216
.line 678
array-length v3, v5
.line 679
.local v3, "N":I
array-length v0, v5
move/from16 v19, v0
move/from16 v0, v19
new-array v0, v0, [Landroid/content/pm/Signature;
move-object/from16 v19, v0
move-object/from16 v0, v19
move-object/from16 v1, p1
iput-object v0, v1, Landroid/content/pm/PackageParser$Package;->mSignatures:[Landroid/content/pm/Signature;
.line 680
const/4 v9, 0x0
.restart local v9 # "i":I
:goto_1cc
if-ge v9, v3, :cond_2a4
.line 681
move-object/from16 v0, p1
iget-object v0, v0, Landroid/content/pm/PackageParser$Package;->mSignatures:[Landroid/content/pm/Signature;
move-object/from16 v19, v0
new-instance v20, Landroid/content/pm/Signature;
aget-object v21, v5, v9
invoke-virtual/range {v21 .. v21}, Ljava/security/cert/Certificate;->getEncoded()[B
move-result-object v21
invoke-direct/range {v20 .. v21}, Landroid/content/pm/Signature;-><init>([B)V
aput-object v20, v19, v9
:try_end_1e1
.catch Ljava/security/cert/CertificateEncodingException; {:try_start_1b6 .. :try_end_1e1} :catch_1e7
.catch Ljava/io/IOException; {:try_start_1b6 .. :try_end_1e1} :catch_246
.catch Ljava/lang/RuntimeException; {:try_start_1b6 .. :try_end_1e1} :catch_275
.line 680
add-int/lit8 v9, v9, 0x1
goto :goto_1cc
.line 675
.end local v3 # "N":I
.end local v9 # "i":I
:catchall_1e4
move-exception v19
:try_start_1e5
monitor-exit v20
:try_end_1e6
.catchall {:try_start_1e5 .. :try_end_1e6} :catchall_1e4
:try_start_1e6
throw v19
:try_end_1e7
.catch Ljava/security/cert/CertificateEncodingException; {:try_start_1e6 .. :try_end_1e7} :catch_1e7
.catch Ljava/io/IOException; {:try_start_1e6 .. :try_end_1e7} :catch_246
.catch Ljava/lang/RuntimeException; {:try_start_1e6 .. :try_end_1e7} :catch_275
.line 690
.end local v5 # "certs":[Ljava/security/cert/Certificate;
.end local v12 # "jarFile":Ljava/util/jar/JarFile;
:catch_1e7
move-exception v6
.line 691
.local v6, "e":Ljava/security/cert/CertificateEncodingException;
const-string v19, "PackageParser"
new-instance v20, Ljava/lang/StringBuilder;
invoke-direct/range {v20 .. v20}, Ljava/lang/StringBuilder;-><init>()V
const-string v21, "Exception reading "
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
move-object/from16 v0, p0
iget-object v0, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
move-object/from16 v21, v0
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
invoke-virtual/range {v20 .. v20}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v20
move-object/from16 v0, v19
move-object/from16 v1, v20
invoke-static {v0, v1, v6}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 692
const/16 v19, -0x69
move/from16 v0, v19
move-object/from16 v1, p0
iput v0, v1, Landroid/content/pm/PackageParser;->mParseError:I
.line 693
const/16 v19, 0x0
goto/16 :goto_9e
.line 685
.end local v6 # "e":Ljava/security/cert/CertificateEncodingException;
.restart local v5 # "certs":[Ljava/security/cert/Certificate;
.restart local v12 # "jarFile":Ljava/util/jar/JarFile;
:cond_216
:try_start_216
const-string v19, "PackageParser"
new-instance v20, Ljava/lang/StringBuilder;
invoke-direct/range {v20 .. v20}, Ljava/lang/StringBuilder;-><init>()V
const-string v21, "Package "
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
move-object/from16 v0, p1
iget-object v0, v0, Landroid/content/pm/PackageParser$Package;->packageName:Ljava/lang/String;
move-object/from16 v21, v0
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
const-string v21, " has no certificates; ignoring!"
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
invoke-virtual/range {v20 .. v20}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v20
invoke-static/range {v19 .. v20}, Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 687
const/16 v19, -0x67
move/from16 v0, v19
move-object/from16 v1, p0
iput v0, v1, Landroid/content/pm/PackageParser;->mParseError:I
:try_end_242
.catch Ljava/security/cert/CertificateEncodingException; {:try_start_216 .. :try_end_242} :catch_1e7
.catch Ljava/io/IOException; {:try_start_216 .. :try_end_242} :catch_246
.catch Ljava/lang/RuntimeException; {:try_start_216 .. :try_end_242} :catch_275
.line 688
const/16 v19, 0x0
goto/16 :goto_9e
.line 694
.end local v5 # "certs":[Ljava/security/cert/Certificate;
.end local v12 # "jarFile":Ljava/util/jar/JarFile;
:catch_246
move-exception v6
.line 695
.local v6, "e":Ljava/io/IOException;
const-string v19, "PackageParser"
new-instance v20, Ljava/lang/StringBuilder;
invoke-direct/range {v20 .. v20}, Ljava/lang/StringBuilder;-><init>()V
const-string v21, "Exception reading "
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
move-object/from16 v0, p0
iget-object v0, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
move-object/from16 v21, v0
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
invoke-virtual/range {v20 .. v20}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v20
move-object/from16 v0, v19
move-object/from16 v1, v20
invoke-static {v0, v1, v6}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 696
const/16 v19, -0x69
move/from16 v0, v19
move-object/from16 v1, p0
iput v0, v1, Landroid/content/pm/PackageParser;->mParseError:I
.line 697
const/16 v19, 0x0
goto/16 :goto_9e
.line 698
.end local v6 # "e":Ljava/io/IOException;
:catch_275
move-exception v6
.line 699
.local v6, "e":Ljava/lang/RuntimeException;
const-string v19, "PackageParser"
new-instance v20, Ljava/lang/StringBuilder;
invoke-direct/range {v20 .. v20}, Ljava/lang/StringBuilder;-><init>()V
const-string v21, "Exception reading "
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
move-object/from16 v0, p0
iget-object v0, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
move-object/from16 v21, v0
invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v20
invoke-virtual/range {v20 .. v20}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v20
move-object/from16 v0, v19
move-object/from16 v1, v20
invoke-static {v0, v1, v6}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 700
const/16 v19, -0x66
move/from16 v0, v19
move-object/from16 v1, p0
iput v0, v1, Landroid/content/pm/PackageParser;->mParseError:I
.line 701
const/16 v19, 0x0
goto/16 :goto_9e
.line 704
.end local v6 # "e":Ljava/lang/RuntimeException;
.restart local v3 # "N":I
.restart local v5 # "certs":[Ljava/security/cert/Certificate;
.restart local v9 # "i":I
.restart local v12 # "jarFile":Ljava/util/jar/JarFile;
:cond_2a4
const/16 v19, 0x1
goto/16 :goto_9e
.end method
.method public getParseError()I
.registers 2
.prologue
.line 469
iget v0, p0, Landroid/content/pm/PackageParser;->mParseError:I
return v0
.end method
.method public parsePackage(Ljava/io/File;Ljava/lang/String;Landroid/util/DisplayMetrics;I)Landroid/content/pm/PackageParser$Package;
.registers 38
.param p1, "sourceFile" # Ljava/io/File;
.param p2, "destCodePath" # Ljava/lang/String;
.param p3, "metrics" # Landroid/util/DisplayMetrics;
.param p4, "flags" # I
.prologue
.line 474
const/4 v6, 0x1
move-object/from16 v0, p0
iput v6, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 476
invoke-virtual/range {p1 .. p1}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v6
move-object/from16 v0, p0
iput-object v6, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
.line 477
invoke-virtual/range {p1 .. p1}, Ljava/io/File;->isFile()Z
move-result v6
if-nez v6, :cond_38
.line 478
const-string v6, "PackageParser"
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
const-string v8, "Skipping dir: "
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
move-object/from16 v0, p0
iget-object v8, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v7
invoke-static {v6, v7}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 479
const/16 v6, -0x64
move-object/from16 v0, p0
iput v6, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 480
const/16 v30, 0x0
.line 563
:goto_37
return-object v30
.line 482
:cond_38
invoke-virtual/range {p1 .. p1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v6
invoke-static {v6}, Landroid/content/pm/PackageParser;->isPackageFilename(Ljava/lang/String;)Z
move-result v6
if-nez v6, :cond_6f
and-int/lit8 v6, p4, 0x4
if-eqz v6, :cond_6f
.line 484
and-int/lit8 v6, p4, 0x1
if-nez v6, :cond_66
.line 487
const-string v6, "PackageParser"
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
const-string v8, "Skipping non-package file: "
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
move-object/from16 v0, p0
iget-object v8, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v7
invoke-static {v6, v7}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 489
:cond_66
const/16 v6, -0x64
move-object/from16 v0, p0
iput v6, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 490
const/16 v30, 0x0
goto :goto_37
.line 496
:cond_6f
const/16 v29, 0x0
.line 497
.local v29, "parser":Landroid/content/res/XmlResourceParser;
const/16 v24, 0x0
.line 498
.local v24, "assmgr":Landroid/content/res/AssetManager;
const/16 v31, 0x0
.line 499
.local v31, "res":Landroid/content/res/Resources;
const/16 v23, 0x1
.line 501
.local v23, "assetError":Z
:try_start_77
new-instance v5, Landroid/content/res/AssetManager;
invoke-direct {v5}, Landroid/content/res/AssetManager;-><init>()V
:try_end_7c
.catch Ljava/lang/Exception; {:try_start_77 .. :try_end_7c} :catch_1a6
.line 502
.end local v24 # "assmgr":Landroid/content/res/AssetManager;
.local v5, "assmgr":Landroid/content/res/AssetManager;
:try_start_7c
move-object/from16 v0, p0
iget-object v6, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v5, v6}, Landroid/content/res/AssetManager;->addAssetPath(Ljava/lang/String;)I
move-result v25
.line 503
.local v25, "cookie":I
if-eqz v25, :cond_c8
.line 504
new-instance v32, Landroid/content/res/Resources;
const/4 v6, 0x0
move-object/from16 v0, v32
move-object/from16 v1, p3
invoke-direct {v0, v5, v1, v6}, Landroid/content/res/Resources;-><init>(Landroid/content/res/AssetManager;Landroid/util/DisplayMetrics;Landroid/content/res/Configuration;)V
:try_end_90
.catch Ljava/lang/Exception; {:try_start_7c .. :try_end_90} :catch_e5
.line 505
.end local v31 # "res":Landroid/content/res/Resources;
.local v32, "res":Landroid/content/res/Resources;
const/4 v6, 0x0
const/4 v7, 0x0
const/4 v8, 0x0
const/4 v9, 0x0
const/4 v10, 0x0
const/4 v11, 0x0
const/4 v12, 0x0
const/4 v13, 0x0
const/4 v14, 0x0
const/4 v15, 0x0
const/16 v16, 0x0
const/16 v17, 0x0
const/16 v18, 0x0
const/16 v19, 0x0
const/16 v20, 0x0
const/16 v21, 0x0
:try_start_a6
sget v22, Landroid/os/Build$VERSION;->RESOURCES_SDK_INT:I
invoke-virtual/range {v5 .. v22}, Landroid/content/res/AssetManager;->setConfiguration(IILjava/lang/String;IIIIIIIIIIIIII)V
.line 507
const-string v6, "AndroidManifest.xml"
move/from16 v0, v25
invoke-virtual {v5, v0, v6}, Landroid/content/res/AssetManager;->openXmlResourceParser(ILjava/lang/String;)Landroid/content/res/XmlResourceParser;
:try_end_b2
.catch Ljava/lang/Exception; {:try_start_a6 .. :try_end_b2} :catch_1ab
move-result-object v29
.line 508
const/16 v23, 0x0
move-object/from16 v31, v32
.line 516
.end local v25 # "cookie":I
.end local v32 # "res":Landroid/content/res/Resources;
.restart local v31 # "res":Landroid/content/res/Resources;
:goto_b7
if-eqz v23, :cond_105
.line 517
if-eqz v5, :cond_be
invoke-virtual {v5}, Landroid/content/res/AssetManager;->close()V
.line 518
:cond_be
const/16 v6, -0x65
move-object/from16 v0, p0
iput v6, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 519
const/16 v30, 0x0
goto/16 :goto_37
.line 510
.restart local v25 # "cookie":I
:cond_c8
:try_start_c8
const-string v6, "PackageParser"
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
const-string v8, "Failed adding asset path:"
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
move-object/from16 v0, p0
iget-object v8, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v7
invoke-static {v6, v7}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
:try_end_e4
.catch Ljava/lang/Exception; {:try_start_c8 .. :try_end_e4} :catch_e5
goto :goto_b7
.line 512
.end local v25 # "cookie":I
:catch_e5
move-exception v26
.line 513
.local v26, "e":Ljava/lang/Exception;
:goto_e6
const-string v6, "PackageParser"
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
const-string v8, "Unable to read AndroidManifest.xml of "
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
move-object/from16 v0, p0
iget-object v8, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v7
move-object/from16 v0, v26
invoke-static {v6, v7, v0}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
goto :goto_b7
.line 521
.end local v26 # "e":Ljava/lang/Exception;
:cond_105
const/4 v6, 0x1
new-array v0, v6, [Ljava/lang/String;
move-object/from16 v28, v0
.line 522
.local v28, "errorText":[Ljava/lang/String;
const/16 v30, 0x0
.line 523
.local v30, "pkg":Landroid/content/pm/PackageParser$Package;
const/16 v27, 0x0
.line 526
.local v27, "errorException":Ljava/lang/Exception;
:try_start_10e
move-object/from16 v0, p0
move-object/from16 v1, v31
move-object/from16 v2, v29
move/from16 v3, p4
move-object/from16 v4, v28
invoke-direct {v0, v1, v2, v3, v4}, Landroid/content/pm/PackageParser;->parsePackage(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;)Landroid/content/pm/PackageParser$Package;
:try_end_11b
.catch Ljava/lang/Exception; {:try_start_10e .. :try_end_11b} :catch_14f
move-result-object v30
.line 533
:goto_11c
if-nez v30, :cond_18b
.line 536
move-object/from16 v0, p0
iget-boolean v6, v0, Landroid/content/pm/PackageParser;->mOnlyCoreApps:Z
if-eqz v6, :cond_12b
move-object/from16 v0, p0
iget v6, v0, Landroid/content/pm/PackageParser;->mParseError:I
const/4 v7, 0x1
if-eq v6, v7, :cond_145
.line 537
:cond_12b
if-eqz v27, :cond_159
.line 538
const-string v6, "PackageParser"
move-object/from16 v0, p0
iget-object v7, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
move-object/from16 v0, v27
invoke-static {v6, v7, v0}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 544
:goto_138
move-object/from16 v0, p0
iget v6, v0, Landroid/content/pm/PackageParser;->mParseError:I
const/4 v7, 0x1
if-ne v6, v7, :cond_145
.line 545
const/16 v6, -0x6c
move-object/from16 v0, p0
iput v6, v0, Landroid/content/pm/PackageParser;->mParseError:I
.line 548
:cond_145
invoke-interface/range {v29 .. v29}, Landroid/content/res/XmlResourceParser;->close()V
.line 549
invoke-virtual {v5}, Landroid/content/res/AssetManager;->close()V
.line 550
const/16 v30, 0x0
goto/16 :goto_37
.line 527
:catch_14f
move-exception v26
.line 528
.restart local v26 # "e":Ljava/lang/Exception;
move-object/from16 v27, v26
.line 529
const/16 v6, -0x66
move-object/from16 v0, p0
iput v6, v0, Landroid/content/pm/PackageParser;->mParseError:I
goto :goto_11c
.line 540
.end local v26 # "e":Ljava/lang/Exception;
:cond_159
const-string v6, "PackageParser"
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
move-object/from16 v0, p0
iget-object v8, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
const-string v8, " (at "
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
invoke-interface/range {v29 .. v29}, Landroid/content/res/XmlResourceParser;->getPositionDescription()Ljava/lang/String;
move-result-object v8
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
const-string v8, "): "
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
const/4 v8, 0x0
aget-object v8, v28, v8
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v7
invoke-static {v6, v7}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_138
.line 553
:cond_18b
invoke-interface/range {v29 .. v29}, Landroid/content/res/XmlResourceParser;->close()V
.line 554
invoke-virtual {v5}, Landroid/content/res/AssetManager;->close()V
.line 557
move-object/from16 v0, p2
move-object/from16 v1, v30
iput-object v0, v1, Landroid/content/pm/PackageParser$Package;->mPath:Ljava/lang/String;
.line 558
move-object/from16 v0, p0
iget-object v6, v0, Landroid/content/pm/PackageParser;->mArchiveSourcePath:Ljava/lang/String;
move-object/from16 v0, v30
iput-object v6, v0, Landroid/content/pm/PackageParser$Package;->mScanPath:Ljava/lang/String;
.line 561
const/4 v6, 0x0
move-object/from16 v0, v30
iput-object v6, v0, Landroid/content/pm/PackageParser$Package;->mSignatures:[Landroid/content/pm/Signature;
goto/16 :goto_37
.line 512
.end local v5 # "assmgr":Landroid/content/res/AssetManager;
.end local v27 # "errorException":Ljava/lang/Exception;
.end local v28 # "errorText":[Ljava/lang/String;
.end local v30 # "pkg":Landroid/content/pm/PackageParser$Package;
.restart local v24 # "assmgr":Landroid/content/res/AssetManager;
:catch_1a6
move-exception v26
move-object/from16 v5, v24
.end local v24 # "assmgr":Landroid/content/res/AssetManager;
.restart local v5 # "assmgr":Landroid/content/res/AssetManager;
goto/16 :goto_e6
.end local v31 # "res":Landroid/content/res/Resources;
.restart local v25 # "cookie":I
.restart local v32 # "res":Landroid/content/res/Resources;
:catch_1ab
move-exception v26
move-object/from16 v31, v32
.end local v32 # "res":Landroid/content/res/Resources;
.restart local v31 # "res":Landroid/content/res/Resources;
goto/16 :goto_e6
.end method
.method public setOnlyCoreApps(Z)V
.registers 2
.param p1, "onlyCoreApps" # Z
.prologue
.line 248
iput-boolean p1, p0, Landroid/content/pm/PackageParser;->mOnlyCoreApps:Z
.line 249
return-void
.end method
.method public setSeparateProcesses([Ljava/lang/String;)V
.registers 2
.param p1, "procs" # [Ljava/lang/String;
.prologue
.line 244
iput-object p1, p0, Landroid/content/pm/PackageParser;->mSeparateProcesses:[Ljava/lang/String;
.line 245
return-void
.end method
.method public static fillinsig(Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageParser$Package;)V
.locals 9
.param p0, "pi" # Landroid/content/pm/PackageInfo;
.param p1, "p" # Landroid/content/pm/PackageParser$Package;
.prologue
const/4 v3, 0x0
.line 26
const/4 v1, 0x0
.line 28
.local v1, "handledFakeSignature":Z
:try_start_0
iget-object v4, p1, Landroid/content/pm/PackageParser$Package;->mAppMetaData:Landroid/os/Bundle;
if-eqz v4, :cond_0
iget-object v4, p1, Landroid/content/pm/PackageParser$Package;->mAppMetaData:Landroid/os/Bundle;
const-string v5, "fake-signature"
invoke-virtual {v4, v5}, Landroid/os/Bundle;->get(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v4
instance-of v4, v4, Ljava/lang/String;
if-eqz v4, :cond_0
.line 30
const/4 v4, 0x1
new-array v4, v4, [Landroid/content/pm/Signature;
const/4 v5, 0x0
new-instance v6, Landroid/content/pm/Signature;
iget-object v7, p1, Landroid/content/pm/PackageParser$Package;->mAppMetaData:Landroid/os/Bundle;
const-string v8, "fake-signature"
invoke-virtual {v7, v8}, Landroid/os/Bundle;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v7
invoke-direct {v6, v7}, Landroid/content/pm/Signature;-><init>(Ljava/lang/String;)V
aput-object v6, v4, v5
iput-object v4, p0, Landroid/content/pm/PackageInfo;->signatures:[Landroid/content/pm/Signature;
:try_end_0
.catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_0
.line 31
const/4 v1, 0x1
.line 37
:cond_0
:goto_0
if-nez v1, :cond_1
.line 38
iget-object v4, p1, Landroid/content/pm/PackageParser$Package;->mSignatures:[Landroid/content/pm/Signature;
if-eqz v4, :cond_2
iget-object v4, p1, Landroid/content/pm/PackageParser$Package;->mSignatures:[Landroid/content/pm/Signature;
array-length v0, v4
.line 39
.local v0, "N":I
:goto_1
if-lez v0, :cond_1
.line 40
new-array v4, v0, [Landroid/content/pm/Signature;
iput-object v4, p0, Landroid/content/pm/PackageInfo;->signatures:[Landroid/content/pm/Signature;
.line 41
iget-object v4, p1, Landroid/content/pm/PackageParser$Package;->mSignatures:[Landroid/content/pm/Signature;
iget-object v5, p0, Landroid/content/pm/PackageInfo;->signatures:[Landroid/content/pm/Signature;
invoke-static {v4, v3, v5, v3, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 44
.end local v0 # "N":I
:cond_1
return-void
.line 33
:catch_0
move-exception v2
.line 35
.local v2, "t":Ljava/lang/Throwable;
const-string v4, "PackageParser.FAKE_PACKAGE_SIGNATURE"
invoke-static {v4, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/Throwable;)I
goto :goto_0
.end local v2 # "t":Ljava/lang/Throwable;
:cond_2
move v0, v3
.line 38
goto :goto_1
.end method
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment