public class android.net.VpnService extends android.app.Service
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: android.net.VpnService
super_class: android.app.Service
{
public static final java.lang.String SERVICE_INTERFACE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "android.net.VpnService"
public static final java.lang.String SERVICE_META_DATA_SUPPORTS_ALWAYS_ON;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "android.net.VpnService.SUPPORTS_ALWAYS_ON"
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial android.app.Service.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/net/VpnService;
private static android.net.IConnectivityManager getService();
descriptor: ()Landroid/net/IConnectivityManager;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "connectivity"
invokestatic android.os.ServiceManager.getService:(Ljava/lang/String;)Landroid/os/IBinder;
1: invokestatic android.net.IConnectivityManager$Stub.asInterface:(Landroid/os/IBinder;)Landroid/net/IConnectivityManager;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static android.content.Intent prepare(android.content.Context);
descriptor: (Landroid/content/Context;)Landroid/content/Intent;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: invokestatic android.net.VpnService.getService:()Landroid/net/IConnectivityManager;
aload 0
invokevirtual android.content.Context.getPackageName:()Ljava/lang/String;
aconst_null
aload 0
invokevirtual android.content.Context.getUserId:()I
invokeinterface android.net.IConnectivityManager.prepareVpn:(Ljava/lang/String;Ljava/lang/String;I)Z
ifeq 3
1: aconst_null
areturn
2: StackMap locals:
StackMap stack: android.os.RemoteException
pop
3: StackMap locals:
StackMap stack:
invokestatic com.android.internal.net.VpnConfig.getIntentForConfirmation:()Landroid/content/Intent;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 context Landroid/content/Context;
Exception table:
from to target type
0 1 2 Class android.os.RemoteException
MethodParameters:
Name Flags
context
public static void prepareAndAuthorize(android.content.Context);
descriptor: (Landroid/content/Context;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tandroid.Manifest.permission.CONTROL_VPN cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
MethodParameters:
Name Flags
context
public boolean protect(int);
descriptor: (I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iload 1
invokestatic android.net.NetworkUtils.protectFromVpn:(I)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/net/VpnService;
0 1 1 socket I
MethodParameters:
Name Flags
socket
public boolean protect(java.net.Socket);
descriptor: (Ljava/net/Socket;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tThe method getFileDescriptor$() is undefined for the type Socket\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/net/VpnService;
MethodParameters:
Name Flags
socket
public boolean protect(java.net.DatagramSocket);
descriptor: (Ljava/net/DatagramSocket;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tThe method getFileDescriptor$() is undefined for the type DatagramSocket\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/net/VpnService;
MethodParameters:
Name Flags
socket
public boolean addAddress(java.net.InetAddress, int);
descriptor: (Ljava/net/InetAddress;I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
iload 2
invokestatic android.net.VpnService.check:(Ljava/net/InetAddress;I)V
1: invokestatic android.net.VpnService.getService:()Landroid/net/IConnectivityManager;
aload 1
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
iload 2
invokeinterface android.net.IConnectivityManager.addVpnAddress:(Ljava/lang/String;I)Z
2: ireturn
3: StackMap locals:
StackMap stack: android.os.RemoteException
astore 3
start local 3 4: new java.lang.IllegalStateException
dup
aload 3
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/net/VpnService;
0 5 1 address Ljava/net/InetAddress;
0 5 2 prefixLength I
4 5 3 e Landroid/os/RemoteException;
Exception table:
from to target type
1 2 3 Class android.os.RemoteException
MethodParameters:
Name Flags
address
prefixLength
public boolean removeAddress(java.net.InetAddress, int);
descriptor: (Ljava/net/InetAddress;I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
iload 2
invokestatic android.net.VpnService.check:(Ljava/net/InetAddress;I)V
1: invokestatic android.net.VpnService.getService:()Landroid/net/IConnectivityManager;
aload 1
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
iload 2
invokeinterface android.net.IConnectivityManager.removeVpnAddress:(Ljava/lang/String;I)Z
2: ireturn
3: StackMap locals:
StackMap stack: android.os.RemoteException
astore 3
start local 3 4: new java.lang.IllegalStateException
dup
aload 3
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/net/VpnService;
0 5 1 address Ljava/net/InetAddress;
0 5 2 prefixLength I
4 5 3 e Landroid/os/RemoteException;
Exception table:
from to target type
1 2 3 Class android.os.RemoteException
MethodParameters:
Name Flags
address
prefixLength
public boolean setUnderlyingNetworks(android.net.Network[]);
descriptor: ([Landroid/net/Network;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: invokestatic android.net.VpnService.getService:()Landroid/net/IConnectivityManager;
aload 1
invokeinterface android.net.IConnectivityManager.setUnderlyingNetworksForVpn:([Landroid/net/Network;)Z
1: ireturn
2: StackMap locals:
StackMap stack: android.os.RemoteException
astore 2
start local 2 3: new java.lang.IllegalStateException
dup
aload 2
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/net/VpnService;
0 4 1 networks [Landroid/net/Network;
3 4 2 e Landroid/os/RemoteException;
Exception table:
from to target type
0 1 2 Class android.os.RemoteException
MethodParameters:
Name Flags
networks
public android.os.IBinder onBind(android.content.Intent);
descriptor: (Landroid/content/Intent;)Landroid/os/IBinder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 2
ldc "android.net.VpnService"
aload 1
invokevirtual android.content.Intent.getAction:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 2
1: new android.net.VpnService$Callback
dup
aload 0
invokespecial android.net.VpnService$Callback.<init>:(Landroid/net/VpnService;)V
areturn
2: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/net/VpnService;
0 3 1 intent Landroid/content/Intent;
MethodParameters:
Name Flags
intent
public void onRevoke();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual android.net.VpnService.stopSelf:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/net/VpnService;
private static void check(java.net.InetAddress, int);
descriptor: (Ljava/net/InetAddress;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.net.InetAddress.isLoopbackAddress:()Z
ifeq 2
1: new java.lang.IllegalArgumentException
dup
ldc "Bad address"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
instanceof java.net.Inet4Address
ifeq 5
3: iload 1
iflt 4
iload 1
bipush 32
if_icmple 9
4: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "Bad prefixLength"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
instanceof java.net.Inet6Address
ifeq 8
6: iload 1
iflt 7
iload 1
sipush 128
if_icmple 9
7: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "Bad prefixLength"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "Unsupported family"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 address Ljava/net/InetAddress;
0 10 1 prefixLength I
MethodParameters:
Name Flags
address
prefixLength
}
SourceFile: "VpnService.java"
NestMembers:
android.net.VpnService$Builder android.net.VpnService$Callback
InnerClasses:
public abstract Stub = android.net.IConnectivityManager$Stub of android.net.IConnectivityManager
public Builder = android.net.VpnService$Builder of android.net.VpnService
private Callback = android.net.VpnService$Callback of android.net.VpnService