public final class com.android.statementservice.IntentFilterVerificationReceiver extends android.content.BroadcastReceiver
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.android.statementservice.IntentFilterVerificationReceiver
super_class: android.content.BroadcastReceiver
{
private static final java.lang.String TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.Integer MAX_HOSTS_PER_REQUEST;
descriptor: Ljava/lang/Integer;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String HANDLE_ALL_URLS_RELATION;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "delegate_permission/common.handle_all_urls"
private static final java.lang.String ANDROID_ASSET_FORMAT;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "{\"namespace\": \"android_app\", \"package_name\": \"%s\", \"sha256_cert_fingerprints\": [\"%s\"]}"
private static final java.lang.String WEB_ASSET_FORMAT;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "{\"namespace\": \"web\", \"site\": \"%s\"}"
private static final java.util.regex.Pattern ANDROID_PACKAGE_NAME_PATTERN;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String TOO_MANY_HOSTS_FORMAT;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "Request contains %d hosts which is more than the allowed %d."
private static final java.lang.String CTS_LOG_FORMAT;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "Verifying IntentFilter. verificationId:%d scheme:\"%s\" hosts:\"%s\" package:\"%s\"."
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/android/statementservice/IntentFilterVerificationReceiver;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
putstatic com.android.statementservice.IntentFilterVerificationReceiver.TAG:Ljava/lang/String;
1: bipush 10
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
putstatic com.android.statementservice.IntentFilterVerificationReceiver.MAX_HOSTS_PER_REQUEST:Ljava/lang/Integer;
2: ldc "^[a-zA-Z_][a-zA-Z0-9_]*(\\.[a-zA-Z_][a-zA-Z0-9_]*)*$"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
3: putstatic com.android.statementservice.IntentFilterVerificationReceiver.ANDROID_PACKAGE_NAME_PATTERN:Ljava/util/regex/Pattern;
4: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial android.content.BroadcastReceiver.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/statementservice/IntentFilterVerificationReceiver;
private static void sendErrorToPackageManager(android.content.pm.PackageManager, int);
descriptor: (Landroid/content/pm/PackageManager;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
1: iconst_m1
2: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
3: invokevirtual android.content.pm.PackageManager.verifyIntentFilter:(IILjava/util/List;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 packageManager Landroid/content/pm/PackageManager;
0 5 1 verificationId I
MethodParameters:
Name Flags
packageManager
verificationId
public void onReceive(android.content.Context, android.content.Intent);
descriptor: (Landroid/content/Context;Landroid/content/Intent;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=18, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual android.content.Intent.getAction:()Ljava/lang/String;
astore 3
start local 3 1: ldc "android.intent.action.INTENT_FILTER_NEEDS_VERIFICATION"
aload 3
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 62
2: aload 2
invokevirtual android.content.Intent.getExtras:()Landroid/os/Bundle;
astore 4
start local 4 3: aload 4
ifnull 63
4: new android.content.Intent
dup
aload 1
ldc Lcom/android/statementservice/DirectStatementService;
invokespecial android.content.Intent.<init>:(Landroid/content/Context;Ljava/lang/Class;)V
astore 5
start local 5 5: aload 5
ldc "com.android.statementservice.service.CHECK_ALL_ACTION"
invokevirtual android.content.Intent.setAction:(Ljava/lang/String;)Landroid/content/Intent;
pop
6: aload 4
7: ldc "android.content.pm.extra.INTENT_FILTER_VERIFICATION_ID"
8: invokevirtual android.os.Bundle.getInt:(Ljava/lang/String;)I
istore 6
start local 6 9: aload 4
10: ldc "android.content.pm.extra.INTENT_FILTER_VERIFICATION_URI_SCHEME"
11: invokevirtual android.os.Bundle.getString:(Ljava/lang/String;)Ljava/lang/String;
astore 7
start local 7 12: aload 4
13: ldc "android.content.pm.extra.INTENT_FILTER_VERIFICATION_HOSTS"
14: invokevirtual android.os.Bundle.getString:(Ljava/lang/String;)Ljava/lang/String;
astore 8
start local 8 15: aload 4
16: ldc "android.content.pm.extra.INTENT_FILTER_VERIFICATION_PACKAGE_NAME"
17: invokevirtual android.os.Bundle.getString:(Ljava/lang/String;)Ljava/lang/String;
astore 9
start local 9 18: new android.os.Bundle
dup
invokespecial android.os.Bundle.<init>:()V
astore 10
start local 10 19: aload 10
ldc "com.android.statementservice.service.RELATION"
ldc "delegate_permission/common.handle_all_urls"
invokevirtual android.os.Bundle.putString:(Ljava/lang/String;Ljava/lang/String;)V
20: aload 8
ldc " "
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 11
start local 11 21: aload 11
arraylength
getstatic com.android.statementservice.IntentFilterVerificationReceiver.MAX_HOSTS_PER_REQUEST:Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
if_icmple 27
22: getstatic com.android.statementservice.IntentFilterVerificationReceiver.TAG:Ljava/lang/String;
ldc "Request contains %d hosts which is more than the allowed %d."
iconst_2
anewarray java.lang.Object
dup
iconst_0
23: aload 11
arraylength
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
getstatic com.android.statementservice.IntentFilterVerificationReceiver.MAX_HOSTS_PER_REQUEST:Ljava/lang/Integer;
aastore
24: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
25: aload 1
invokevirtual android.content.Context.getPackageManager:()Landroid/content/pm/PackageManager;
iload 6
invokestatic com.android.statementservice.IntentFilterVerificationReceiver.sendErrorToPackageManager:(Landroid/content/pm/PackageManager;I)V
26: return
27: StackMap locals: com.android.statementservice.IntentFilterVerificationReceiver android.content.Context android.content.Intent java.lang.String android.os.Bundle android.content.Intent int java.lang.String java.lang.String java.lang.String android.os.Bundle java.lang.String[]
StackMap stack:
new java.util.ArrayList
dup
aload 11
arraylength
invokespecial java.util.ArrayList.<init>:(I)V
astore 12
start local 12 28: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 13
start local 13 29: aload 11
dup
astore 17
arraylength
istore 16
iconst_0
istore 15
goto 36
StackMap locals: com.android.statementservice.IntentFilterVerificationReceiver android.content.Context android.content.Intent java.lang.String android.os.Bundle android.content.Intent int java.lang.String java.lang.String java.lang.String android.os.Bundle java.lang.String[] java.util.ArrayList java.util.ArrayList top int int java.lang.String[]
StackMap stack:
30: aload 17
iload 15
aaload
astore 14
start local 14 31: aload 14
ldc "*."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 33
32: aload 14
iconst_2
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 14
33: StackMap locals: com.android.statementservice.IntentFilterVerificationReceiver android.content.Context android.content.Intent java.lang.String android.os.Bundle android.content.Intent int java.lang.String java.lang.String java.lang.String android.os.Bundle java.lang.String[] java.util.ArrayList java.util.ArrayList java.lang.String int int java.lang.String[]
StackMap stack:
aload 13
aload 0
aload 7
aload 14
invokevirtual com.android.statementservice.IntentFilterVerificationReceiver.createWebAssetString:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
34: aload 12
aload 14
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 14 35: iinc 15 1
StackMap locals: com.android.statementservice.IntentFilterVerificationReceiver android.content.Context android.content.Intent java.lang.String android.os.Bundle android.content.Intent int java.lang.String java.lang.String java.lang.String android.os.Bundle java.lang.String[] java.util.ArrayList java.util.ArrayList top int int java.lang.String[]
StackMap stack:
36: iload 15
iload 16
if_icmplt 30
37: aload 10
ldc "com.android.statementservice.service.SOURCE_ASSET_DESCRIPTORS"
38: aload 13
39: invokevirtual android.os.Bundle.putStringArrayList:(Ljava/lang/String;Ljava/util/ArrayList;)V
end local 13 40: goto 45
StackMap locals: com.android.statementservice.IntentFilterVerificationReceiver android.content.Context android.content.Intent java.lang.String android.os.Bundle android.content.Intent int java.lang.String java.lang.String java.lang.String android.os.Bundle java.lang.String[] java.util.ArrayList
StackMap stack: java.net.MalformedURLException
41: astore 13
start local 13 42: getstatic com.android.statementservice.IntentFilterVerificationReceiver.TAG:Ljava/lang/String;
new java.lang.StringBuilder
dup
ldc "Error when processing input host: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 13
invokevirtual java.net.MalformedURLException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
43: aload 1
invokevirtual android.content.Context.getPackageManager:()Landroid/content/pm/PackageManager;
iload 6
invokestatic com.android.statementservice.IntentFilterVerificationReceiver.sendErrorToPackageManager:(Landroid/content/pm/PackageManager;I)V
44: return
end local 13 45: StackMap locals:
StackMap stack:
aload 10
ldc "com.android.statementservice.service.TARGET_ASSET_DESCRIPTOR"
46: aload 0
aload 1
aload 9
invokevirtual com.android.statementservice.IntentFilterVerificationReceiver.createAndroidAssetString:(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String;
47: invokevirtual android.os.Bundle.putString:(Ljava/lang/String;Ljava/lang/String;)V
48: goto 53
StackMap locals:
StackMap stack: android.content.pm.PackageManager$NameNotFoundException
49: astore 13
start local 13 50: getstatic com.android.statementservice.IntentFilterVerificationReceiver.TAG:Ljava/lang/String;
new java.lang.StringBuilder
dup
ldc "Error when processing input Android package: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 13
invokevirtual android.content.pm.PackageManager$NameNotFoundException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
51: aload 1
invokevirtual android.content.Context.getPackageManager:()Landroid/content/pm/PackageManager;
iload 6
invokestatic com.android.statementservice.IntentFilterVerificationReceiver.sendErrorToPackageManager:(Landroid/content/pm/PackageManager;I)V
52: return
end local 13 53: StackMap locals:
StackMap stack:
aload 10
ldc "com.android.statementservice.service.RESULT_RECEIVER"
54: new com.android.statementservice.IntentFilterVerificationReceiver$IsAssociatedResultReceiver
dup
55: new android.os.Handler
dup
invokespecial android.os.Handler.<init>:()V
aload 1
invokevirtual android.content.Context.getPackageManager:()Landroid/content/pm/PackageManager;
iload 6
56: invokespecial com.android.statementservice.IntentFilterVerificationReceiver$IsAssociatedResultReceiver.<init>:(Landroid/os/Handler;Landroid/content/pm/PackageManager;I)V
57: invokevirtual android.os.Bundle.putParcelable:(Ljava/lang/String;Landroid/os/Parcelable;)V
58: aload 0
iload 6
aload 7
aload 12
aload 9
invokevirtual com.android.statementservice.IntentFilterVerificationReceiver.logValidationParametersForCTS:(ILjava/lang/String;Ljava/util/ArrayList;Ljava/lang/String;)V
59: aload 5
aload 10
invokevirtual android.content.Intent.putExtras:(Landroid/os/Bundle;)Landroid/content/Intent;
pop
60: aload 1
aload 5
invokevirtual android.content.Context.startService:(Landroid/content/Intent;)Landroid/content/ComponentName;
pop
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 61: goto 63
62: StackMap locals: com.android.statementservice.IntentFilterVerificationReceiver android.content.Context android.content.Intent java.lang.String
StackMap stack:
getstatic com.android.statementservice.IntentFilterVerificationReceiver.TAG:Ljava/lang/String;
new java.lang.StringBuilder
dup
ldc "Intent action not supported: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
63: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 64 0 this Lcom/android/statementservice/IntentFilterVerificationReceiver;
0 64 1 context Landroid/content/Context;
0 64 2 intent Landroid/content/Intent;
1 64 3 action Ljava/lang/String;
3 61 4 inputExtras Landroid/os/Bundle;
5 61 5 serviceIntent Landroid/content/Intent;
9 61 6 verificationId I
12 61 7 scheme Ljava/lang/String;
15 61 8 hosts Ljava/lang/String;
18 61 9 packageName Ljava/lang/String;
19 61 10 extras Landroid/os/Bundle;
21 61 11 hostList [Ljava/lang/String;
28 61 12 finalHosts Ljava/util/ArrayList<Ljava/lang/String;>;
29 40 13 sourceAssets Ljava/util/ArrayList<Ljava/lang/String;>;
31 35 14 host Ljava/lang/String;
42 45 13 e Ljava/net/MalformedURLException;
50 53 13 e Landroid/content/pm/PackageManager$NameNotFoundException;
Exception table:
from to target type
28 40 41 Class java.net.MalformedURLException
45 48 49 Class android.content.pm.PackageManager$NameNotFoundException
MethodParameters:
Name Flags
context
intent
private void logValidationParametersForCTS(int, java.lang.String, java.util.ArrayList<java.lang.String>, java.lang.String);
descriptor: (ILjava/lang/String;Ljava/util/ArrayList;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: ldc " "
aload 3
invokevirtual java.util.ArrayList.toArray:()[Ljava/lang/Object;
invokestatic android.text.TextUtils.join:(Ljava/lang/CharSequence;[Ljava/lang/Object;)Ljava/lang/String;
astore 5
start local 5 1: getstatic com.android.statementservice.IntentFilterVerificationReceiver.TAG:Ljava/lang/String;
ldc "Verifying IntentFilter. verificationId:%d scheme:\"%s\" hosts:\"%s\" package:\"%s\"."
iconst_4
anewarray java.lang.Object
dup
iconst_0
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 2
aastore
dup
iconst_2
aload 5
aastore
dup
iconst_3
aload 4
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
pop
2: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/android/statementservice/IntentFilterVerificationReceiver;
0 3 1 verificationId I
0 3 2 scheme Ljava/lang/String;
0 3 3 finalHosts Ljava/util/ArrayList<Ljava/lang/String;>;
0 3 4 packageName Ljava/lang/String;
1 3 5 hostString Ljava/lang/String;
Signature: (ILjava/lang/String;Ljava/util/ArrayList<Ljava/lang/String;>;Ljava/lang/String;)V
MethodParameters:
Name Flags
verificationId
scheme
finalHosts
packageName
private java.lang.String createAndroidAssetString(android.content.Context, java.lang.String);
descriptor: (Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.android.statementservice.IntentFilterVerificationReceiver.ANDROID_PACKAGE_NAME_PATTERN:Ljava/util/regex/Pattern;
aload 2
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
invokevirtual java.util.regex.Matcher.matches:()Z
ifne 2
1: new android.content.pm.PackageManager$NameNotFoundException
dup
ldc "Input package name is not valid."
invokespecial android.content.pm.PackageManager$NameNotFoundException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 2
aload 1
invokestatic com.android.statementservice.retriever.Utils.getCertFingerprintsFromPackageManager:(Ljava/lang/String;Landroid/content/Context;)Ljava/util/List;
3: astore 3
start local 3 4: ldc "{\"namespace\": \"android_app\", \"package_name\": \"%s\", \"sha256_cert_fingerprints\": [\"%s\"]}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
5: ldc "\", \""
aload 3
invokestatic com.android.statementservice.retriever.Utils.joinStrings:(Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
aastore
6: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/android/statementservice/IntentFilterVerificationReceiver;
0 7 1 context Landroid/content/Context;
0 7 2 packageName Ljava/lang/String;
4 7 3 certFingerprints Ljava/util/List<Ljava/lang/String;>;
Exceptions:
throws android.content.pm.PackageManager$NameNotFoundException
MethodParameters:
Name Flags
context
packageName
private java.lang.String createWebAssetString(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic android.util.Patterns.DOMAIN_NAME:Ljava/util/regex/Pattern;
aload 2
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
invokevirtual java.util.regex.Matcher.matches:()Z
ifne 2
1: new java.net.MalformedURLException
dup
ldc "Input host is not valid."
invokespecial java.net.MalformedURLException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
ldc "http"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 4
aload 1
ldc "https"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 4
3: new java.net.MalformedURLException
dup
ldc "Input scheme is not valid."
invokespecial java.net.MalformedURLException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
ldc "{\"namespace\": \"web\", \"site\": \"%s\"}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
new java.net.URL
dup
aload 1
aload 2
ldc ""
invokespecial java.net.URL.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
invokevirtual java.net.URL.toString:()Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/android/statementservice/IntentFilterVerificationReceiver;
0 5 1 scheme Ljava/lang/String;
0 5 2 host Ljava/lang/String;
Exceptions:
throws java.net.MalformedURLException
MethodParameters:
Name Flags
scheme
host
}
SourceFile: "IntentFilterVerificationReceiver.java"
NestMembers:
com.android.statementservice.IntentFilterVerificationReceiver$IsAssociatedResultReceiver
InnerClasses:
public NameNotFoundException = android.content.pm.PackageManager$NameNotFoundException of android.content.pm.PackageManager
private IsAssociatedResultReceiver = com.android.statementservice.IntentFilterVerificationReceiver$IsAssociatedResultReceiver of com.android.statementservice.IntentFilterVerificationReceiver