Created
March 11, 2016 22:10
-
-
Save vermut/ee2f6a04e6a360ef3577 to your computer and use it in GitHub Desktop.
PackageParser deodex Sailfish OS
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.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