public final class android.app.LoadedApk
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: android.app.LoadedApk
super_class: java.lang.Object
{
static final java.lang.String TAG;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "LoadedApk"
static final boolean DEBUG;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final java.lang.String PROPERTY_NAME_APPEND_NATIVE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "pi.append_native_lib_paths"
private final android.app.ActivityThread mActivityThread;
descriptor: Landroid/app/ActivityThread;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final java.lang.String mPackageName;
descriptor: Ljava/lang/String;
flags: (0x0010) ACC_FINAL
private android.content.pm.ApplicationInfo mApplicationInfo;
descriptor: Landroid/content/pm/ApplicationInfo;
flags: (0x0002) ACC_PRIVATE
private java.lang.String mAppDir;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String mResDir;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String[] mOverlayDirs;
descriptor: [Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String mDataDir;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String mLibDir;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.io.File mDataDirFile;
descriptor: Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
private java.io.File mDeviceProtectedDataDirFile;
descriptor: Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
private java.io.File mCredentialProtectedDataDirFile;
descriptor: Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
private final java.lang.ClassLoader mBaseClassLoader;
descriptor: Ljava/lang/ClassLoader;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean mSecurityViolation;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean mIncludeCode;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean mRegisterPackage;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final android.view.DisplayAdjustments mDisplayAdjustments;
descriptor: Landroid/view/DisplayAdjustments;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
android.content.res.Resources mResources;
descriptor: Landroid/content/res/Resources;
flags: (0x0000)
private java.lang.ClassLoader mClassLoader;
descriptor: Ljava/lang/ClassLoader;
flags: (0x0002) ACC_PRIVATE
private android.app.Application mApplication;
descriptor: Landroid/app/Application;
flags: (0x0002) ACC_PRIVATE
private java.lang.String[] mSplitNames;
descriptor: [Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String[] mSplitAppDirs;
descriptor: [Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String[] mSplitResDirs;
descriptor: [Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String[] mSplitClassLoaderNames;
descriptor: [Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private final android.util.ArrayMap<android.content.Context, android.util.ArrayMap<android.content.BroadcastReceiver, android.app.LoadedApk$ReceiverDispatcher>> mReceivers;
descriptor: Landroid/util/ArrayMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Landroid/util/ArrayMap<Landroid/content/Context;Landroid/util/ArrayMap<Landroid/content/BroadcastReceiver;Landroid/app/LoadedApk$ReceiverDispatcher;>;>;
private final android.util.ArrayMap<android.content.Context, android.util.ArrayMap<android.content.BroadcastReceiver, android.app.LoadedApk$ReceiverDispatcher>> mUnregisteredReceivers;
descriptor: Landroid/util/ArrayMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Landroid/util/ArrayMap<Landroid/content/Context;Landroid/util/ArrayMap<Landroid/content/BroadcastReceiver;Landroid/app/LoadedApk$ReceiverDispatcher;>;>;
private final android.util.ArrayMap<android.content.Context, android.util.ArrayMap<android.content.ServiceConnection, android.app.LoadedApk$ServiceDispatcher>> mServices;
descriptor: Landroid/util/ArrayMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Landroid/util/ArrayMap<Landroid/content/Context;Landroid/util/ArrayMap<Landroid/content/ServiceConnection;Landroid/app/LoadedApk$ServiceDispatcher;>;>;
private final android.util.ArrayMap<android.content.Context, android.util.ArrayMap<android.content.ServiceConnection, android.app.LoadedApk$ServiceDispatcher>> mUnboundServices;
descriptor: Landroid/util/ArrayMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Landroid/util/ArrayMap<Landroid/content/Context;Landroid/util/ArrayMap<Landroid/content/ServiceConnection;Landroid/app/LoadedApk$ServiceDispatcher;>;>;
private android.app.AppComponentFactory mAppComponentFactory;
descriptor: Landroid/app/AppComponentFactory;
flags: (0x0002) ACC_PRIVATE
private android.app.LoadedApk$SplitDependencyLoaderImpl mSplitLoader;
descriptor: Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
flags: (0x0002) ACC_PRIVATE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Landroid/app/LoadedApk;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic android.app.LoadedApk.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
android.app.Application getApplication();
descriptor: ()Landroid/app/Application;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.LoadedApk.mApplication:Landroid/app/Application;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk;
public void <init>(android.app.ActivityThread, android.content.pm.ApplicationInfo, android.content.res.CompatibilityInfo, java.lang.ClassLoader, boolean, boolean, boolean);
descriptor: (Landroid/app/ActivityThread;Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;ZZZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new android.view.DisplayAdjustments
dup
invokespecial android.view.DisplayAdjustments.<init>:()V
putfield android.app.LoadedApk.mDisplayAdjustments:Landroid/view/DisplayAdjustments;
2: aload 0
3: new android.util.ArrayMap
dup
invokespecial android.util.ArrayMap.<init>:()V
putfield android.app.LoadedApk.mReceivers:Landroid/util/ArrayMap;
4: aload 0
5: new android.util.ArrayMap
dup
invokespecial android.util.ArrayMap.<init>:()V
putfield android.app.LoadedApk.mUnregisteredReceivers:Landroid/util/ArrayMap;
6: aload 0
7: new android.util.ArrayMap
dup
invokespecial android.util.ArrayMap.<init>:()V
putfield android.app.LoadedApk.mServices:Landroid/util/ArrayMap;
8: aload 0
9: new android.util.ArrayMap
dup
invokespecial android.util.ArrayMap.<init>:()V
putfield android.app.LoadedApk.mUnboundServices:Landroid/util/ArrayMap;
10: aload 0
aload 1
putfield android.app.LoadedApk.mActivityThread:Landroid/app/ActivityThread;
11: aload 0
aload 2
invokevirtual android.app.LoadedApk.setApplicationInfo:(Landroid/content/pm/ApplicationInfo;)V
12: aload 0
aload 2
getfield android.content.pm.ApplicationInfo.packageName:Ljava/lang/String;
putfield android.app.LoadedApk.mPackageName:Ljava/lang/String;
13: aload 0
aload 4
putfield android.app.LoadedApk.mBaseClassLoader:Ljava/lang/ClassLoader;
14: aload 0
iload 5
putfield android.app.LoadedApk.mSecurityViolation:Z
15: aload 0
iload 6
putfield android.app.LoadedApk.mIncludeCode:Z
16: aload 0
iload 7
putfield android.app.LoadedApk.mRegisterPackage:Z
17: aload 0
getfield android.app.LoadedApk.mDisplayAdjustments:Landroid/view/DisplayAdjustments;
aload 3
invokevirtual android.view.DisplayAdjustments.setCompatibilityInfo:(Landroid/content/res/CompatibilityInfo;)V
18: aload 0
aload 0
aload 0
getfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
aload 0
getfield android.app.LoadedApk.mBaseClassLoader:Ljava/lang/ClassLoader;
invokevirtual android.app.LoadedApk.createAppFactory:(Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)Landroid/app/AppComponentFactory;
putfield android.app.LoadedApk.mAppComponentFactory:Landroid/app/AppComponentFactory;
19: return
end local 7 end local 6 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 20 0 this Landroid/app/LoadedApk;
0 20 1 activityThread Landroid/app/ActivityThread;
0 20 2 aInfo Landroid/content/pm/ApplicationInfo;
0 20 3 compatInfo Landroid/content/res/CompatibilityInfo;
0 20 4 baseLoader Ljava/lang/ClassLoader;
0 20 5 securityViolation Z
0 20 6 includeCode Z
0 20 7 registerPackage Z
MethodParameters:
Name Flags
activityThread
aInfo
compatInfo
baseLoader
securityViolation
includeCode
registerPackage
private static android.content.pm.ApplicationInfo adjustNativeLibraryPaths(android.content.pm.ApplicationInfo);
descriptor: (Landroid/content/pm/ApplicationInfo;)Landroid/content/pm/ApplicationInfo;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
0: new java.lang.Error
dup
ldc "Unresolved compilation problems: \n\tVMRuntime cannot be resolved\n\tVMRuntime cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
MethodParameters:
Name Flags
info
void <init>(android.app.ActivityThread);
descriptor: (Landroid/app/ActivityThread;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new android.view.DisplayAdjustments
dup
invokespecial android.view.DisplayAdjustments.<init>:()V
putfield android.app.LoadedApk.mDisplayAdjustments:Landroid/view/DisplayAdjustments;
2: aload 0
3: new android.util.ArrayMap
dup
invokespecial android.util.ArrayMap.<init>:()V
putfield android.app.LoadedApk.mReceivers:Landroid/util/ArrayMap;
4: aload 0
5: new android.util.ArrayMap
dup
invokespecial android.util.ArrayMap.<init>:()V
putfield android.app.LoadedApk.mUnregisteredReceivers:Landroid/util/ArrayMap;
6: aload 0
7: new android.util.ArrayMap
dup
invokespecial android.util.ArrayMap.<init>:()V
putfield android.app.LoadedApk.mServices:Landroid/util/ArrayMap;
8: aload 0
9: new android.util.ArrayMap
dup
invokespecial android.util.ArrayMap.<init>:()V
putfield android.app.LoadedApk.mUnboundServices:Landroid/util/ArrayMap;
10: aload 0
aload 1
putfield android.app.LoadedApk.mActivityThread:Landroid/app/ActivityThread;
11: aload 0
new android.content.pm.ApplicationInfo
dup
invokespecial android.content.pm.ApplicationInfo.<init>:()V
putfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
12: aload 0
getfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
ldc "android"
putfield android.content.pm.ApplicationInfo.packageName:Ljava/lang/String;
13: aload 0
ldc "android"
putfield android.app.LoadedApk.mPackageName:Ljava/lang/String;
14: aload 0
aconst_null
putfield android.app.LoadedApk.mAppDir:Ljava/lang/String;
15: aload 0
aconst_null
putfield android.app.LoadedApk.mResDir:Ljava/lang/String;
16: aload 0
aconst_null
putfield android.app.LoadedApk.mSplitAppDirs:[Ljava/lang/String;
17: aload 0
aconst_null
putfield android.app.LoadedApk.mSplitResDirs:[Ljava/lang/String;
18: aload 0
aconst_null
putfield android.app.LoadedApk.mSplitClassLoaderNames:[Ljava/lang/String;
19: aload 0
aconst_null
putfield android.app.LoadedApk.mOverlayDirs:[Ljava/lang/String;
20: aload 0
aconst_null
putfield android.app.LoadedApk.mDataDir:Ljava/lang/String;
21: aload 0
aconst_null
putfield android.app.LoadedApk.mDataDirFile:Ljava/io/File;
22: aload 0
aconst_null
putfield android.app.LoadedApk.mDeviceProtectedDataDirFile:Ljava/io/File;
23: aload 0
aconst_null
putfield android.app.LoadedApk.mCredentialProtectedDataDirFile:Ljava/io/File;
24: aload 0
aconst_null
putfield android.app.LoadedApk.mLibDir:Ljava/lang/String;
25: aload 0
aconst_null
putfield android.app.LoadedApk.mBaseClassLoader:Ljava/lang/ClassLoader;
26: aload 0
iconst_0
putfield android.app.LoadedApk.mSecurityViolation:Z
27: aload 0
iconst_1
putfield android.app.LoadedApk.mIncludeCode:Z
28: aload 0
iconst_0
putfield android.app.LoadedApk.mRegisterPackage:Z
29: aload 0
invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
putfield android.app.LoadedApk.mClassLoader:Ljava/lang/ClassLoader;
30: aload 0
invokestatic android.content.res.Resources.getSystem:()Landroid/content/res/Resources;
putfield android.app.LoadedApk.mResources:Landroid/content/res/Resources;
31: aload 0
aload 0
aload 0
getfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
aload 0
getfield android.app.LoadedApk.mClassLoader:Ljava/lang/ClassLoader;
invokevirtual android.app.LoadedApk.createAppFactory:(Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)Landroid/app/AppComponentFactory;
putfield android.app.LoadedApk.mAppComponentFactory:Landroid/app/AppComponentFactory;
32: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Landroid/app/LoadedApk;
0 33 1 activityThread Landroid/app/ActivityThread;
MethodParameters:
Name Flags
activityThread
void installSystemApplicationInfo(android.content.pm.ApplicationInfo, java.lang.ClassLoader);
descriptor: (Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic android.app.LoadedApk.$assertionsDisabled:Z
ifne 1
aload 1
getfield android.content.pm.ApplicationInfo.packageName:Ljava/lang/String;
ldc "android"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
2: aload 0
aload 2
putfield android.app.LoadedApk.mClassLoader:Ljava/lang/ClassLoader;
3: aload 0
aload 0
aload 1
aload 2
invokevirtual android.app.LoadedApk.createAppFactory:(Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)Landroid/app/AppComponentFactory;
putfield android.app.LoadedApk.mAppComponentFactory:Landroid/app/AppComponentFactory;
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/app/LoadedApk;
0 5 1 info Landroid/content/pm/ApplicationInfo;
0 5 2 classLoader Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
info
classLoader
private android.app.AppComponentFactory createAppFactory(android.content.pm.ApplicationInfo, java.lang.ClassLoader);
descriptor: (Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)Landroid/app/AppComponentFactory;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield android.content.pm.ApplicationInfo.appComponentFactory:Ljava/lang/String;
ifnull 6
aload 2
ifnull 6
1: aload 2
aload 1
getfield android.content.pm.ApplicationInfo.appComponentFactory:Ljava/lang/String;
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
2: invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
checkcast android.app.AppComponentFactory
3: areturn
4: StackMap locals:
StackMap stack: java.lang.ReflectiveOperationException
astore 3
start local 3 5: ldc "LoadedApk"
ldc "Unable to instantiate appComponentFactory"
aload 3
invokestatic android.util.Slog.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 3 6: StackMap locals:
StackMap stack:
getstatic android.app.AppComponentFactory.DEFAULT:Landroid/app/AppComponentFactory;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/app/LoadedApk;
0 7 1 appInfo Landroid/content/pm/ApplicationInfo;
0 7 2 cl Ljava/lang/ClassLoader;
5 6 3 e Ljava/lang/ReflectiveOperationException;
Exception table:
from to target type
1 3 4 Class java.lang.InstantiationException
1 3 4 Class java.lang.IllegalAccessException
1 3 4 Class java.lang.ClassNotFoundException
MethodParameters:
Name Flags
appInfo
cl
public android.app.AppComponentFactory getAppFactory();
descriptor: ()Landroid/app/AppComponentFactory;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.LoadedApk.mAppComponentFactory:Landroid/app/AppComponentFactory;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk;
public java.lang.String getPackageName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.LoadedApk.mPackageName:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk;
public android.content.pm.ApplicationInfo getApplicationInfo();
descriptor: ()Landroid/content/pm/ApplicationInfo;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk;
public int getTargetSdkVersion();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
getfield android.content.pm.ApplicationInfo.targetSdkVersion:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk;
public boolean isSecurityViolation();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.LoadedApk.mSecurityViolation:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk;
public android.content.res.CompatibilityInfo getCompatibilityInfo();
descriptor: ()Landroid/content/res/CompatibilityInfo;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.LoadedApk.mDisplayAdjustments:Landroid/view/DisplayAdjustments;
invokevirtual android.view.DisplayAdjustments.getCompatibilityInfo:()Landroid/content/res/CompatibilityInfo;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk;
public void setCompatibilityInfo(android.content.res.CompatibilityInfo);
descriptor: (Landroid/content/res/CompatibilityInfo;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.app.LoadedApk.mDisplayAdjustments:Landroid/view/DisplayAdjustments;
aload 1
invokevirtual android.view.DisplayAdjustments.setCompatibilityInfo:(Landroid/content/res/CompatibilityInfo;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/app/LoadedApk;
0 2 1 compatInfo Landroid/content/res/CompatibilityInfo;
MethodParameters:
Name Flags
compatInfo
private static java.lang.String[] getLibrariesFor(java.lang.String);
descriptor: (Ljava/lang/String;)[Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: invokestatic android.app.ActivityThread.getPackageManager:()Landroid/content/pm/IPackageManager;
aload 0
2: sipush 1024
invokestatic android.os.UserHandle.myUserId:()I
3: invokeinterface android.content.pm.IPackageManager.getApplicationInfo:(Ljava/lang/String;II)Landroid/content/pm/ApplicationInfo;
astore 1
4: goto 7
StackMap locals: java.lang.String android.content.pm.ApplicationInfo
StackMap stack: android.os.RemoteException
5: astore 2
start local 2 6: aload 2
invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
athrow
end local 2 7: StackMap locals:
StackMap stack:
aload 1
ifnonnull 9
8: aconst_null
areturn
9: StackMap locals:
StackMap stack:
aload 1
getfield android.content.pm.ApplicationInfo.sharedLibraryFiles:[Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 packageName Ljava/lang/String;
1 10 1 ai Landroid/content/pm/ApplicationInfo;
6 7 2 e Landroid/os/RemoteException;
Exception table:
from to target type
1 4 5 Class android.os.RemoteException
MethodParameters:
Name Flags
packageName
public void updateApplicationInfo(android.content.pm.ApplicationInfo, java.util.List<java.lang.String>);
descriptor: (Landroid/content/pm/ApplicationInfo;Ljava/util/List;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual android.app.LoadedApk.setApplicationInfo:(Landroid/content/pm/ApplicationInfo;)V
1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 2: aload 0
getfield android.app.LoadedApk.mActivityThread:Landroid/app/ActivityThread;
aload 1
aload 3
invokestatic android.app.LoadedApk.makePaths:(Landroid/app/ActivityThread;Landroid/content/pm/ApplicationInfo;Ljava/util/List;)V
3: new java.util.ArrayList
dup
aload 3
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 4
start local 4 4: aload 2
ifnull 20
5: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 18
StackMap locals: android.app.LoadedApk android.content.pm.ApplicationInfo java.util.List java.util.List java.util.List top java.util.Iterator
StackMap stack:
6: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 7: aload 5
aload 5
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 7
start local 7 8: iconst_0
istore 8
start local 8 9: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 15
StackMap locals: android.app.LoadedApk android.content.pm.ApplicationInfo java.util.List java.util.List java.util.List java.lang.String java.util.Iterator java.lang.String int top java.util.Iterator
StackMap stack:
10: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 11: aload 9
aload 9
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 11
start local 11 12: aload 7
aload 11
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 15
13: iconst_1
istore 8
14: goto 16
end local 11 end local 9 15: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
16: StackMap locals: android.app.LoadedApk android.content.pm.ApplicationInfo java.util.List java.util.List java.util.List java.lang.String java.util.Iterator java.lang.String int
StackMap stack:
iload 8
ifne 18
17: aload 4
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 end local 7 end local 5 18: StackMap locals: android.app.LoadedApk android.content.pm.ApplicationInfo java.util.List java.util.List java.util.List top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
19: goto 21
20: StackMap locals: android.app.LoadedApk android.content.pm.ApplicationInfo java.util.List java.util.List java.util.List
StackMap stack:
aload 4
aload 3
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
21: StackMap locals:
StackMap stack:
aload 0
dup
astore 5
monitorenter
22: aload 0
aload 4
invokevirtual android.app.LoadedApk.createOrUpdateClassLoaderLocked:(Ljava/util/List;)V
23: aload 0
getfield android.app.LoadedApk.mResources:Landroid/content/res/Resources;
ifnull 33
24: aload 0
aconst_null
invokevirtual android.app.LoadedApk.getSplitPaths:(Ljava/lang/String;)[Ljava/lang/String;
astore 6
start local 6 25: goto 28
end local 6 StackMap locals: android.app.LoadedApk android.content.pm.ApplicationInfo java.util.List java.util.List java.util.List android.app.LoadedApk
StackMap stack: android.content.pm.PackageManager$NameNotFoundException
26: pop
27: new java.lang.AssertionError
dup
ldc "null split not found"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
start local 6 28: StackMap locals: java.lang.String[]
StackMap stack:
aload 0
invokestatic android.app.ResourcesManager.getInstance:()Landroid/app/ResourcesManager;
aconst_null
aload 0
getfield android.app.LoadedApk.mResDir:Ljava/lang/String;
29: aload 6
aload 0
getfield android.app.LoadedApk.mOverlayDirs:[Ljava/lang/String;
aload 0
getfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
getfield android.content.pm.ApplicationInfo.sharedLibraryFiles:[Ljava/lang/String;
30: iconst_0
aconst_null
aload 0
invokevirtual android.app.LoadedApk.getCompatibilityInfo:()Landroid/content/res/CompatibilityInfo;
31: aload 0
invokevirtual android.app.LoadedApk.getClassLoader:()Ljava/lang/ClassLoader;
32: invokevirtual android.app.ResourcesManager.getResources:(Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;)Landroid/content/res/Resources;
putfield android.app.LoadedApk.mResources:Landroid/content/res/Resources;
end local 6 33: StackMap locals:
StackMap stack:
aload 5
monitorexit
34: goto 37
StackMap locals:
StackMap stack: java.lang.Throwable
35: aload 5
monitorexit
36: athrow
37: StackMap locals:
StackMap stack:
aload 0
aload 0
aload 1
aload 0
getfield android.app.LoadedApk.mClassLoader:Ljava/lang/ClassLoader;
invokevirtual android.app.LoadedApk.createAppFactory:(Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)Landroid/app/AppComponentFactory;
putfield android.app.LoadedApk.mAppComponentFactory:Landroid/app/AppComponentFactory;
38: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Landroid/app/LoadedApk;
0 39 1 aInfo Landroid/content/pm/ApplicationInfo;
0 39 2 oldPaths Ljava/util/List<Ljava/lang/String;>;
2 39 3 newPaths Ljava/util/List<Ljava/lang/String;>;
4 39 4 addedPaths Ljava/util/List<Ljava/lang/String;>;
7 18 5 path Ljava/lang/String;
8 18 7 apkName Ljava/lang/String;
9 18 8 match Z
11 15 9 oldPath Ljava/lang/String;
12 15 11 oldApkName Ljava/lang/String;
25 26 6 splitPaths [Ljava/lang/String;
28 33 6 splitPaths [Ljava/lang/String;
Exception table:
from to target type
24 25 26 Class android.content.pm.PackageManager$NameNotFoundException
22 34 35 any
35 36 35 any
Signature: (Landroid/content/pm/ApplicationInfo;Ljava/util/List<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
aInfo
oldPaths
private void setApplicationInfo(android.content.pm.ApplicationInfo);
descriptor: (Landroid/content/pm/ApplicationInfo;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: invokestatic android.os.Process.myUid:()I
istore 2
start local 2 1: aload 1
invokestatic android.app.LoadedApk.adjustNativeLibraryPaths:(Landroid/content/pm/ApplicationInfo;)Landroid/content/pm/ApplicationInfo;
astore 1
2: aload 0
aload 1
putfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
3: aload 0
aload 1
getfield android.content.pm.ApplicationInfo.sourceDir:Ljava/lang/String;
putfield android.app.LoadedApk.mAppDir:Ljava/lang/String;
4: aload 0
aload 1
getfield android.content.pm.ApplicationInfo.uid:I
iload 2
if_icmpne 5
aload 1
getfield android.content.pm.ApplicationInfo.sourceDir:Ljava/lang/String;
goto 6
StackMap locals: android.app.LoadedApk android.content.pm.ApplicationInfo int
StackMap stack: android.app.LoadedApk
5: aload 1
getfield android.content.pm.ApplicationInfo.publicSourceDir:Ljava/lang/String;
StackMap locals: android.app.LoadedApk android.content.pm.ApplicationInfo int
StackMap stack: android.app.LoadedApk java.lang.String
6: putfield android.app.LoadedApk.mResDir:Ljava/lang/String;
7: aload 0
aload 1
getfield android.content.pm.ApplicationInfo.resourceDirs:[Ljava/lang/String;
putfield android.app.LoadedApk.mOverlayDirs:[Ljava/lang/String;
8: aload 0
aload 1
getfield android.content.pm.ApplicationInfo.dataDir:Ljava/lang/String;
putfield android.app.LoadedApk.mDataDir:Ljava/lang/String;
9: aload 0
aload 1
getfield android.content.pm.ApplicationInfo.nativeLibraryDir:Ljava/lang/String;
putfield android.app.LoadedApk.mLibDir:Ljava/lang/String;
10: aload 0
aload 1
getfield android.content.pm.ApplicationInfo.dataDir:Ljava/lang/String;
invokestatic android.os.FileUtils.newFileOrNull:(Ljava/lang/String;)Ljava/io/File;
putfield android.app.LoadedApk.mDataDirFile:Ljava/io/File;
11: aload 0
aload 1
getfield android.content.pm.ApplicationInfo.deviceProtectedDataDir:Ljava/lang/String;
invokestatic android.os.FileUtils.newFileOrNull:(Ljava/lang/String;)Ljava/io/File;
putfield android.app.LoadedApk.mDeviceProtectedDataDirFile:Ljava/io/File;
12: aload 0
aload 1
getfield android.content.pm.ApplicationInfo.credentialProtectedDataDir:Ljava/lang/String;
invokestatic android.os.FileUtils.newFileOrNull:(Ljava/lang/String;)Ljava/io/File;
putfield android.app.LoadedApk.mCredentialProtectedDataDirFile:Ljava/io/File;
13: aload 0
aload 1
getfield android.content.pm.ApplicationInfo.splitNames:[Ljava/lang/String;
putfield android.app.LoadedApk.mSplitNames:[Ljava/lang/String;
14: aload 0
aload 1
getfield android.content.pm.ApplicationInfo.splitSourceDirs:[Ljava/lang/String;
putfield android.app.LoadedApk.mSplitAppDirs:[Ljava/lang/String;
15: aload 0
aload 1
getfield android.content.pm.ApplicationInfo.uid:I
iload 2
if_icmpne 16
aload 1
getfield android.content.pm.ApplicationInfo.splitSourceDirs:[Ljava/lang/String;
goto 17
StackMap locals:
StackMap stack: android.app.LoadedApk
16: aload 1
getfield android.content.pm.ApplicationInfo.splitPublicSourceDirs:[Ljava/lang/String;
StackMap locals: android.app.LoadedApk android.content.pm.ApplicationInfo int
StackMap stack: android.app.LoadedApk java.lang.String[]
17: putfield android.app.LoadedApk.mSplitResDirs:[Ljava/lang/String;
18: aload 0
aload 1
getfield android.content.pm.ApplicationInfo.splitClassLoaderNames:[Ljava/lang/String;
putfield android.app.LoadedApk.mSplitClassLoaderNames:[Ljava/lang/String;
19: aload 1
invokevirtual android.content.pm.ApplicationInfo.requestsIsolatedSplitLoading:()Z
ifeq 21
aload 0
getfield android.app.LoadedApk.mSplitNames:[Ljava/lang/String;
invokestatic com.android.internal.util.ArrayUtils.isEmpty:([Ljava/lang/Object;)Z
ifne 21
20: aload 0
new android.app.LoadedApk$SplitDependencyLoaderImpl
dup
aload 0
aload 1
getfield android.content.pm.ApplicationInfo.splitDependencies:Landroid/util/SparseArray;
invokespecial android.app.LoadedApk$SplitDependencyLoaderImpl.<init>:(Landroid/app/LoadedApk;Landroid/util/SparseArray;)V
putfield android.app.LoadedApk.mSplitLoader:Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
21: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Landroid/app/LoadedApk;
0 22 1 aInfo Landroid/content/pm/ApplicationInfo;
1 22 2 myUid I
MethodParameters:
Name Flags
aInfo
public static void makePaths(android.app.ActivityThread, android.content.pm.ApplicationInfo, java.util.List<java.lang.String>);
descriptor: (Landroid/app/ActivityThread;Landroid/content/pm/ApplicationInfo;Ljava/util/List;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_0
aload 1
aload 2
aconst_null
invokestatic android.app.LoadedApk.makePaths:(Landroid/app/ActivityThread;ZLandroid/content/pm/ApplicationInfo;Ljava/util/List;Ljava/util/List;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 activityThread Landroid/app/ActivityThread;
0 2 1 aInfo Landroid/content/pm/ApplicationInfo;
0 2 2 outZipPaths Ljava/util/List<Ljava/lang/String;>;
Signature: (Landroid/app/ActivityThread;Landroid/content/pm/ApplicationInfo;Ljava/util/List<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
activityThread
aInfo
outZipPaths
public static void makePaths(android.app.ActivityThread, boolean, android.content.pm.ApplicationInfo, java.util.List<java.lang.String>, java.util.List<java.lang.String>);
descriptor: (Landroid/app/ActivityThread;ZLandroid/content/pm/ApplicationInfo;Ljava/util/List;Ljava/util/List;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=5
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tVMRuntime cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
Signature: (Landroid/app/ActivityThread;ZLandroid/content/pm/ApplicationInfo;Ljava/util/List<Ljava/lang/String;>;Ljava/util/List<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
activityThread
isBundledApp
aInfo
outZipPaths
outLibPaths
private static void appendApkLibPathIfNeeded(java.lang.String, android.content.pm.ApplicationInfo, java.util.List<java.lang.String>);
descriptor: (Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/util/List;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnull 3
aload 1
getfield android.content.pm.ApplicationInfo.primaryCpuAbi:Ljava/lang/String;
ifnull 3
aload 0
ldc ".apk"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 3
1: aload 1
getfield android.content.pm.ApplicationInfo.targetSdkVersion:I
bipush 26
if_icmplt 3
2: aload 2
new java.lang.StringBuilder
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "!/lib/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
getfield android.content.pm.ApplicationInfo.primaryCpuAbi:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 path Ljava/lang/String;
0 4 1 applicationInfo Landroid/content/pm/ApplicationInfo;
0 4 2 outLibPaths Ljava/util/List<Ljava/lang/String;>;
Signature: (Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/util/List<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
path
applicationInfo
outLibPaths
java.lang.ClassLoader getSplitClassLoader(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/ClassLoader;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.app.LoadedApk.mSplitLoader:Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
ifnonnull 2
1: aload 0
getfield android.app.LoadedApk.mClassLoader:Ljava/lang/ClassLoader;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield android.app.LoadedApk.mSplitLoader:Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
aload 1
invokevirtual android.app.LoadedApk$SplitDependencyLoaderImpl.getClassLoaderForSplit:(Ljava/lang/String;)Ljava/lang/ClassLoader;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/app/LoadedApk;
0 3 1 splitName Ljava/lang/String;
Exceptions:
throws android.content.pm.PackageManager$NameNotFoundException
MethodParameters:
Name Flags
splitName
java.lang.String[] getSplitPaths(java.lang.String);
descriptor: (Ljava/lang/String;)[Ljava/lang/String;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.app.LoadedApk.mSplitLoader:Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
ifnonnull 2
1: aload 0
getfield android.app.LoadedApk.mSplitResDirs:[Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield android.app.LoadedApk.mSplitLoader:Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
aload 1
invokevirtual android.app.LoadedApk$SplitDependencyLoaderImpl.getSplitPathsForSplit:(Ljava/lang/String;)[Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/app/LoadedApk;
0 3 1 splitName Ljava/lang/String;
Exceptions:
throws android.content.pm.PackageManager$NameNotFoundException
MethodParameters:
Name Flags
splitName
private void createOrUpdateClassLoaderLocked(java.util.List<java.lang.String>);
descriptor: (Ljava/util/List;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tVMRuntime cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk;
Signature: (Ljava/util/List<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
addedPaths
public java.lang.ClassLoader getClassLoader();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
dup
astore 1
monitorenter
1: aload 0
getfield android.app.LoadedApk.mClassLoader:Ljava/lang/ClassLoader;
ifnonnull 3
2: aload 0
aconst_null
invokevirtual android.app.LoadedApk.createOrUpdateClassLoaderLocked:(Ljava/util/List;)V
3: StackMap locals: android.app.LoadedApk
StackMap stack:
aload 0
getfield android.app.LoadedApk.mClassLoader:Ljava/lang/ClassLoader;
aload 1
monitorexit
4: areturn
5: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
6: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/app/LoadedApk;
Exception table:
from to target type
1 4 5 any
5 6 5 any
private void setupJitProfileSupport();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tVMRuntime cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk;
private void initializeJavaContextClassLoader();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=1
start local 0 0: invokestatic android.app.ActivityThread.getPackageManager:()Landroid/content/pm/IPackageManager;
astore 1
start local 1 1: aload 1
aload 0
getfield android.app.LoadedApk.mPackageName:Ljava/lang/String;
ldc 268435456
2: invokestatic android.os.UserHandle.myUserId:()I
3: invokeinterface android.content.pm.IPackageManager.getPackageInfo:(Ljava/lang/String;II)Landroid/content/pm/PackageInfo;
astore 2
start local 2 4: goto 7
end local 2 StackMap locals: android.app.LoadedApk android.content.pm.IPackageManager
StackMap stack: android.os.RemoteException
5: astore 3
start local 3 6: aload 3
invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
athrow
end local 3 start local 2 7: StackMap locals: android.content.pm.PackageInfo
StackMap stack:
aload 2
ifnonnull 11
8: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Unable to get package info for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
9: aload 0
getfield android.app.LoadedApk.mPackageName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "; is package not installed?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 2
getfield android.content.pm.PackageInfo.sharedUserId:Ljava/lang/String;
ifnull 12
iconst_1
goto 13
StackMap locals:
StackMap stack:
12: iconst_0
StackMap locals:
StackMap stack: int
13: istore 3
start local 3 14: aload 2
getfield android.content.pm.PackageInfo.applicationInfo:Landroid/content/pm/ApplicationInfo;
ifnull 17
15: aload 0
getfield android.app.LoadedApk.mPackageName:Ljava/lang/String;
aload 2
getfield android.content.pm.PackageInfo.applicationInfo:Landroid/content/pm/ApplicationInfo;
getfield android.content.pm.ApplicationInfo.processName:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 17
16: iconst_1
goto 18
StackMap locals: int
StackMap stack:
17: iconst_0
StackMap locals:
StackMap stack: int
18: istore 4
start local 4 19: iload 3
ifne 20
iload 4
ifne 20
iconst_0
goto 21
StackMap locals: int
StackMap stack:
20: iconst_1
StackMap locals:
StackMap stack: int
21: istore 5
start local 5 22: iload 5
ifeq 24
23: new android.app.LoadedApk$WarningContextClassLoader
dup
invokespecial android.app.LoadedApk$WarningContextClassLoader.<init>:()V
goto 25
24: StackMap locals: int
StackMap stack:
aload 0
getfield android.app.LoadedApk.mClassLoader:Ljava/lang/ClassLoader;
25: StackMap locals:
StackMap stack: java.lang.ClassLoader
astore 6
start local 6 26: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 6
invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
27: return
end local 6 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 28 0 this Landroid/app/LoadedApk;
1 28 1 pm Landroid/content/pm/IPackageManager;
4 5 2 pi Landroid/content/pm/PackageInfo;
7 28 2 pi Landroid/content/pm/PackageInfo;
6 7 3 e Landroid/os/RemoteException;
14 28 3 sharedUserIdSet Z
19 28 4 processNameNotDefault Z
22 28 5 sharable Z
26 28 6 contextClassLoader Ljava/lang/ClassLoader;
Exception table:
from to target type
1 4 5 Class android.os.RemoteException
public java.lang.String getAppDir();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.LoadedApk.mAppDir:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk;
public java.lang.String getLibDir();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.LoadedApk.mLibDir:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk;
public java.lang.String getResDir();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.LoadedApk.mResDir:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk;
public java.lang.String[] getSplitAppDirs();
descriptor: ()[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.LoadedApk.mSplitAppDirs:[Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk;
public java.lang.String[] getSplitResDirs();
descriptor: ()[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.LoadedApk.mSplitResDirs:[Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk;
public java.lang.String[] getOverlayDirs();
descriptor: ()[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.LoadedApk.mOverlayDirs:[Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk;
public java.lang.String getDataDir();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.LoadedApk.mDataDir:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk;
public java.io.File getDataDirFile();
descriptor: ()Ljava/io/File;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.LoadedApk.mDataDirFile:Ljava/io/File;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk;
public java.io.File getDeviceProtectedDataDirFile();
descriptor: ()Ljava/io/File;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.LoadedApk.mDeviceProtectedDataDirFile:Ljava/io/File;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk;
public java.io.File getCredentialProtectedDataDirFile();
descriptor: ()Ljava/io/File;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.LoadedApk.mCredentialProtectedDataDirFile:Ljava/io/File;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk;
public android.content.res.AssetManager getAssets();
descriptor: ()Landroid/content/res/AssetManager;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual android.app.LoadedApk.getResources:()Landroid/content/res/Resources;
invokevirtual android.content.res.Resources.getAssets:()Landroid/content/res/AssetManager;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/LoadedApk;
public android.content.res.Resources getResources();
descriptor: ()Landroid/content/res/Resources;
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=2, args_size=1
start local 0 0: aload 0
getfield android.app.LoadedApk.mResources:Landroid/content/res/Resources;
ifnonnull 10
1: aload 0
aconst_null
invokevirtual android.app.LoadedApk.getSplitPaths:(Ljava/lang/String;)[Ljava/lang/String;
astore 1
start local 1 2: goto 5
end local 1 StackMap locals:
StackMap stack: android.content.pm.PackageManager$NameNotFoundException
3: pop
4: new java.lang.AssertionError
dup
ldc "null split not found"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
start local 1 5: StackMap locals: java.lang.String[]
StackMap stack:
aload 0
invokestatic android.app.ResourcesManager.getInstance:()Landroid/app/ResourcesManager;
aconst_null
aload 0
getfield android.app.LoadedApk.mResDir:Ljava/lang/String;
6: aload 1
aload 0
getfield android.app.LoadedApk.mOverlayDirs:[Ljava/lang/String;
aload 0
getfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
getfield android.content.pm.ApplicationInfo.sharedLibraryFiles:[Ljava/lang/String;
7: iconst_0
aconst_null
aload 0
invokevirtual android.app.LoadedApk.getCompatibilityInfo:()Landroid/content/res/CompatibilityInfo;
8: aload 0
invokevirtual android.app.LoadedApk.getClassLoader:()Ljava/lang/ClassLoader;
9: invokevirtual android.app.ResourcesManager.getResources:(Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;)Landroid/content/res/Resources;
putfield android.app.LoadedApk.mResources:Landroid/content/res/Resources;
end local 1 10: StackMap locals:
StackMap stack:
aload 0
getfield android.app.LoadedApk.mResources:Landroid/content/res/Resources;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/app/LoadedApk;
2 3 1 splitPaths [Ljava/lang/String;
5 10 1 splitPaths [Ljava/lang/String;
Exception table:
from to target type
1 2 3 Class android.content.pm.PackageManager$NameNotFoundException
public android.app.Application makeApplication(boolean, android.app.Instrumentation);
descriptor: (ZLandroid/app/Instrumentation;)Landroid/app/Application;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.app.LoadedApk.mApplication:Landroid/app/Application;
ifnull 2
1: aload 0
getfield android.app.LoadedApk.mApplication:Landroid/app/Application;
areturn
2: StackMap locals:
StackMap stack:
ldc 64
ldc "makeApplication"
invokestatic android.os.Trace.traceBegin:(JLjava/lang/String;)V
3: aconst_null
astore 3
start local 3 4: aload 0
getfield android.app.LoadedApk.mApplicationInfo:Landroid/content/pm/ApplicationInfo;
getfield android.content.pm.ApplicationInfo.className:Ljava/lang/String;
astore 4
start local 4 5: iload 1
ifne 6
aload 4
ifnonnull 7
6: StackMap locals: android.app.Application java.lang.String
StackMap stack:
ldc "android.app.Application"
astore 4
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual android.app.LoadedApk.getClassLoader:()Ljava/lang/ClassLoader;
astore 5
start local 5 8: aload 0
getfield android.app.LoadedApk.mPackageName:Ljava/lang/String;
ldc "android"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 14
9: ldc 64
10: ldc "initializeJavaContextClassLoader"
11: invokestatic android.os.Trace.traceBegin:(JLjava/lang/String;)V
12: aload 0
invokevirtual android.app.LoadedApk.initializeJavaContextClassLoader:()V
13: ldc 64
invokestatic android.os.Trace.traceEnd:(J)V
14: StackMap locals: java.lang.ClassLoader
StackMap stack:
aload 0
getfield android.app.LoadedApk.mActivityThread:Landroid/app/ActivityThread;
aload 0
invokestatic android.app.ContextImpl.createAppContext:(Landroid/app/ActivityThread;Landroid/app/LoadedApk;)Landroid/app/ContextImpl;
astore 6
start local 6 15: aload 0
getfield android.app.LoadedApk.mActivityThread:Landroid/app/ActivityThread;
getfield android.app.ActivityThread.mInstrumentation:Landroid/app/Instrumentation;
16: aload 5
aload 4
aload 6
17: invokevirtual android.app.Instrumentation.newApplication:(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Context;)Landroid/app/Application;
astore 3
18: aload 6
aload 3
invokevirtual android.app.ContextImpl.setOuterContext:(Landroid/content/Context;)V
end local 6 end local 5 19: goto 29
StackMap locals: android.app.LoadedApk int android.app.Instrumentation android.app.Application java.lang.String
StackMap stack: java.lang.Exception
20: astore 5
start local 5 21: aload 0
getfield android.app.LoadedApk.mActivityThread:Landroid/app/ActivityThread;
getfield android.app.ActivityThread.mInstrumentation:Landroid/app/Instrumentation;
aload 3
aload 5
invokevirtual android.app.Instrumentation.onException:(Ljava/lang/Object;Ljava/lang/Throwable;)Z
ifne 29
22: ldc 64
invokestatic android.os.Trace.traceEnd:(J)V
23: new java.lang.RuntimeException
dup
24: new java.lang.StringBuilder
dup
ldc "Unable to instantiate application "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
25: ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
26: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
27: aload 5
28: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 29: StackMap locals:
StackMap stack:
aload 0
getfield android.app.LoadedApk.mActivityThread:Landroid/app/ActivityThread;
getfield android.app.ActivityThread.mAllApplications:Ljava/util/ArrayList;
aload 3
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
30: aload 0
aload 3
putfield android.app.LoadedApk.mApplication:Landroid/app/Application;
31: aload 2
ifnull 43
32: aload 2
aload 3
invokevirtual android.app.Instrumentation.callApplicationOnCreate:(Landroid/app/Application;)V
33: goto 43
StackMap locals:
StackMap stack: java.lang.Exception
34: astore 5
start local 5 35: aload 2
aload 3
aload 5
invokevirtual android.app.Instrumentation.onException:(Ljava/lang/Object;Ljava/lang/Throwable;)Z
ifne 43
36: ldc 64
invokestatic android.os.Trace.traceEnd:(J)V
37: new java.lang.RuntimeException
dup
38: new java.lang.StringBuilder
dup
ldc "Unable to create application "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
39: ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
40: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
41: aload 5
42: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 43: StackMap locals:
StackMap stack:
aload 0
invokevirtual android.app.LoadedApk.getAssets:()Landroid/content/res/AssetManager;
invokevirtual android.content.res.AssetManager.getAssignedPackageIdentifiers:()Landroid/util/SparseArray;
astore 5
start local 5 44: aload 5
invokevirtual android.util.SparseArray.size:()I
istore 6
start local 6 45: iconst_0
istore 7
start local 7 46: goto 52
47: StackMap locals: android.util.SparseArray int int
StackMap stack:
aload 5
iload 7
invokevirtual android.util.SparseArray.keyAt:(I)I
istore 8
start local 8 48: iload 8
iconst_1
if_icmpeq 51
iload 8
bipush 127
if_icmpne 50
49: goto 51
50: StackMap locals: int
StackMap stack:
aload 0
aload 0
invokevirtual android.app.LoadedApk.getClassLoader:()Ljava/lang/ClassLoader;
aload 5
iload 7
invokevirtual android.util.SparseArray.valueAt:(I)Ljava/lang/Object;
checkcast java.lang.String
iload 8
invokevirtual android.app.LoadedApk.rewriteRValues:(Ljava/lang/ClassLoader;Ljava/lang/String;I)V
end local 8 51: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
52: iload 7
iload 6
if_icmplt 47
end local 7 53: ldc 64
invokestatic android.os.Trace.traceEnd:(J)V
54: aload 3
areturn
end local 6 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 55 0 this Landroid/app/LoadedApk;
0 55 1 forceDefaultAppClass Z
0 55 2 instrumentation Landroid/app/Instrumentation;
4 55 3 app Landroid/app/Application;
5 55 4 appClass Ljava/lang/String;
8 19 5 cl Ljava/lang/ClassLoader;
15 19 6 appContext Landroid/app/ContextImpl;
21 29 5 e Ljava/lang/Exception;
35 43 5 e Ljava/lang/Exception;
44 55 5 packageIdentifiers Landroid/util/SparseArray<Ljava/lang/String;>;
45 55 6 N I
46 53 7 i I
48 51 8 id I
Exception table:
from to target type
7 19 20 Class java.lang.Exception
32 33 34 Class java.lang.Exception
MethodParameters:
Name Flags
forceDefaultAppClass
instrumentation
private void rewriteRValues(java.lang.ClassLoader, java.lang.String, int);
descriptor: (Ljava/lang/ClassLoader;Ljava/lang/String;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".R"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 4
start local 4 1: goto 5
end local 4 StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
2: pop
3: ldc "LoadedApk"
new java.lang.StringBuilder
dup
ldc "No resource references to update in package "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
pop
4: return
start local 4 5: StackMap locals: java.lang.Class
StackMap stack:
aload 4
ldc "onResourcesLoaded"
iconst_1
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 5
start local 5 6: goto 9
end local 5 StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
7: pop
8: return
start local 5 9: StackMap locals: java.lang.reflect.Method
StackMap stack:
aload 5
aconst_null
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
10: return
11: StackMap locals:
StackMap stack: java.lang.IllegalAccessException
astore 7
start local 7 12: aload 7
astore 6
end local 7 start local 6 13: goto 16
end local 6 14: StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
astore 7
start local 7 15: aload 7
invokevirtual java.lang.reflect.InvocationTargetException.getCause:()Ljava/lang/Throwable;
astore 6
end local 7 start local 6 16: StackMap locals: java.lang.Throwable
StackMap stack:
new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Failed to rewrite resource references for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
17: aload 6
18: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 6 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 19 0 this Landroid/app/LoadedApk;
0 19 1 cl Ljava/lang/ClassLoader;
0 19 2 packageName Ljava/lang/String;
0 19 3 id I
1 2 4 rClazz Ljava/lang/Class<*>;
5 19 4 rClazz Ljava/lang/Class<*>;
6 7 5 callback Ljava/lang/reflect/Method;
9 19 5 callback Ljava/lang/reflect/Method;
13 14 6 cause Ljava/lang/Throwable;
16 19 6 cause Ljava/lang/Throwable;
12 13 7 e Ljava/lang/IllegalAccessException;
15 16 7 e Ljava/lang/reflect/InvocationTargetException;
Exception table:
from to target type
0 1 2 Class java.lang.ClassNotFoundException
5 6 7 Class java.lang.NoSuchMethodException
9 10 11 Class java.lang.IllegalAccessException
9 10 14 Class java.lang.reflect.InvocationTargetException
MethodParameters:
Name Flags
cl
packageName
id
public void removeContextRegistrations(android.content.Context, java.lang.String, java.lang.String);
descriptor: (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic android.os.StrictMode.vmRegistrationLeaksEnabled:()Z
istore 4
start local 4 1: aload 0
getfield android.app.LoadedApk.mReceivers:Landroid/util/ArrayMap;
dup
astore 5
monitorenter
2: aload 0
getfield android.app.LoadedApk.mReceivers:Landroid/util/ArrayMap;
aload 1
invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.util.ArrayMap
3: astore 6
start local 6 4: aload 6
ifnull 27
5: iconst_0
istore 7
start local 7 6: goto 26
7: StackMap locals: android.app.LoadedApk android.content.Context java.lang.String java.lang.String int android.util.ArrayMap android.util.ArrayMap int
StackMap stack:
aload 6
iload 7
invokevirtual android.util.ArrayMap.valueAt:(I)Ljava/lang/Object;
checkcast android.app.LoadedApk$ReceiverDispatcher
astore 8
start local 8 8: new android.app.IntentReceiverLeaked
dup
9: new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " has leaked IntentReceiver "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: aload 8
invokevirtual android.app.LoadedApk$ReceiverDispatcher.getIntentReceiver:()Landroid/content/BroadcastReceiver;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " that was "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: ldc "originally registered here. Are you missing a "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: ldc "call to unregisterReceiver()?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
13: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
14: invokespecial android.app.IntentReceiverLeaked.<init>:(Ljava/lang/String;)V
astore 9
start local 9 15: aload 9
aload 8
invokevirtual android.app.LoadedApk$ReceiverDispatcher.getLocation:()Landroid/app/IntentReceiverLeaked;
invokevirtual android.app.IntentReceiverLeaked.getStackTrace:()[Ljava/lang/StackTraceElement;
invokevirtual android.app.IntentReceiverLeaked.setStackTrace:([Ljava/lang/StackTraceElement;)V
16: ldc "ActivityThread"
aload 9
invokevirtual android.app.IntentReceiverLeaked.getMessage:()Ljava/lang/String;
aload 9
invokestatic android.util.Slog.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
17: iload 4
ifeq 19
18: aload 9
invokestatic android.os.StrictMode.onIntentReceiverLeaked:(Ljava/lang/Throwable;)V
19: StackMap locals: android.app.LoadedApk$ReceiverDispatcher android.app.IntentReceiverLeaked
StackMap stack:
invokestatic android.app.ActivityManager.getService:()Landroid/app/IActivityManager;
20: aload 8
invokevirtual android.app.LoadedApk$ReceiverDispatcher.getIIntentReceiver:()Landroid/content/IIntentReceiver;
21: invokeinterface android.app.IActivityManager.unregisterReceiver:(Landroid/content/IIntentReceiver;)V
22: goto 25
StackMap locals:
StackMap stack: android.os.RemoteException
23: astore 10
start local 10 24: aload 10
invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
athrow
end local 10 end local 9 end local 8 25: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
26: iload 7
aload 6
invokevirtual android.util.ArrayMap.size:()I
if_icmplt 7
end local 7 27: StackMap locals:
StackMap stack:
aload 0
getfield android.app.LoadedApk.mUnregisteredReceivers:Landroid/util/ArrayMap;
aload 1
invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 6 28: aload 5
monitorexit
29: goto 32
StackMap locals: android.app.LoadedApk android.content.Context java.lang.String java.lang.String int android.util.ArrayMap
StackMap stack: java.lang.Throwable
30: aload 5
monitorexit
31: athrow
32: StackMap locals:
StackMap stack:
aload 0
getfield android.app.LoadedApk.mServices:Landroid/util/ArrayMap;
dup
astore 5
monitorenter
33: aload 0
getfield android.app.LoadedApk.mServices:Landroid/util/ArrayMap;
aload 1
invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.util.ArrayMap
34: astore 6
start local 6 35: aload 6
ifnull 57
36: iconst_0
istore 7
start local 7 37: goto 56
38: StackMap locals: android.util.ArrayMap android.util.ArrayMap int
StackMap stack:
aload 6
iload 7
invokevirtual android.util.ArrayMap.valueAt:(I)Ljava/lang/Object;
checkcast android.app.LoadedApk$ServiceDispatcher
astore 8
start local 8 39: new android.app.ServiceConnectionLeaked
dup
40: new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " has leaked ServiceConnection "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
41: aload 8
invokevirtual android.app.LoadedApk$ServiceDispatcher.getServiceConnection:()Landroid/content/ServiceConnection;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " that was originally bound here"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
42: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
43: invokespecial android.app.ServiceConnectionLeaked.<init>:(Ljava/lang/String;)V
astore 9
start local 9 44: aload 9
aload 8
invokevirtual android.app.LoadedApk$ServiceDispatcher.getLocation:()Landroid/app/ServiceConnectionLeaked;
invokevirtual android.app.ServiceConnectionLeaked.getStackTrace:()[Ljava/lang/StackTraceElement;
invokevirtual android.app.ServiceConnectionLeaked.setStackTrace:([Ljava/lang/StackTraceElement;)V
45: ldc "ActivityThread"
aload 9
invokevirtual android.app.ServiceConnectionLeaked.getMessage:()Ljava/lang/String;
aload 9
invokestatic android.util.Slog.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
46: iload 4
ifeq 48
47: aload 9
invokestatic android.os.StrictMode.onServiceConnectionLeaked:(Ljava/lang/Throwable;)V
48: StackMap locals: android.app.LoadedApk$ServiceDispatcher android.app.ServiceConnectionLeaked
StackMap stack:
invokestatic android.app.ActivityManager.getService:()Landroid/app/IActivityManager;
49: aload 8
invokevirtual android.app.LoadedApk$ServiceDispatcher.getIServiceConnection:()Landroid/app/IServiceConnection;
50: invokeinterface android.app.IActivityManager.unbindService:(Landroid/app/IServiceConnection;)Z
pop
51: goto 54
StackMap locals:
StackMap stack: android.os.RemoteException
52: astore 10
start local 10 53: aload 10
invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
athrow
end local 10 54: StackMap locals:
StackMap stack:
aload 8
invokevirtual android.app.LoadedApk$ServiceDispatcher.doForget:()V
end local 9 end local 8 55: iinc 7 1
StackMap locals:
StackMap stack:
56: iload 7
aload 6
invokevirtual android.util.ArrayMap.size:()I
if_icmplt 38
end local 7 57: StackMap locals:
StackMap stack:
aload 0
getfield android.app.LoadedApk.mUnboundServices:Landroid/util/ArrayMap;
aload 1
invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 6 58: aload 5
monitorexit
59: goto 62
StackMap locals: android.app.LoadedApk android.content.Context java.lang.String java.lang.String int android.util.ArrayMap
StackMap stack: java.lang.Throwable
60: aload 5
monitorexit
61: athrow
62: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 63 0 this Landroid/app/LoadedApk;
0 63 1 context Landroid/content/Context;
0 63 2 who Ljava/lang/String;
0 63 3 what Ljava/lang/String;
1 63 4 reportRegistrationLeaks Z
4 28 6 rmap Landroid/util/ArrayMap<Landroid/content/BroadcastReceiver;Landroid/app/LoadedApk$ReceiverDispatcher;>;
6 27 7 i I
8 25 8 rd Landroid/app/LoadedApk$ReceiverDispatcher;
15 25 9 leak Landroid/app/IntentReceiverLeaked;
24 25 10 e Landroid/os/RemoteException;
35 58 6 smap Landroid/util/ArrayMap<Landroid/content/ServiceConnection;Landroid/app/LoadedApk$ServiceDispatcher;>;
37 57 7 i I
39 55 8 sd Landroid/app/LoadedApk$ServiceDispatcher;
44 55 9 leak Landroid/app/ServiceConnectionLeaked;
53 54 10 e Landroid/os/RemoteException;
Exception table:
from to target type
19 22 23 Class android.os.RemoteException
2 29 30 any
30 31 30 any
48 51 52 Class android.os.RemoteException
33 59 60 any
60 61 60 any
MethodParameters:
Name Flags
context
who
what
public android.content.IIntentReceiver getReceiverDispatcher(android.content.BroadcastReceiver, android.content.Context, android.os.Handler, android.app.Instrumentation, boolean);
descriptor: (Landroid/content/BroadcastReceiver;Landroid/content/Context;Landroid/os/Handler;Landroid/app/Instrumentation;Z)Landroid/content/IIntentReceiver;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=9, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getfield android.app.LoadedApk.mReceivers:Landroid/util/ArrayMap;
dup
astore 6
monitorenter
1: aconst_null
astore 7
start local 7 2: aconst_null
astore 8
start local 8 3: iload 5
ifeq 7
4: aload 0
getfield android.app.LoadedApk.mReceivers:Landroid/util/ArrayMap;
aload 2
invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.util.ArrayMap
astore 8
5: aload 8
ifnull 7
6: aload 8
aload 1
invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.app.LoadedApk$ReceiverDispatcher
astore 7
7: StackMap locals: android.util.ArrayMap android.app.LoadedApk$ReceiverDispatcher android.util.ArrayMap
StackMap stack:
aload 7
ifnonnull 17
8: new android.app.LoadedApk$ReceiverDispatcher
dup
aload 1
aload 2
aload 3
9: aload 4
iload 5
10: invokespecial android.app.LoadedApk$ReceiverDispatcher.<init>:(Landroid/content/BroadcastReceiver;Landroid/content/Context;Landroid/os/Handler;Landroid/app/Instrumentation;Z)V
astore 7
11: iload 5
ifeq 18
12: aload 8
ifnonnull 15
13: new android.util.ArrayMap
dup
invokespecial android.util.ArrayMap.<init>:()V
astore 8
14: aload 0
getfield android.app.LoadedApk.mReceivers:Landroid/util/ArrayMap;
aload 2
aload 8
invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: StackMap locals:
StackMap stack:
aload 8
aload 1
aload 7
invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: goto 18
17: StackMap locals:
StackMap stack:
aload 7
aload 2
aload 3
invokevirtual android.app.LoadedApk$ReceiverDispatcher.validate:(Landroid/content/Context;Landroid/os/Handler;)V
18: StackMap locals:
StackMap stack:
aload 7
iconst_0
putfield android.app.LoadedApk$ReceiverDispatcher.mForgotten:Z
19: aload 7
invokevirtual android.app.LoadedApk$ReceiverDispatcher.getIIntentReceiver:()Landroid/content/IIntentReceiver;
aload 6
monitorexit
20: areturn
end local 8 end local 7 21: StackMap locals: android.app.LoadedApk android.content.BroadcastReceiver android.content.Context android.os.Handler android.app.Instrumentation int android.util.ArrayMap
StackMap stack: java.lang.Throwable
aload 6
monitorexit
22: athrow
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 23 0 this Landroid/app/LoadedApk;
0 23 1 r Landroid/content/BroadcastReceiver;
0 23 2 context Landroid/content/Context;
0 23 3 handler Landroid/os/Handler;
0 23 4 instrumentation Landroid/app/Instrumentation;
0 23 5 registered Z
2 21 7 rd Landroid/app/LoadedApk$ReceiverDispatcher;
3 21 8 map Landroid/util/ArrayMap<Landroid/content/BroadcastReceiver;Landroid/app/LoadedApk$ReceiverDispatcher;>;
Exception table:
from to target type
1 20 21 any
21 22 21 any
MethodParameters:
Name Flags
r
context
handler
instrumentation
registered
public android.content.IIntentReceiver forgetReceiverDispatcher(android.content.Context, android.content.BroadcastReceiver);
descriptor: (Landroid/content/Context;Landroid/content/BroadcastReceiver;)Landroid/content/IIntentReceiver;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.app.LoadedApk.mReceivers:Landroid/util/ArrayMap;
dup
astore 3
monitorenter
1: aload 0
getfield android.app.LoadedApk.mReceivers:Landroid/util/ArrayMap;
aload 1
invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.util.ArrayMap
astore 4
start local 4 2: aconst_null
astore 5
start local 5 3: aload 4
ifnull 24
4: aload 4
aload 2
invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.app.LoadedApk$ReceiverDispatcher
astore 5
5: aload 5
ifnull 24
6: aload 4
aload 2
invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
7: aload 4
invokevirtual android.util.ArrayMap.size:()I
ifne 9
8: aload 0
getfield android.app.LoadedApk.mReceivers:Landroid/util/ArrayMap;
aload 1
invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
9: StackMap locals: android.util.ArrayMap android.util.ArrayMap android.app.LoadedApk$ReceiverDispatcher
StackMap stack:
aload 2
invokevirtual android.content.BroadcastReceiver.getDebugUnregister:()Z
ifeq 21
10: aload 0
getfield android.app.LoadedApk.mUnregisteredReceivers:Landroid/util/ArrayMap;
aload 1
invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.util.ArrayMap
11: astore 6
start local 6 12: aload 6
ifnonnull 15
13: new android.util.ArrayMap
dup
invokespecial android.util.ArrayMap.<init>:()V
astore 6
14: aload 0
getfield android.app.LoadedApk.mUnregisteredReceivers:Landroid/util/ArrayMap;
aload 1
aload 6
invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: StackMap locals: android.util.ArrayMap
StackMap stack:
new java.lang.IllegalArgumentException
dup
16: ldc "Originally unregistered here:"
17: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
astore 7
start local 7 18: aload 7
invokevirtual java.lang.RuntimeException.fillInStackTrace:()Ljava/lang/Throwable;
pop
19: aload 5
aload 7
invokevirtual android.app.LoadedApk$ReceiverDispatcher.setUnregisterLocation:(Ljava/lang/RuntimeException;)V
20: aload 6
aload 2
aload 5
invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 end local 6 21: StackMap locals:
StackMap stack:
aload 5
iconst_1
putfield android.app.LoadedApk$ReceiverDispatcher.mForgotten:Z
22: aload 5
invokevirtual android.app.LoadedApk$ReceiverDispatcher.getIIntentReceiver:()Landroid/content/IIntentReceiver;
aload 3
monitorexit
23: areturn
24: StackMap locals:
StackMap stack:
aload 0
getfield android.app.LoadedApk.mUnregisteredReceivers:Landroid/util/ArrayMap;
aload 1
invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.util.ArrayMap
25: astore 6
start local 6 26: aload 6
ifnull 36
27: aload 6
aload 2
invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.app.LoadedApk$ReceiverDispatcher
astore 5
28: aload 5
ifnull 36
29: aload 5
invokevirtual android.app.LoadedApk$ReceiverDispatcher.getUnregisterLocation:()Ljava/lang/RuntimeException;
astore 7
start local 7 30: new java.lang.IllegalArgumentException
dup
31: new java.lang.StringBuilder
dup
ldc "Unregistering Receiver "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
32: ldc " that was already unregistered"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
33: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
34: aload 7
35: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 7 36: StackMap locals: android.util.ArrayMap
StackMap stack:
aload 1
ifnonnull 40
37: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Unbinding Receiver "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
38: ldc " from Context that is no longer in use: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
39: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
40: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Receiver not registered: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 6 end local 5 end local 4 41: StackMap locals: android.app.LoadedApk android.content.Context android.content.BroadcastReceiver android.util.ArrayMap
StackMap stack: java.lang.Throwable
aload 3
monitorexit
42: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Landroid/app/LoadedApk;
0 43 1 context Landroid/content/Context;
0 43 2 r Landroid/content/BroadcastReceiver;
2 41 4 map Landroid/util/ArrayMap<Landroid/content/BroadcastReceiver;Landroid/app/LoadedApk$ReceiverDispatcher;>;
3 41 5 rd Landroid/app/LoadedApk$ReceiverDispatcher;
12 21 6 holder Landroid/util/ArrayMap<Landroid/content/BroadcastReceiver;Landroid/app/LoadedApk$ReceiverDispatcher;>;
18 21 7 ex Ljava/lang/RuntimeException;
26 41 6 holder Landroid/util/ArrayMap<Landroid/content/BroadcastReceiver;Landroid/app/LoadedApk$ReceiverDispatcher;>;
30 36 7 ex Ljava/lang/RuntimeException;
Exception table:
from to target type
1 23 41 any
24 42 41 any
MethodParameters:
Name Flags
context
r
public final android.app.IServiceConnection getServiceDispatcher(android.content.ServiceConnection, android.content.Context, android.os.Handler, int);
descriptor: (Landroid/content/ServiceConnection;Landroid/content/Context;Landroid/os/Handler;I)Landroid/app/IServiceConnection;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=6, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield android.app.LoadedApk.mServices:Landroid/util/ArrayMap;
dup
astore 5
monitorenter
1: aconst_null
astore 6
start local 6 2: aload 0
getfield android.app.LoadedApk.mServices:Landroid/util/ArrayMap;
aload 2
invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.util.ArrayMap
astore 7
start local 7 3: aload 7
ifnull 5
4: aload 7
aload 1
invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.app.LoadedApk$ServiceDispatcher
astore 6
5: StackMap locals: android.util.ArrayMap android.app.LoadedApk$ServiceDispatcher android.util.ArrayMap
StackMap stack:
aload 6
ifnonnull 12
6: new android.app.LoadedApk$ServiceDispatcher
dup
aload 1
aload 2
aload 3
iload 4
invokespecial android.app.LoadedApk$ServiceDispatcher.<init>:(Landroid/content/ServiceConnection;Landroid/content/Context;Landroid/os/Handler;I)V
astore 6
7: aload 7
ifnonnull 10
8: new android.util.ArrayMap
dup
invokespecial android.util.ArrayMap.<init>:()V
astore 7
9: aload 0
getfield android.app.LoadedApk.mServices:Landroid/util/ArrayMap;
aload 2
aload 7
invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
10: StackMap locals:
StackMap stack:
aload 7
aload 1
aload 6
invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: goto 13
12: StackMap locals:
StackMap stack:
aload 6
aload 2
aload 3
invokevirtual android.app.LoadedApk$ServiceDispatcher.validate:(Landroid/content/Context;Landroid/os/Handler;)V
13: StackMap locals:
StackMap stack:
aload 6
invokevirtual android.app.LoadedApk$ServiceDispatcher.getIServiceConnection:()Landroid/app/IServiceConnection;
aload 5
monitorexit
14: areturn
end local 7 end local 6 15: StackMap locals: android.app.LoadedApk android.content.ServiceConnection android.content.Context android.os.Handler int android.util.ArrayMap
StackMap stack: java.lang.Throwable
aload 5
monitorexit
16: athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Landroid/app/LoadedApk;
0 17 1 c Landroid/content/ServiceConnection;
0 17 2 context Landroid/content/Context;
0 17 3 handler Landroid/os/Handler;
0 17 4 flags I
2 15 6 sd Landroid/app/LoadedApk$ServiceDispatcher;
3 15 7 map Landroid/util/ArrayMap<Landroid/content/ServiceConnection;Landroid/app/LoadedApk$ServiceDispatcher;>;
Exception table:
from to target type
1 14 15 any
15 16 15 any
MethodParameters:
Name Flags
c
context
handler
flags
public final android.app.IServiceConnection forgetServiceDispatcher(android.content.Context, android.content.ServiceConnection);
descriptor: (Landroid/content/Context;Landroid/content/ServiceConnection;)Landroid/app/IServiceConnection;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.app.LoadedApk.mServices:Landroid/util/ArrayMap;
dup
astore 3
monitorenter
1: aload 0
getfield android.app.LoadedApk.mServices:Landroid/util/ArrayMap;
aload 1
invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.util.ArrayMap
2: astore 4
start local 4 3: aconst_null
astore 5
start local 5 4: aload 4
ifnull 25
5: aload 4
aload 2
invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.app.LoadedApk$ServiceDispatcher
astore 5
6: aload 5
ifnull 25
7: aload 4
aload 2
invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
8: aload 5
invokevirtual android.app.LoadedApk$ServiceDispatcher.doForget:()V
9: aload 4
invokevirtual android.util.ArrayMap.size:()I
ifne 11
10: aload 0
getfield android.app.LoadedApk.mServices:Landroid/util/ArrayMap;
aload 1
invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
11: StackMap locals: android.util.ArrayMap android.util.ArrayMap android.app.LoadedApk$ServiceDispatcher
StackMap stack:
aload 5
invokevirtual android.app.LoadedApk$ServiceDispatcher.getFlags:()I
iconst_2
iand
ifeq 23
12: aload 0
getfield android.app.LoadedApk.mUnboundServices:Landroid/util/ArrayMap;
aload 1
invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.util.ArrayMap
13: astore 6
start local 6 14: aload 6
ifnonnull 17
15: new android.util.ArrayMap
dup
invokespecial android.util.ArrayMap.<init>:()V
astore 6
16: aload 0
getfield android.app.LoadedApk.mUnboundServices:Landroid/util/ArrayMap;
aload 1
aload 6
invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
17: StackMap locals: android.util.ArrayMap
StackMap stack:
new java.lang.IllegalArgumentException
dup
18: ldc "Originally unbound here:"
19: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
astore 7
start local 7 20: aload 7
invokevirtual java.lang.RuntimeException.fillInStackTrace:()Ljava/lang/Throwable;
pop
21: aload 5
aload 7
invokevirtual android.app.LoadedApk$ServiceDispatcher.setUnbindLocation:(Ljava/lang/RuntimeException;)V
22: aload 6
aload 2
aload 5
invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 end local 6 23: StackMap locals:
StackMap stack:
aload 5
invokevirtual android.app.LoadedApk$ServiceDispatcher.getIServiceConnection:()Landroid/app/IServiceConnection;
aload 3
monitorexit
24: areturn
25: StackMap locals:
StackMap stack:
aload 0
getfield android.app.LoadedApk.mUnboundServices:Landroid/util/ArrayMap;
aload 1
invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.util.ArrayMap
26: astore 6
start local 6 27: aload 6
ifnull 37
28: aload 6
aload 2
invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.app.LoadedApk$ServiceDispatcher
astore 5
29: aload 5
ifnull 37
30: aload 5
invokevirtual android.app.LoadedApk$ServiceDispatcher.getUnbindLocation:()Ljava/lang/RuntimeException;
astore 7
start local 7 31: new java.lang.IllegalArgumentException
dup
32: new java.lang.StringBuilder
dup
ldc "Unbinding Service "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
33: ldc " that was already unbound"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
34: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
35: aload 7
36: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 7 37: StackMap locals: android.util.ArrayMap
StackMap stack:
aload 1
ifnonnull 41
38: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Unbinding Service "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
39: ldc " from Context that is no longer in use: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
40: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
41: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Service not registered: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 6 end local 5 end local 4 42: StackMap locals: android.app.LoadedApk android.content.Context android.content.ServiceConnection android.util.ArrayMap
StackMap stack: java.lang.Throwable
aload 3
monitorexit
43: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Landroid/app/LoadedApk;
0 44 1 context Landroid/content/Context;
0 44 2 c Landroid/content/ServiceConnection;
3 42 4 map Landroid/util/ArrayMap<Landroid/content/ServiceConnection;Landroid/app/LoadedApk$ServiceDispatcher;>;
4 42 5 sd Landroid/app/LoadedApk$ServiceDispatcher;
14 23 6 holder Landroid/util/ArrayMap<Landroid/content/ServiceConnection;Landroid/app/LoadedApk$ServiceDispatcher;>;
20 23 7 ex Ljava/lang/RuntimeException;
27 42 6 holder Landroid/util/ArrayMap<Landroid/content/ServiceConnection;Landroid/app/LoadedApk$ServiceDispatcher;>;
31 37 7 ex Ljava/lang/RuntimeException;
Exception table:
from to target type
1 24 42 any
25 43 42 any
MethodParameters:
Name Flags
context
c
}
SourceFile: "LoadedApk.java"
NestMembers:
android.app.LoadedApk$ReceiverDispatcher android.app.LoadedApk$ReceiverDispatcher$Args android.app.LoadedApk$ReceiverDispatcher$InnerReceiver android.app.LoadedApk$ServiceDispatcher android.app.LoadedApk$ServiceDispatcher$ConnectionInfo android.app.LoadedApk$ServiceDispatcher$DeathMonitor android.app.LoadedApk$ServiceDispatcher$InnerConnection android.app.LoadedApk$ServiceDispatcher$RunConnection android.app.LoadedApk$SplitDependencyLoaderImpl android.app.LoadedApk$WarningContextClassLoader
InnerClasses:
final ReceiverDispatcher = android.app.LoadedApk$ReceiverDispatcher of android.app.LoadedApk
final ServiceDispatcher = android.app.LoadedApk$ServiceDispatcher of android.app.LoadedApk
private SplitDependencyLoaderImpl = android.app.LoadedApk$SplitDependencyLoaderImpl of android.app.LoadedApk
private WarningContextClassLoader = android.app.LoadedApk$WarningContextClassLoader of android.app.LoadedApk
public NameNotFoundException = android.content.pm.PackageManager$NameNotFoundException of android.content.pm.PackageManager