public class com.android.fakeoemfeatures.FakeApp extends android.app.Application
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.android.fakeoemfeatures.FakeApp
  super_class: android.app.Application
{
  static final int STUFFING_SIZE_BYTES;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 20971520

  static final int STUFFING_SIZE_INTS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 5242880

  int[] mStuffing;
    descriptor: [I
    flags: (0x0000) 

  static final int PAGE_SIZE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4096

  static final long TICK_DELAY;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 14400000

  static final int MSG_TICK;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  final android.os.Handler mHandler;
    descriptor: Landroid/os/Handler;
    flags: (0x0010) ACC_FINAL

  android.content.ServiceConnection mServiceConnection;
    descriptor: Landroid/content/ServiceConnection;
    flags: (0x0000) 

  android.content.ServiceConnection mServiceConnection2;
    descriptor: Landroid/content/ServiceConnection;
    flags: (0x0000) 

  android.content.ServiceConnection mServiceConnection3;
    descriptor: Landroid/content/ServiceConnection;
    flags: (0x0000) 

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.android.fakeoemfeatures.FakeApp this
         0: .line 36
            aload 0 /* this */
            invokespecial android.app.Application.<init>:()V
         1: .line 47
            aload 0 /* this */
            new com.android.fakeoemfeatures.FakeApp$1
            dup
            aload 0 /* this */
            invokespecial com.android.fakeoemfeatures.FakeApp$1.<init>:(Lcom/android/fakeoemfeatures/FakeApp;)V
            putfield com.android.fakeoemfeatures.FakeApp.mHandler:Landroid/os/Handler;
         2: .line 65
            aload 0 /* this */
            new com.android.fakeoemfeatures.FakeApp$2
            dup
            aload 0 /* this */
            invokespecial com.android.fakeoemfeatures.FakeApp$2.<init>:(Lcom/android/fakeoemfeatures/FakeApp;)V
            putfield com.android.fakeoemfeatures.FakeApp.mServiceConnection:Landroid/content/ServiceConnection;
         3: .line 72
            aload 0 /* this */
            new com.android.fakeoemfeatures.FakeApp$3
            dup
            aload 0 /* this */
            invokespecial com.android.fakeoemfeatures.FakeApp$3.<init>:(Lcom/android/fakeoemfeatures/FakeApp;)V
            putfield com.android.fakeoemfeatures.FakeApp.mServiceConnection2:Landroid/content/ServiceConnection;
         4: .line 79
            aload 0 /* this */
            new com.android.fakeoemfeatures.FakeApp$4
            dup
            aload 0 /* this */
            invokespecial com.android.fakeoemfeatures.FakeApp$4.<init>:(Lcom/android/fakeoemfeatures/FakeApp;)V
            putfield com.android.fakeoemfeatures.FakeApp.mServiceConnection3:Landroid/content/ServiceConnection;
         5: .line 36
            return
        end local 0 // com.android.fakeoemfeatures.FakeApp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/android/fakeoemfeatures/FakeApp;

  public void onCreate();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=1
        start local 0 // com.android.fakeoemfeatures.FakeApp this
         0: .line 89
            invokestatic android.app.ActivityThread.currentProcessName:()Ljava/lang/String;
            astore 1 /* processName */
        start local 1 // java.lang.String processName
         1: .line 90
            ldc "FakeOEMFeatures"
            new java.lang.StringBuilder
            dup
            ldc "Creating app in process: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* processName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Slog.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 91
            aload 0 /* this */
            invokevirtual com.android.fakeoemfeatures.FakeApp.getApplicationInfo:()Landroid/content/pm/ApplicationInfo;
            getfield android.content.pm.ApplicationInfo.packageName:Ljava/lang/String;
            aload 1 /* processName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 94
            return
         4: .line 97
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            ldc "window"
            invokevirtual com.android.fakeoemfeatures.FakeApp.getSystemService:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast android.view.WindowManager
            astore 2 /* wm */
        start local 2 // android.view.WindowManager wm
         5: .line 98
            aload 2 /* wm */
            invokeinterface android.view.WindowManager.getDefaultDisplay:()Landroid/view/Display;
            astore 3 /* display */
        start local 3 // android.view.Display display
         6: .line 102
            ldc "user"
            getstatic android.os.Build.TYPE:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
         7: .line 103
            new android.app.AlertDialog$Builder
            dup
            aload 0 /* this */
            invokespecial android.app.AlertDialog$Builder.<init>:(Landroid/content/Context;)V
            astore 4 /* builder */
        start local 4 // android.app.AlertDialog$Builder builder
         8: .line 104
            aload 4 /* builder */
            ldc "Should not be on user build"
            invokevirtual android.app.AlertDialog$Builder.setTitle:(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;
            pop
         9: .line 105
            aload 4 /* builder */
            ldc "The app Fake OEM Features should not be installed on a user build.  Please remove this .apk before shipping this build to  your customers!"
            invokevirtual android.app.AlertDialog$Builder.setMessage:(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;
            pop
        10: .line 108
            aload 4 /* builder */
            iconst_0
            invokevirtual android.app.AlertDialog$Builder.setCancelable:(Z)Landroid/app/AlertDialog$Builder;
            pop
        11: .line 109
            aload 4 /* builder */
            ldc "I understand"
            aconst_null
            invokevirtual android.app.AlertDialog$Builder.setPositiveButton:(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;
            pop
        12: .line 110
            aload 4 /* builder */
            invokevirtual android.app.AlertDialog$Builder.create:()Landroid/app/AlertDialog;
            astore 5 /* dialog */
        start local 5 // android.app.Dialog dialog
        13: .line 111
            aload 5 /* dialog */
            invokevirtual android.app.Dialog.getWindow:()Landroid/view/Window;
            sipush 2038
            invokevirtual android.view.Window.setType:(I)V
        14: .line 112
            aload 5 /* dialog */
            invokevirtual android.app.Dialog.show:()V
        end local 5 // android.app.Dialog dialog
        end local 4 // android.app.AlertDialog$Builder builder
        15: .line 116
      StackMap locals: android.view.WindowManager android.view.Display
      StackMap stack:
            new com.android.fakeoemfeatures.FakeView
            dup
            aload 0 /* this */
            invokespecial com.android.fakeoemfeatures.FakeView.<init>:(Landroid/content/Context;)V
            astore 4 /* view */
        start local 4 // com.android.fakeoemfeatures.FakeView view
        16: .line 117
            new android.view.WindowManager$LayoutParams
            dup
        17: .line 118
            sipush 2038
        18: .line 119
            sipush 536
        19: .line 117
            invokespecial android.view.WindowManager$LayoutParams.<init>:(II)V
            astore 5 /* lp */
        start local 5 // android.view.WindowManager$LayoutParams lp
        20: .line 122
            invokestatic android.app.ActivityManager.isHighEndGfx:()Z
            ifeq 22
        21: .line 123
            aload 5 /* lp */
            dup
            getfield android.view.WindowManager$LayoutParams.flags:I
            ldc 16777216
            ior
            putfield android.view.WindowManager$LayoutParams.flags:I
        22: .line 125
      StackMap locals: com.android.fakeoemfeatures.FakeView android.view.WindowManager$LayoutParams
      StackMap stack:
            aload 5 /* lp */
            iconst_m1
            putfield android.view.WindowManager$LayoutParams.width:I
        23: .line 126
            aload 5 /* lp */
            iconst_m1
            putfield android.view.WindowManager$LayoutParams.height:I
        24: .line 127
            aload 3 /* display */
            invokevirtual android.view.Display.getMaximumSizeDimension:()I
            istore 6 /* maxSize */
        start local 6 // int maxSize
        25: .line 128
            iload 6 /* maxSize */
            iconst_2
            imul
            istore 6 /* maxSize */
        26: .line 129
            aload 5 /* lp */
            iload 6 /* maxSize */
            putfield android.view.WindowManager$LayoutParams.x:I
        27: .line 130
            aload 5 /* lp */
            iload 6 /* maxSize */
            putfield android.view.WindowManager$LayoutParams.y:I
        28: .line 131
            aload 5 /* lp */
            aload 0 /* this */
            invokevirtual com.android.fakeoemfeatures.FakeApp.getPackageName:()Ljava/lang/String;
            invokevirtual android.view.WindowManager$LayoutParams.setTitle:(Ljava/lang/CharSequence;)V
        29: .line 132
            aload 2 /* wm */
            aload 4 /* view */
            aload 5 /* lp */
            invokeinterface android.view.WindowManager.addView:(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
        30: .line 135
            aload 0 /* this */
            new android.content.Intent
            dup
            aload 0 /* this */
            ldc Lcom/android/fakeoemfeatures/FakeCoreService;
            invokespecial android.content.Intent.<init>:(Landroid/content/Context;Ljava/lang/Class;)V
            aload 0 /* this */
            getfield com.android.fakeoemfeatures.FakeApp.mServiceConnection:Landroid/content/ServiceConnection;
        31: .line 136
            iconst_1
        32: .line 135
            invokevirtual com.android.fakeoemfeatures.FakeApp.bindService:(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
            pop
        33: .line 137
            aload 0 /* this */
            new android.content.Intent
            dup
            aload 0 /* this */
            ldc Lcom/android/fakeoemfeatures/FakeCoreService2;
            invokespecial android.content.Intent.<init>:(Landroid/content/Context;Ljava/lang/Class;)V
            aload 0 /* this */
            getfield com.android.fakeoemfeatures.FakeApp.mServiceConnection2:Landroid/content/ServiceConnection;
        34: .line 138
            iconst_1
        35: .line 137
            invokevirtual com.android.fakeoemfeatures.FakeApp.bindService:(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
            pop
        36: .line 139
            aload 0 /* this */
            new android.content.Intent
            dup
            aload 0 /* this */
            ldc Lcom/android/fakeoemfeatures/FakeCoreService3;
            invokespecial android.content.Intent.<init>:(Landroid/content/Context;Ljava/lang/Class;)V
            aload 0 /* this */
            getfield com.android.fakeoemfeatures.FakeApp.mServiceConnection3:Landroid/content/ServiceConnection;
        37: .line 140
            iconst_1
        38: .line 139
            invokevirtual com.android.fakeoemfeatures.FakeApp.bindService:(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
            pop
        39: .line 144
            aload 0 /* this */
            getfield com.android.fakeoemfeatures.FakeApp.mHandler:Landroid/os/Handler;
            iconst_1
            invokevirtual android.os.Handler.sendEmptyMessage:(I)Z
            pop
        40: .line 147
            aload 0 /* this */
            ldc 5242880
            newarray 10
            putfield com.android.fakeoemfeatures.FakeApp.mStuffing:[I
        41: .line 148
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        42: goto 51
        43: .line 150
      StackMap locals: int int
      StackMap stack:
            iload 7 /* i */
            iconst_2
            imul
            bipush 100
            iadd
            istore 8 /* VAL */
        start local 8 // int VAL
        44: .line 151
            iload 7 /* i */
            sipush 4096
            imul
            iconst_4
            idiv
            istore 9 /* OFF */
        start local 9 // int OFF
        45: .line 152
            iconst_0
            istore 10 /* j */
        start local 10 // int j
        46: goto 49
        47: .line 153
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.fakeoemfeatures.FakeApp.mStuffing:[I
            iload 9 /* OFF */
            iload 10 /* j */
            iadd
            iload 8 /* VAL */
            iastore
        48: .line 152
            iinc 10 /* j */ 1
      StackMap locals:
      StackMap stack:
        49: iload 10 /* j */
            sipush 1024
            if_icmplt 47
        end local 10 // int j
        end local 9 // int OFF
        end local 8 // int VAL
        50: .line 148
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        51: iload 7 /* i */
            sipush 5120
            if_icmplt 43
        end local 7 // int i
        52: .line 156
            return
        end local 6 // int maxSize
        end local 5 // android.view.WindowManager$LayoutParams lp
        end local 4 // com.android.fakeoemfeatures.FakeView view
        end local 3 // android.view.Display display
        end local 2 // android.view.WindowManager wm
        end local 1 // java.lang.String processName
        end local 0 // com.android.fakeoemfeatures.FakeApp this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   53     0         this  Lcom/android/fakeoemfeatures/FakeApp;
            1   53     1  processName  Ljava/lang/String;
            5   53     2           wm  Landroid/view/WindowManager;
            6   53     3      display  Landroid/view/Display;
            8   15     4      builder  Landroid/app/AlertDialog$Builder;
           13   15     5       dialog  Landroid/app/Dialog;
           16   53     4         view  Lcom/android/fakeoemfeatures/FakeView;
           20   53     5           lp  Landroid/view/WindowManager$LayoutParams;
           25   53     6      maxSize  I
           42   52     7            i  I
           44   50     8          VAL  I
           45   50     9          OFF  I
           46   50    10            j  I
}
SourceFile: "FakeApp.java"
NestMembers:
  com.android.fakeoemfeatures.FakeApp$1  com.android.fakeoemfeatures.FakeApp$2  com.android.fakeoemfeatures.FakeApp$3  com.android.fakeoemfeatures.FakeApp$4
InnerClasses:
  public Builder = android.app.AlertDialog$Builder of android.app.AlertDialog
  public abstract OnClickListener = android.content.DialogInterface$OnClickListener of android.content.DialogInterface
  public LayoutParams = android.view.ViewGroup$LayoutParams of android.view.ViewGroup
  public LayoutParams = android.view.WindowManager$LayoutParams of android.view.WindowManager
  com.android.fakeoemfeatures.FakeApp$1
  com.android.fakeoemfeatures.FakeApp$2
  com.android.fakeoemfeatures.FakeApp$3
  com.android.fakeoemfeatures.FakeApp$4