public class android.os.GraphicsEnvironment
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: android.os.GraphicsEnvironment
super_class: java.lang.Object
{
private static final android.os.GraphicsEnvironment sInstance;
descriptor: Landroid/os/GraphicsEnvironment;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean DEBUG;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final java.lang.String TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "GraphicsEnvironment"
private static final java.lang.String PROPERTY_GFX_DRIVER;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "ro.gfx.driver.0"
private java.lang.ClassLoader mClassLoader;
descriptor: Ljava/lang/ClassLoader;
flags: (0x0002) ACC_PRIVATE
private java.lang.String mLayerPath;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String mDebugLayerPath;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new android.os.GraphicsEnvironment
dup
invokespecial android.os.GraphicsEnvironment.<init>:()V
putstatic android.os.GraphicsEnvironment.sInstance:Landroid/os/GraphicsEnvironment;
1: 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 java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/os/GraphicsEnvironment;
public static android.os.GraphicsEnvironment getInstance();
descriptor: ()Landroid/os/GraphicsEnvironment;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic android.os.GraphicsEnvironment.sInstance:Landroid/os/GraphicsEnvironment;
areturn
LocalVariableTable:
Start End Slot Name Signature
public void setup(android.content.Context);
descriptor: (Landroid/content/Context;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual android.os.GraphicsEnvironment.setupGpuLayers:(Landroid/content/Context;)V
1: aload 1
invokestatic android.os.GraphicsEnvironment.chooseDriver:(Landroid/content/Context;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/os/GraphicsEnvironment;
0 3 1 context Landroid/content/Context;
MethodParameters:
Name Flags
context
private static boolean isDebuggable(android.content.Context);
descriptor: (Landroid/content/Context;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual android.content.Context.getApplicationInfo:()Landroid/content/pm/ApplicationInfo;
getfield android.content.pm.ApplicationInfo.flags:I
iconst_2
iand
ifle 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 context Landroid/content/Context;
MethodParameters:
Name Flags
context
public void setLayerPaths(java.lang.ClassLoader, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
putfield android.os.GraphicsEnvironment.mClassLoader:Ljava/lang/ClassLoader;
1: aload 0
aload 2
putfield android.os.GraphicsEnvironment.mLayerPath:Ljava/lang/String;
2: aload 0
aload 3
putfield android.os.GraphicsEnvironment.mDebugLayerPath:Ljava/lang/String;
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/os/GraphicsEnvironment;
0 4 1 classLoader Ljava/lang/ClassLoader;
0 4 2 layerPath Ljava/lang/String;
0 4 3 debugLayerPath Ljava/lang/String;
MethodParameters:
Name Flags
classLoader
layerPath
debugLayerPath
private void setupGpuLayers(android.content.Context);
descriptor: (Landroid/content/Context;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: ldc ""
astore 2
start local 2 1: aload 1
invokestatic android.os.GraphicsEnvironment.isDebuggable:(Landroid/content/Context;)Z
ifeq 21
2: aload 1
invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
3: ldc "enable_gpu_debug_layers"
iconst_0
4: invokestatic android.provider.Settings$Global.getInt:(Landroid/content/ContentResolver;Ljava/lang/String;I)I
istore 3
start local 3 5: iload 3
ifeq 21
6: aload 1
invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
7: ldc "gpu_debug_app"
8: invokestatic android.provider.Settings$Global.getString:(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 9: aload 1
invokevirtual android.content.Context.getPackageName:()Ljava/lang/String;
astore 5
start local 5 10: aload 4
ifnull 21
aload 5
ifnull 21
11: aload 4
invokevirtual java.lang.String.isEmpty:()Z
ifne 21
aload 5
invokevirtual java.lang.String.isEmpty:()Z
ifne 21
12: aload 4
aload 5
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 21
13: ldc "GraphicsEnvironment"
new java.lang.StringBuilder
dup
ldc "GPU debug layers enabled for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
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
14: new java.lang.StringBuilder
dup
aload 0
getfield android.os.GraphicsEnvironment.mDebugLayerPath:Ljava/lang/String;
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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
15: aload 1
invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
16: ldc "gpu_debug_layers"
17: invokestatic android.provider.Settings$Global.getString:(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
astore 6
start local 6 18: ldc "GraphicsEnvironment"
new java.lang.StringBuilder
dup
ldc "Debug layer list: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
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
19: aload 6
ifnull 21
aload 6
invokevirtual java.lang.String.isEmpty:()Z
ifne 21
20: aload 6
invokestatic android.os.GraphicsEnvironment.setDebugLayers:(Ljava/lang/String;)V
end local 6 end local 5 end local 4 end local 3 21: StackMap locals: java.lang.String
StackMap stack:
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
aload 0
getfield android.os.GraphicsEnvironment.mLayerPath:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
22: aload 0
getfield android.os.GraphicsEnvironment.mClassLoader:Ljava/lang/ClassLoader;
aload 2
invokestatic android.os.GraphicsEnvironment.setLayerPaths:(Ljava/lang/ClassLoader;Ljava/lang/String;)V
23: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Landroid/os/GraphicsEnvironment;
0 24 1 context Landroid/content/Context;
1 24 2 layerPaths Ljava/lang/String;
5 21 3 enable I
9 21 4 gpuDebugApp Ljava/lang/String;
10 21 5 packageName Ljava/lang/String;
18 21 6 layers Ljava/lang/String;
MethodParameters:
Name Flags
context
private static void chooseDriver(android.content.Context);
descriptor: (Landroid/content/Context;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: ldc "ro.gfx.driver.0"
invokestatic android.os.SystemProperties.get:(Ljava/lang/String;)Ljava/lang/String;
astore 1
start local 1 1: aload 1
ifnull 2
aload 1
invokevirtual java.lang.String.isEmpty:()Z
ifeq 3
2: StackMap locals: java.lang.String
StackMap stack:
return
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual android.content.Context.getApplicationInfo:()Landroid/content/pm/ApplicationInfo;
astore 2
start local 2 4: aload 2
invokevirtual android.content.pm.ApplicationInfo.isPrivilegedApp:()Z
ifne 5
aload 2
invokevirtual android.content.pm.ApplicationInfo.isSystemApp:()Z
ifeq 6
aload 2
invokevirtual android.content.pm.ApplicationInfo.isUpdatedSystemApp:()Z
ifne 6
5: StackMap locals: android.content.pm.ApplicationInfo
StackMap stack:
return
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual android.content.Context.getPackageManager:()Landroid/content/pm/PackageManager;
aload 1
7: ldc 1048576
8: invokevirtual android.content.pm.PackageManager.getApplicationInfo:(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
astore 3
start local 3 9: goto 13
end local 3 StackMap locals:
StackMap stack: android.content.pm.PackageManager$NameNotFoundException
10: pop
11: ldc "GraphicsEnvironment"
new java.lang.StringBuilder
dup
ldc "driver package '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' not installed"
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
12: return
start local 3 13: StackMap locals: android.content.pm.ApplicationInfo
StackMap stack:
aload 3
invokestatic android.os.GraphicsEnvironment.chooseAbi:(Landroid/content/pm/ApplicationInfo;)Ljava/lang/String;
astore 4
start local 4 14: aload 4
ifnonnull 16
15: return
16: StackMap locals: java.lang.String
StackMap stack:
aload 3
getfield android.content.pm.ApplicationInfo.targetSdkVersion:I
bipush 26
if_icmpge 19
17: ldc "GraphicsEnvironment"
ldc "updated driver package is not known to be compatible with O"
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
18: return
19: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 5
start local 5 20: aload 5
aload 3
getfield android.content.pm.ApplicationInfo.nativeLibraryDir:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
21: getstatic java.io.File.pathSeparator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
22: aload 5
aload 3
getfield android.content.pm.ApplicationInfo.sourceDir:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
23: ldc "!/lib/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
24: aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
25: aload 5
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 6
start local 6 26: aload 6
invokestatic android.os.GraphicsEnvironment.setDriverPath:(Ljava/lang/String;)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 context Landroid/content/Context;
1 28 1 driverPackageName Ljava/lang/String;
4 28 2 ai Landroid/content/pm/ApplicationInfo;
9 10 3 driverInfo Landroid/content/pm/ApplicationInfo;
13 28 3 driverInfo Landroid/content/pm/ApplicationInfo;
14 28 4 abi Ljava/lang/String;
20 28 5 sb Ljava/lang/StringBuilder;
26 28 6 paths Ljava/lang/String;
Exception table:
from to target type
6 9 10 Class android.content.pm.PackageManager$NameNotFoundException
MethodParameters:
Name Flags
context
public static void earlyInitEGL();
descriptor: ()V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=0
0: new java.lang.Thread
dup
1: invokedynamic run()Ljava/lang/Runnable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()V
android/os/GraphicsEnvironment.lambda$0()V (6)
()V
2: ldc "EGL Init"
3: invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;Ljava/lang/String;)V
astore 0
start local 0 4: aload 0
invokevirtual java.lang.Thread.start:()V
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
4 6 0 eglInitThread Ljava/lang/Thread;
private static java.lang.String chooseAbi(android.content.pm.ApplicationInfo);
descriptor: (Landroid/content/pm/ApplicationInfo;)Ljava/lang/String;
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\tVMRuntime cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
MethodParameters:
Name Flags
ai
private static native void setLayerPaths(java.lang.ClassLoader, java.lang.String);
descriptor: (Ljava/lang/ClassLoader;Ljava/lang/String;)V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
classLoader
layerPaths
private static native void setDebugLayers(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
layers
private static native void setDriverPath(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
path
private static void lambda$0();
descriptor: ()V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=0, args_size=0
0: iconst_0
invokestatic android.opengl.EGL14.eglGetDisplay:(I)Landroid/opengl/EGLDisplay;
pop
1: return
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "GraphicsEnvironment.java"
InnerClasses:
public NameNotFoundException = android.content.pm.PackageManager$NameNotFoundException of android.content.pm.PackageManager
public final Global = android.provider.Settings$Global of android.provider.Settings
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles