public class android.os.SELinux
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.os.SELinux
  super_class: java.lang.Object
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SELinux"

  private static final int SELINUX_ANDROID_RESTORECON_NOCHANGE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int SELINUX_ANDROID_RESTORECON_VERBOSE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int SELINUX_ANDROID_RESTORECON_RECURSE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int SELINUX_ANDROID_RESTORECON_FORCE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int SELINUX_ANDROID_RESTORECON_DATADATA;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.os.SELinux this
         0: .line 30
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // android.os.SELinux this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/os/SELinux;

  public static final native boolean isSELinuxEnabled();
    descriptor: ()Z
    flags: (0x0119) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_NATIVE

  public static final native boolean isSELinuxEnforced();
    descriptor: ()Z
    flags: (0x0119) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_NATIVE

  public static final native boolean setFSCreateContext(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0119) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_NATIVE
    MethodParameters:
         Name  Flags
      context  

  public static final native boolean setFileContext(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0119) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_NATIVE
    MethodParameters:
         Name  Flags
      path     
      context  

  public static final native java.lang.String getFileContext(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0119) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_NATIVE
    MethodParameters:
      Name  Flags
      path  

  public static final native java.lang.String getPeerContext(java.io.FileDescriptor);
    descriptor: (Ljava/io/FileDescriptor;)Ljava/lang/String;
    flags: (0x0119) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_NATIVE
    MethodParameters:
      Name  Flags
      fd    

  public static final native java.lang.String getContext();
    descriptor: ()Ljava/lang/String;
    flags: (0x0119) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_NATIVE

  public static final native java.lang.String getPidContext(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0119) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_NATIVE
    MethodParameters:
      Name  Flags
      pid   

  public static final native boolean checkSELinuxAccess(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0119) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_NATIVE
    MethodParameters:
        Name  Flags
      scon    
      tcon    
      tclass  
      perm    

  public static boolean restorecon(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String pathname
         0: .line 116
            aload 0 /* pathname */
            ifnonnull 1
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         1: .line 117
      StackMap locals:
      StackMap stack:
            aload 0 /* pathname */
            iconst_0
            invokestatic android.os.SELinux.native_restorecon:(Ljava/lang/String;I)Z
            ireturn
        end local 0 // java.lang.String pathname
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  pathname  Ljava/lang/String;
    Exceptions:
      throws java.lang.NullPointerException
    MethodParameters:
          Name  Flags
      pathname  

  private static native boolean native_restorecon(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Z
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
          Name  Flags
      pathname  
      flags     

  public static boolean restorecon(java.io.File);
    descriptor: (Ljava/io/File;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.io.File file
         0: .line 145
            aload 0 /* file */
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            iconst_0
            invokestatic android.os.SELinux.native_restorecon:(Ljava/lang/String;I)Z
         1: ireturn
         2: .line 146
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         3: .line 147
            ldc "SELinux"
            new java.lang.StringBuilder
            dup
            ldc "Error getting canonical path. Restorecon failed for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 148
            aload 0 /* file */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* e */
         5: .line 147
            invokestatic android.util.Slog.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
         6: .line 149
            iconst_0
            ireturn
        end local 1 // java.io.IOException e
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  file  Ljava/io/File;
            3    7     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Exceptions:
      throws java.lang.NullPointerException
    MethodParameters:
      Name  Flags
      file  

  public static boolean restoreconRecursive(java.io.File);
    descriptor: (Ljava/io/File;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.io.File file
         0: .line 163
            aload 0 /* file */
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            iconst_4
            invokestatic android.os.SELinux.native_restorecon:(Ljava/lang/String;I)Z
         1: ireturn
         2: .line 164
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         3: .line 165
            ldc "SELinux"
            new java.lang.StringBuilder
            dup
            ldc "Error getting canonical path. Restorecon failed for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 166
            aload 0 /* file */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* e */
         5: .line 165
            invokestatic android.util.Slog.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
         6: .line 167
            iconst_0
            ireturn
        end local 1 // java.io.IOException e
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  file  Ljava/io/File;
            3    7     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    MethodParameters:
      Name  Flags
      file  
}
SourceFile: "SELinux.java"