ASTifyMethodsText¶
This is an autogenerated documentation file for the script: ASTifyMethodsText
Run it¶
$ ./androanalyze scripts_builtin/ASTifyMethodsText.py --package-names com.spotify.music
View the results¶
Non-Binary¶
$ ./androquery result -sn ASTifyMethodsText -pn com.spotify.music
Empty
Binary¶
For the case that the result may exceed 16MB, it is stored in MongoDB’s gridFS. Therefore we need to use a different query syntax:
View the meta data:
$ ./androquery result -sn ASTifyMethodsText -pn com.spotify.music -nd
{
"chunkSize": 261120,
"filename": "com.spotify.music_2.2.0.636_ASTifyMethodsText.json",
"length": 108420752,
"uploadDate": "2015-06-22T20:29:52.796000",
"md5": "022fd074f370ef3b088a83e48b925079",
"metadata": {
"apk meta": {
"package name": "com.spotify.music",
"version name": "2.2.0.636",
"sha256": "bbf2c7d7b8fbbce68a97a2f0fd7e854e29b1ea9e3836615e7e6a35095915a607",
"import date": "2015-04-14T15:10:06.364000",
"build_date": "2015-02-11T12:25:40",
"path": "/mnt/stuff/btsync/apks_manual_downloads/02.03.2015_top_free_4/apps_topselling_free/MUSIC_AND_AUDIO/com.spotify.music.apk",
"tag": null
},
"script meta": {
"name": "ASTifyMethodsText",
"sha256": "81fbe5fbb8c13435bc760d67b482defc467675f05214bba3b335a6b392f2dbaa",
"analysis date": "2015-06-22T20:13:39.343000",
"version": "0.3"
}
}
}
View the raw data:
$ ./androquery result -sn ASTifyMethodsText -pn com.spotify.music -nd -r
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p1']]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('android/view/Window$Callback', 0)],
['Local', 'p1']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'<init>',
'(Landroid/view/Window$Callback;)V')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'dispatchGenericMotionEvent',
'(Landroid/view/MotionEvent;)Z'),
'dispatchGenericMotionEvent',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('android/view/MotionEvent', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'dispatchGenericMotionEvent',
'(Landroid/view/MotionEvent;)Z')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'dispatchKeyEvent',
'(Landroid/view/KeyEvent;)Z'),
'dispatchKeyEvent',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('android/view/KeyEvent', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'dispatchKeyEvent',
'(Landroid/view/KeyEvent;)Z')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'dispatchKeyShortcutEvent',
'(Landroid/view/KeyEvent;)Z'),
'dispatchKeyShortcutEvent',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('android/view/KeyEvent', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'dispatchKeyShortcutEvent',
'(Landroid/view/KeyEvent;)Z')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'dispatchPopulateAccessibilityEvent',
'(Landroid/view/accessibility/AccessibilityEvent;)Z'),
'dispatchPopulateAccessibilityEvent',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName',
('android/view/accessibility/AccessibilityEvent', 0)],
['Local', 'p2']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'dispatchPopulateAccessibilityEvent',
'(Landroid/view/accessibility/AccessibilityEvent;)Z')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'dispatchTouchEvent',
'(Landroid/view/MotionEvent;)Z'),
'dispatchTouchEvent',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('android/view/MotionEvent', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'dispatchTouchEvent',
'(Landroid/view/MotionEvent;)Z')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'dispatchTrackballEvent',
'(Landroid/view/MotionEvent;)Z'),
'dispatchTrackballEvent',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('android/view/MotionEvent', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'dispatchTrackballEvent',
'(Landroid/view/MotionEvent;)Z')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onActionModeFinished',
'(Landroid/view/ActionMode;)V'),
'onActionModeFinished',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('android/view/ActionMode', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onActionModeFinished',
'(Landroid/view/ActionMode;)V')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onActionModeStarted',
'(Landroid/view/ActionMode;)V'),
'onActionModeStarted',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('android/view/ActionMode', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onActionModeStarted',
'(Landroid/view/ActionMode;)V')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/view/Window$Callback', 'onAttachedToWindow', '()V'),
'onAttachedToWindow',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']]]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['public'],
'params': [],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onAttachedToWindow',
'()V')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/view/Window$Callback', 'onContentChanged', '()V'),
'onContentChanged',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']]]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['public'],
'params': [],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d', 'onContentChanged', '()V')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onCreatePanelMenu',
'(ILandroid/view/Menu;)Z'),
'onCreatePanelMenu',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2'],
['Local', 'p3']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p2']],
[['TypeName', ('android/view/Menu', 0)], ['Local', 'p3']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onCreatePanelMenu',
'(ILandroid/view/Menu;)Z')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onCreatePanelView',
'(I)Landroid/view/View;'),
'onCreatePanelView',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('android/view/View', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onCreatePanelView',
'(I)Landroid/view/View;')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onDetachedFromWindow',
'()V'),
'onDetachedFromWindow',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']]]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['public'],
'params': [],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onDetachedFromWindow',
'()V')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onMenuItemSelected',
'(ILandroid/view/MenuItem;)Z'),
'onMenuItemSelected',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2'],
['Local', 'p3']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p2']],
[['TypeName', ('android/view/MenuItem', 0)], ['Local', 'p3']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onMenuItemSelected',
'(ILandroid/view/MenuItem;)Z')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onMenuOpened',
'(ILandroid/view/Menu;)Z'),
'onMenuOpened',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2'],
['Local', 'p3']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p2']],
[['TypeName', ('android/view/Menu', 0)], ['Local', 'p3']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onMenuOpened',
'(ILandroid/view/Menu;)Z')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onPanelClosed',
'(ILandroid/view/Menu;)V'),
'onPanelClosed',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2'],
['Local', 'p3']]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p2']],
[['TypeName', ('android/view/Menu', 0)], ['Local', 'p3']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onPanelClosed',
'(ILandroid/view/Menu;)V')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onPreparePanel',
'(ILandroid/view/View;Landroid/view/Menu;)Z'),
'onPreparePanel',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2'],
['Local', 'p3'],
['Local', 'p4']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p2']],
[['TypeName', ('android/view/View', 0)], ['Local', 'p3']],
[['TypeName', ('android/view/Menu', 0)], ['Local', 'p4']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onPreparePanel',
'(ILandroid/view/View;Landroid/view/Menu;)Z')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback', 'onSearchRequested', '()Z'),
'onSearchRequested',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']]]]]]],
'comments': [],
'flags': ['public'],
'params': [],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onSearchRequested',
'()Z')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onWindowAttributesChanged',
'(Landroid/view/WindowManager$LayoutParams;)V'),
'onWindowAttributesChanged',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('android/view/WindowManager$LayoutParams', 0)],
['Local', 'p2']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onWindowAttributesChanged',
'(Landroid/view/WindowManager$LayoutParams;)V')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onWindowFocusChanged',
'(Z)V'),
'onWindowFocusChanged',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('.boolean', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onWindowFocusChanged',
'(Z)V')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('android/view/Window$Callback',
'onWindowStartingActionMode',
'(Landroid/view/ActionMode$Callback;)Landroid/view/ActionMode;'),
'onWindowStartingActionMode',
True,
[['FieldAccess',
('com/spotify/mobile/android/util/ui/d',
'a',
'Landroid/view/Window$Callback;'),
['Local', 'this']],
['Local', 'p2']]]]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('android/view/ActionMode$Callback', 0)],
['Local', 'p2']]],
'ret': ['TypeName', ('android/view/ActionMode', 0)],
'triple': ('com/spotify/mobile/android/util/ui/d',
'onWindowStartingActionMode',
'(Landroid/view/ActionMode$Callback;)Landroid/view/ActionMode;')}
{'body': ['BlockStatement',
None,
[['LocalDeclarationStatement',
None,
[['TypeName', ('com/a/a/a/a', 0)], ['Local', 'v0_3']]],
['IfStatement',
None,
['BinaryInfix',
'!=',
['Local', 'p2'],
['Literal', 'null', ('.null', 0)]],
[['BlockStatement',
None,
[['LocalDeclarationStatement',
['MethodInvocation',
('android/os/IBinder',
'queryLocalInterface',
'(Ljava/lang/String;)Landroid/os/IInterface;'),
'queryLocalInterface',
True,
[['Local', 'p2'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]],
[['TypeName', ('com/a/a/a/a', 0)], ['Local', 'v0_1']]],
['IfStatement',
None,
['BinaryInfix',
'||',
['Parenthesis',
[['BinaryInfix',
'==',
['Local', 'v0_1'],
['Literal', 'null', ('.null', 0)]]]],
['Parenthesis',
[['UnaryPrefix',
'!',
['Parenthesis',
[['BinaryInfix',
'instanceof',
['Local', 'v0_1'],
['TypeName', ('com/a/a/a/a', 0)]]]]]]]],
[['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_3'],
['ClassInstanceCreation',
[['Local', 'p2']],
['TypeName', ('com/a/a/a/c', 0)]]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_3'],
['Parenthesis',
[['Cast',
[['TypeName', ('com/a/a/a/a', 0)],
['Local', 'v0_1']]]]]]]]]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_3'], ['Literal', '0', ('.int', 0)]]]]]]]],
['ReturnStatement', ['Local', 'v0_3']]]],
'comments': [],
'flags': ['public', 'static'],
'params': [[['TypeName', ('android/os/IBinder', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('com/a/a/a/a', 0)],
'triple': ('com/a/a/a/b', 'a', '(Landroid/os/IBinder;)Lcom/a/a/a/a;')}
{'body': ['BlockStatement',
None,
[['LocalDeclarationStatement',
None,
[['TypeName', ('.int', 0)], ['Local', 'v0_1']]],
['SwitchStatement',
None,
['Local', 'p9'],
[([1],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'enforceInterface',
'(Ljava/lang/String;)V'),
'enforceInterface',
True,
[['Local', 'p10'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['LocalDeclarationStatement',
['MethodInvocation',
('com/a/a/a/b',
'a',
'(ILjava/lang/String;Ljava/lang/String;)I'),
'a',
True,
[['Local', 'this'],
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]]]],
[['TypeName', ('.int', 0)], ['Local', 'v0_19']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeNoException', '()V'),
'writeNoException',
True,
[['Local', 'p11']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'p11'], ['Local', 'v0_19']]]],
['ExpressionStatement',
['Assignment',
[['Local', 'v0_1'], ['Literal', '1', ('.int', 0)]]]],
['JumpStatement', 'break', None]]]),
([2],
['BlockStatement',
None,
[['LocalDeclarationStatement',
None,
[['TypeName', ('.int', 0)], ['Local', 'v0_13']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'enforceInterface',
'(Ljava/lang/String;)V'),
'enforceInterface',
True,
[['Local', 'p10'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'p10']]],
[['TypeName', ('java/lang/String', 0)],
['Local', 'v1_3']]],
['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]],
[['TypeName', ('java/lang/String', 0)],
['Local', 'v2_3']]],
['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]],
[['TypeName', ('java/lang/String', 0)],
['Local', 'v3_2']]],
['IfStatement',
None,
['BinaryInfix',
'==',
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'p10']]],
['Literal', '0', ('.int', 0)]],
[['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_13'],
['Literal', '0', ('.int', 0)]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_13'],
['Parenthesis',
[['Cast',
[['TypeName',
('android/os/Bundle', 0)],
['MethodInvocation',
('android/os/Parcelable$Creator',
'createFromParcel',
'(Landroid/os/Parcel;)Ljava/lang/Object;'),
'createFromParcel',
True,
[['FieldAccess',
('android/os/Bundle',
'CREATOR',
'Landroid/os/Parcelable$Creator;'),
['TypeName',
('android/os/Bundle', 0)]],
['Local', 'p10']]]]]]]]]]]]]],
['LocalDeclarationStatement',
['MethodInvocation',
('com/a/a/a/b',
'a',
'(ILjava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;'),
'a',
True,
[['Local', 'this'],
['Local', 'v1_3'],
['Local', 'v2_3'],
['Local', 'v3_2'],
['Local', 'v0_13']]],
[['TypeName', ('.int', 0)], ['Local', 'v0_16']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeNoException', '()V'),
'writeNoException',
True,
[['Local', 'p11']]]],
['IfStatement',
None,
['BinaryInfix',
'==',
['Local', 'v0_16'],
['Literal', '0', ('.int', 0)]],
[['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'p11'],
['Literal', '0', ('.int', 0)]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'p11'],
['Literal', '1', ('.int', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Bundle',
'writeToParcel',
'(Landroid/os/Parcel;I)V'),
'writeToParcel',
True,
[['Local', 'v0_16'],
['Local', 'p11'],
['Literal', '1', ('.int', 0)]]]]]]]],
['ExpressionStatement',
['Assignment',
[['Local', 'v0_1'], ['Literal', '1', ('.int', 0)]]]],
['JumpStatement', 'break', None]]]),
([3],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'enforceInterface',
'(Ljava/lang/String;)V'),
'enforceInterface',
True,
[['Local', 'p10'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['LocalDeclarationStatement',
['MethodInvocation',
('com/a/a/a/b',
'a',
'(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;'),
'a',
True,
[['Local', 'this'],
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]]]],
[['TypeName', ('.int', 0)], ['Local', 'v0_10']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeNoException', '()V'),
'writeNoException',
True,
[['Local', 'p11']]]],
['IfStatement',
None,
['BinaryInfix',
'==',
['Local', 'v0_10'],
['Literal', '0', ('.int', 0)]],
[['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'p11'],
['Literal', '0', ('.int', 0)]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'p11'],
['Literal', '1', ('.int', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Bundle',
'writeToParcel',
'(Landroid/os/Parcel;I)V'),
'writeToParcel',
True,
[['Local', 'v0_10'],
['Local', 'p11'],
['Literal', '1', ('.int', 0)]]]]]]]],
['ExpressionStatement',
['Assignment',
[['Local', 'v0_1'], ['Literal', '1', ('.int', 0)]]]],
['JumpStatement', 'break', None]]]),
([4],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'enforceInterface',
'(Ljava/lang/String;)V'),
'enforceInterface',
True,
[['Local', 'p10'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['LocalDeclarationStatement',
['MethodInvocation',
('com/a/a/a/b',
'a',
'(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;'),
'a',
True,
[['Local', 'this'],
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]]]],
[['TypeName', ('.int', 0)], ['Local', 'v0_7']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeNoException', '()V'),
'writeNoException',
True,
[['Local', 'p11']]]],
['IfStatement',
None,
['BinaryInfix',
'==',
['Local', 'v0_7'],
['Literal', '0', ('.int', 0)]],
[['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'p11'],
['Literal', '0', ('.int', 0)]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'p11'],
['Literal', '1', ('.int', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Bundle',
'writeToParcel',
'(Landroid/os/Parcel;I)V'),
'writeToParcel',
True,
[['Local', 'v0_7'],
['Local', 'p11'],
['Literal', '1', ('.int', 0)]]]]]]]],
['ExpressionStatement',
['Assignment',
[['Local', 'v0_1'], ['Literal', '1', ('.int', 0)]]]],
['JumpStatement', 'break', None]]]),
([5],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'enforceInterface',
'(Ljava/lang/String;)V'),
'enforceInterface',
True,
[['Local', 'p10'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['LocalDeclarationStatement',
['MethodInvocation',
('com/a/a/a/b',
'b',
'(ILjava/lang/String;Ljava/lang/String;)I'),
'b',
True,
[['Local', 'this'],
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]],
['MethodInvocation',
('android/os/Parcel',
'readString',
'()Ljava/lang/String;'),
'readString',
True,
[['Local', 'p10']]]]],
[['TypeName', ('.int', 0)], ['Local', 'v0_4']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeNoException', '()V'),
'writeNoException',
True,
[['Local', 'p11']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'p11'], ['Local', 'v0_4']]]],
['ExpressionStatement',
['Assignment',
[['Local', 'v0_1'], ['Literal', '1', ('.int', 0)]]]],
['JumpStatement', 'break', None]]]),
([1598968902],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'p11'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['ExpressionStatement',
['Assignment',
[['Local', 'v0_1'], ['Literal', '1', ('.int', 0)]]]],
['JumpStatement', 'break', None]]]),
([None],
['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_1'],
['MethodInvocation',
('android/os/Binder',
'onTransact',
'(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z'),
'onTransact',
True,
[['Local', 'super'],
['Local', 'p9'],
['Local', 'p10'],
['Local', 'p11'],
['Local', 'p12']]]]]]]])]],
['ReturnStatement', ['Local', 'v0_1']]]],
'comments': [],
'flags': ['public'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p9']],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'p10']],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'p11']],
[['TypeName', ('.int', 0)], ['Local', 'p12']]],
'ret': ['TypeName', ('.boolean', 0)],
'triple': ('com/a/a/a/b',
'onTransact',
'(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/a/a/a/c', 'a', 'Landroid/os/IBinder;'),
['Local', 'this']],
['Local', 'p1']]]],
['ReturnStatement', None]]],
'comments': [],
'flags': [],
'params': [[['TypeName', ('android/os/IBinder', 0)], ['Local', 'p1']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/a/a/a/c', '<init>', '(Landroid/os/IBinder;)V')}
{'body': ['BlockStatement',
None,
[['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'obtain', '()Landroid/os/Parcel;'),
'obtain',
True,
[['TypeName', ('android/os/Parcel', 0)]]],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'v1']]],
['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'obtain', '()Landroid/os/Parcel;'),
'obtain',
True,
[['TypeName', ('android/os/Parcel', 0)]]],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'v2']]],
['TryStatement',
None,
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeInterfaceToken',
'(Ljava/lang/String;)V'),
'writeInterfaceToken',
True,
[['Local', 'v1'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'v1'], ['Local', 'p6']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p7']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p8']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/IBinder',
'transact',
'(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z'),
'transact',
True,
[['FieldAccess',
('com/a/a/a/c', 'a', 'Landroid/os/IBinder;'),
['Local', 'this']],
['Literal', '1', ('.int', 0)],
['Local', 'v1'],
['Local', 'v2'],
['Literal', '0', ('.int', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'readException', '()V'),
'readException',
True,
[['Local', 'v2']]]],
['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'v2']]],
[['TypeName', ('java/lang/Throwable', 0)],
['Local', 'v0_2']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v2']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v1']]]],
['ReturnStatement', ['Local', 'v0_2']]]],
[([['TypeName', ('java/lang/Throwable', 0)],
['Local', 'v0_3']],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v2']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v1']]]],
['ThrowStatement', ['Local', 'v0_3']]]])]]]],
'comments': [],
'flags': ['public', 'final'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p6']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p7']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p8']]],
'ret': ['TypeName', ('.int', 0)],
'triple': ('com/a/a/a/c', 'a', '(ILjava/lang/String;Ljava/lang/String;)I')}
{'body': ['BlockStatement',
None,
[['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'obtain', '()Landroid/os/Parcel;'),
'obtain',
True,
[['TypeName', ('android/os/Parcel', 0)]]],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'v1']]],
['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'obtain', '()Landroid/os/Parcel;'),
'obtain',
True,
[['TypeName', ('android/os/Parcel', 0)]]],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'v2']]],
['TryStatement',
None,
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeInterfaceToken',
'(Ljava/lang/String;)V'),
'writeInterfaceToken',
True,
[['Local', 'v1'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'v1'], ['Local', 'p6']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p7']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p8']]]]]],
[([['TypeName', ('.int', 0)], ['Local', 'v0_9']],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v2']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v1']]]],
['ThrowStatement', ['Local', 'v0_9']]]])]],
['IfStatement',
None,
['BinaryInfix',
'==',
['Local', 'p9'],
['Literal', 'null', ('.null', 0)]],
[['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'v1'], ['Literal', '0', ('.int', 0)]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'v1'], ['Literal', '1', ('.int', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Bundle',
'writeToParcel',
'(Landroid/os/Parcel;I)V'),
'writeToParcel',
True,
[['Local', 'p9'],
['Local', 'v1'],
['Literal', '0', ('.int', 0)]]]]]]]],
['LocalDeclarationStatement',
None,
[['TypeName', ('.int', 0)], ['Local', 'v0_6']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/IBinder',
'transact',
'(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z'),
'transact',
True,
[['FieldAccess',
('com/a/a/a/c', 'a', 'Landroid/os/IBinder;'),
['Local', 'this']],
['Literal', '2', ('.int', 0)],
['Local', 'v1'],
['Local', 'v2'],
['Literal', '0', ('.int', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'readException', '()V'),
'readException',
True,
[['Local', 'v2']]]],
['IfStatement',
None,
['BinaryInfix',
'==',
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'v2']]],
['Literal', '0', ('.int', 0)]],
[['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_6'], ['Literal', '0', ('.int', 0)]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_6'],
['Parenthesis',
[['Cast',
[['TypeName', ('android/os/Bundle', 0)],
['MethodInvocation',
('android/os/Parcelable$Creator',
'createFromParcel',
'(Landroid/os/Parcel;)Ljava/lang/Object;'),
'createFromParcel',
True,
[['FieldAccess',
('android/os/Bundle',
'CREATOR',
'Landroid/os/Parcelable$Creator;'),
['TypeName',
('android/os/Bundle', 0)]],
['Local', 'v2']]]]]]]]]]]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v2']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v1']]]],
['ReturnStatement', ['Local', 'v0_6']]]],
'comments': [],
'flags': ['public', 'final'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p6']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p7']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p8']],
[['TypeName', ('android/os/Bundle', 0)], ['Local', 'p9']]],
'ret': ['TypeName', ('android/os/Bundle', 0)],
'triple': ('com/a/a/a/c',
'a',
'(ILjava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;')}
{'body': ['BlockStatement',
None,
[['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'obtain', '()Landroid/os/Parcel;'),
'obtain',
True,
[['TypeName', ('android/os/Parcel', 0)]]],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'v1']]],
['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'obtain', '()Landroid/os/Parcel;'),
'obtain',
True,
[['TypeName', ('android/os/Parcel', 0)]]],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'v2']]],
['TryStatement',
None,
['BlockStatement',
None,
[['LocalDeclarationStatement',
None,
[['TypeName', ('.int', 0)], ['Local', 'v0_3']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeInterfaceToken',
'(Ljava/lang/String;)V'),
'writeInterfaceToken',
True,
[['Local', 'v1'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'v1'], ['Local', 'p6']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p7']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p8']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p9']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/IBinder',
'transact',
'(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z'),
'transact',
True,
[['FieldAccess',
('com/a/a/a/c', 'a', 'Landroid/os/IBinder;'),
['Local', 'this']],
['Literal', '4', ('.int', 0)],
['Local', 'v1'],
['Local', 'v2'],
['Literal', '0', ('.int', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'readException', '()V'),
'readException',
True,
[['Local', 'v2']]]]]],
[([['TypeName', ('.int', 0)], ['Local', 'v0_6']],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v2']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v1']]]],
['ThrowStatement', ['Local', 'v0_6']]]])]],
['IfStatement',
None,
['BinaryInfix',
'==',
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'v2']]],
['Literal', '0', ('.int', 0)]],
[['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_3'], ['Literal', '0', ('.int', 0)]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_3'],
['Parenthesis',
[['Cast',
[['TypeName', ('android/os/Bundle', 0)],
['MethodInvocation',
('android/os/Parcelable$Creator',
'createFromParcel',
'(Landroid/os/Parcel;)Ljava/lang/Object;'),
'createFromParcel',
True,
[['FieldAccess',
('android/os/Bundle',
'CREATOR',
'Landroid/os/Parcelable$Creator;'),
['TypeName',
('android/os/Bundle', 0)]],
['Local', 'v2']]]]]]]]]]]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v2']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v1']]]],
['ReturnStatement', ['Local', 'v0_3']]]],
'comments': [],
'flags': ['public', 'final'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p6']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p7']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p8']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p9']]],
'ret': ['TypeName', ('android/os/Bundle', 0)],
'triple': ('com/a/a/a/c',
'a',
'(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;')}
{'body': ['BlockStatement',
None,
[['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'obtain', '()Landroid/os/Parcel;'),
'obtain',
True,
[['TypeName', ('android/os/Parcel', 0)]]],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'v1']]],
['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'obtain', '()Landroid/os/Parcel;'),
'obtain',
True,
[['TypeName', ('android/os/Parcel', 0)]]],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'v2']]],
['TryStatement',
None,
['BlockStatement',
None,
[['LocalDeclarationStatement',
None,
[['TypeName', ('.int', 0)], ['Local', 'v0_3']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeInterfaceToken',
'(Ljava/lang/String;)V'),
'writeInterfaceToken',
True,
[['Local', 'v1'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'v1'], ['Local', 'p6']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p7']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p8']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p9']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p10']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/IBinder',
'transact',
'(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z'),
'transact',
True,
[['FieldAccess',
('com/a/a/a/c', 'a', 'Landroid/os/IBinder;'),
['Local', 'this']],
['Literal', '3', ('.int', 0)],
['Local', 'v1'],
['Local', 'v2'],
['Literal', '0', ('.int', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'readException', '()V'),
'readException',
True,
[['Local', 'v2']]]]]],
[([['TypeName', ('.int', 0)], ['Local', 'v0_6']],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v2']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v1']]]],
['ThrowStatement', ['Local', 'v0_6']]]])]],
['IfStatement',
None,
['BinaryInfix',
'==',
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'v2']]],
['Literal', '0', ('.int', 0)]],
[['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_3'], ['Literal', '0', ('.int', 0)]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_3'],
['Parenthesis',
[['Cast',
[['TypeName', ('android/os/Bundle', 0)],
['MethodInvocation',
('android/os/Parcelable$Creator',
'createFromParcel',
'(Landroid/os/Parcel;)Ljava/lang/Object;'),
'createFromParcel',
True,
[['FieldAccess',
('android/os/Bundle',
'CREATOR',
'Landroid/os/Parcelable$Creator;'),
['TypeName',
('android/os/Bundle', 0)]],
['Local', 'v2']]]]]]]]]]]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v2']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v1']]]],
['ReturnStatement', ['Local', 'v0_3']]]],
'comments': [],
'flags': ['public', 'final'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p6']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p7']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p8']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p9']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p10']]],
'ret': ['TypeName', ('android/os/Bundle', 0)],
'triple': ('com/a/a/a/c',
'a',
'(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['FieldAccess',
('com/a/a/a/c', 'a', 'Landroid/os/IBinder;'),
['Local', 'this']]]]],
'comments': [],
'flags': ['public', 'final'],
'params': [],
'ret': ['TypeName', ('android/os/IBinder', 0)],
'triple': ('com/a/a/a/c', 'asBinder', '()Landroid/os/IBinder;')}
{'body': ['BlockStatement',
None,
[['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'obtain', '()Landroid/os/Parcel;'),
'obtain',
True,
[['TypeName', ('android/os/Parcel', 0)]]],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'v1']]],
['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'obtain', '()Landroid/os/Parcel;'),
'obtain',
True,
[['TypeName', ('android/os/Parcel', 0)]]],
[['TypeName', ('android/os/Parcel', 0)], ['Local', 'v2']]],
['TryStatement',
None,
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeInterfaceToken',
'(Ljava/lang/String;)V'),
'writeInterfaceToken',
True,
[['Local', 'v1'],
['Literal',
u'"com.android.vending.billing.IInAppBillingService"',
('java/lang/String', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'writeInt', '(I)V'),
'writeInt',
True,
[['Local', 'v1'], ['Local', 'p6']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p7']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel',
'writeString',
'(Ljava/lang/String;)V'),
'writeString',
True,
[['Local', 'v1'], ['Local', 'p8']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/IBinder',
'transact',
'(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z'),
'transact',
True,
[['FieldAccess',
('com/a/a/a/c', 'a', 'Landroid/os/IBinder;'),
['Local', 'this']],
['Literal', '5', ('.int', 0)],
['Local', 'v1'],
['Local', 'v2'],
['Literal', '0', ('.int', 0)]]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'readException', '()V'),
'readException',
True,
[['Local', 'v2']]]],
['LocalDeclarationStatement',
['MethodInvocation',
('android/os/Parcel', 'readInt', '()I'),
'readInt',
True,
[['Local', 'v2']]],
[['TypeName', ('java/lang/Throwable', 0)],
['Local', 'v0_2']]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v2']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v1']]]],
['ReturnStatement', ['Local', 'v0_2']]]],
[([['TypeName', ('java/lang/Throwable', 0)],
['Local', 'v0_3']],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v2']]]],
['ExpressionStatement',
['MethodInvocation',
('android/os/Parcel', 'recycle', '()V'),
'recycle',
True,
[['Local', 'v1']]]],
['ThrowStatement', ['Local', 'v0_3']]]])]]]],
'comments': [],
'flags': ['public', 'final'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p6']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p7']],
[['TypeName', ('java/lang/String', 0)], ['Local', 'p8']]],
'ret': ['TypeName', ('.int', 0)],
'triple': ('com/a/a/a/c', 'b', '(ILjava/lang/String;Ljava/lang/String;)I')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a$1', 'a', 'Lcom/b/a/a;'),
['Local', 'this']],
['Local', 'p1']]]],
['ReturnStatement', None]]],
'comments': [],
'flags': [],
'params': [[['TypeName', ('com/b/a/a', 0)], ['Local', 'p1']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/b/a/a$1', '<init>', '(Lcom/b/a/a;)V')}
{'body': ['BlockStatement',
None,
[['TryStatement',
None,
['BlockStatement',
None,
[['IfStatement',
None,
['BinaryInfix',
'!=',
['MethodInvocation',
('com/b/a/a', 'a', '(Lcom/b/a/a;)Ljava/io/Writer;'),
'a',
True,
[['TypeName', ('com/b/a/a', 0)],
['FieldAccess',
('com/b/a/a$1', 'a', 'Lcom/b/a/a;'),
['Local', 'this']]]],
['Literal', 'null', ('.null', 0)]],
[['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('com/b/a/a', 'b', '(Lcom/b/a/a;)V'),
'b',
True,
[['TypeName', ('com/b/a/a', 0)],
['FieldAccess',
('com/b/a/a$1', 'a', 'Lcom/b/a/a;'),
['Local', 'this']]]]],
['IfStatement',
None,
['MethodInvocation',
('com/b/a/a', 'c', '(Lcom/b/a/a;)Z'),
'c',
True,
[['TypeName', ('com/b/a/a', 0)],
['FieldAccess',
('com/b/a/a$1', 'a', 'Lcom/b/a/a;'),
['Local', 'this']]]],
[['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('com/b/a/a', 'd', '(Lcom/b/a/a;)V'),
'd',
True,
[['TypeName', ('com/b/a/a', 0)],
['FieldAccess',
('com/b/a/a$1', 'a', 'Lcom/b/a/a;'),
['Local', 'this']]]]],
['ExpressionStatement',
['MethodInvocation',
('com/b/a/a', 'e', '(Lcom/b/a/a;)I'),
'e',
True,
[['TypeName', ('com/b/a/a', 0)],
['FieldAccess',
('com/b/a/a$1', 'a', 'Lcom/b/a/a;'),
['Local', 'this']]]]]]]]]]],
['BlockStatement', None, []]]]]],
[([['TypeName', ('com/b/a/a', 0)], ['Local', 'v0_7']],
['BlockStatement',
None,
[['ThrowStatement', ['Local', 'v0_7']]]])]],
['ReturnStatement', ['Literal', '0', ('.int', 0)]]]],
'comments': [],
'flags': ['private'],
'params': [],
'ret': ['TypeName', ('java/lang/Void', 0)],
'triple': ('com/b/a/a$1', 'a', '()Ljava/lang/Void;')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['MethodInvocation',
('com/b/a/a$1', 'a', '()Ljava/lang/Void;'),
'a',
True,
[['Local', 'this']]]]]],
'comments': [],
'flags': ['public', 'final', 'synthetic'],
'params': [],
'ret': ['TypeName', ('java/lang/Object', 0)],
'triple': ('com/b/a/a$1', 'call', '()Ljava/lang/Object;')}
{'body': ['BlockStatement', None, [['ReturnStatement', None]]],
'comments': [],
'flags': [],
'params': [],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/b/a/a$2', '<init>', '()V')}
{'body': ['BlockStatement', None, [['ReturnStatement', None]]],
'comments': [],
'flags': ['public', 'final'],
'params': [[['TypeName', ('.int', 0)], ['Local', 'p1']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/b/a/a$2', 'write', '(I)V')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a', 'a', 'Ljava/util/regex/Pattern;'),
['TypeName', ('com/b/a/a', 0)]],
['MethodInvocation',
('java/util/regex/Pattern',
'compile',
'(Ljava/lang/String;)Ljava/util/regex/Pattern;'),
'compile',
True,
[['TypeName', ('java/util/regex/Pattern', 0)],
['Literal',
u'"[a-z0-9_-]{1,64}"',
('java/lang/String', 0)]]]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a', 'p', 'Ljava/io/OutputStream;'),
['TypeName', ('com/b/a/a', 0)]],
['ClassInstanceCreation',
[],
['TypeName', ('com/b/a/a$2', 0)]]]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['static'],
'params': [],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/b/a/a', '<clinit>', '()V')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['FieldAccess', ('com/b/a/a', 'j', 'J'), ['Local', 'this']],
['Literal', '0L', ('.long', 0)]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a', 'l', 'Ljava/util/LinkedHashMap;'),
['Local', 'this']],
['ClassInstanceCreation',
[['Literal', '0', ('.int', 0)],
['Literal', '1061158912', ('.int', 0)],
['Literal', '1', ('.int', 0)]],
['TypeName', ('java/util/LinkedHashMap', 0)]]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess', ('com/b/a/a', 'n', 'J'), ['Local', 'this']],
['Literal', '0L', ('.long', 0)]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a',
'b',
'Ljava/util/concurrent/ThreadPoolExecutor;'),
['Local', 'this']],
['ClassInstanceCreation',
[['Literal', '0', ('.int', 0)],
['Literal', '1', ('.int', 0)],
['Literal', '60L', ('.long', 0)],
['FieldAccess',
('java/util/concurrent/TimeUnit',
'SECONDS',
'Ljava/util/concurrent/TimeUnit;'),
['TypeName', ('java/util/concurrent/TimeUnit', 0)]],
['ClassInstanceCreation',
[],
['TypeName',
('java/util/concurrent/LinkedBlockingQueue', 0)]]],
['TypeName',
('java/util/concurrent/ThreadPoolExecutor', 0)]]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a', 'o', 'Ljava/util/concurrent/Callable;'),
['Local', 'this']],
['ClassInstanceCreation',
[['Local', 'this']],
['TypeName', ('com/b/a/a$1', 0)]]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a', 'c', 'Ljava/io/File;'),
['Local', 'this']],
['Local', 'p9']]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess', ('com/b/a/a', 'g', 'I'), ['Local', 'this']],
['Literal', '1', ('.int', 0)]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a', 'd', 'Ljava/io/File;'),
['Local', 'this']],
['ClassInstanceCreation',
[['Local', 'p9'],
['Literal', u'"journal"', ('java/lang/String', 0)]],
['TypeName', ('java/io/File', 0)]]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a', 'e', 'Ljava/io/File;'),
['Local', 'this']],
['ClassInstanceCreation',
[['Local', 'p9'],
['Literal', u'"journal.tmp"', ('java/lang/String', 0)]],
['TypeName', ('java/io/File', 0)]]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a', 'f', 'Ljava/io/File;'),
['Local', 'this']],
['ClassInstanceCreation',
[['Local', 'p9'],
['Literal', u'"journal.bkp"', ('java/lang/String', 0)]],
['TypeName', ('java/io/File', 0)]]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess', ('com/b/a/a', 'i', 'I'), ['Local', 'this']],
['Literal', '1', ('.int', 0)]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess', ('com/b/a/a', 'h', 'J'), ['Local', 'this']],
['Literal', '10485760L', ('.long', 0)]]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['private'],
'params': [[['TypeName', ('java/io/File', 0)], ['Local', 'p9']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/b/a/a', '<init>', '(Ljava/io/File;)V')}
{'body': ['BlockStatement',
None,
[['IfStatement',
None,
['BinaryInfix',
'>',
['Literal', '10485760L', ('.long', 0)],
['Literal', '0L', ('.long', 0)]],
[['BlockStatement',
None,
[['LocalDeclarationStatement',
['ClassInstanceCreation',
[['Local', 'p6'],
['Literal',
u'"journal.bkp"',
('java/lang/String', 0)]],
['TypeName', ('java/io/File', 0)]],
[['TypeName', ('.void', 0)], ['Local', 'v0_3']]],
['IfStatement',
None,
['MethodInvocation',
('java/io/File', 'exists', '()Z'),
'exists',
True,
[['Local', 'v0_3']]],
[['BlockStatement',
None,
[['LocalDeclarationStatement',
['ClassInstanceCreation',
[['Local', 'p6'],
['Literal',
u'"journal"',
('java/lang/String', 0)]],
['TypeName', ('java/io/File', 0)]],
[['TypeName', ('java/lang/String', 0)],
['Local', 'v1_3']]],
['IfStatement',
None,
['UnaryPrefix',
'!',
['MethodInvocation',
('java/io/File', 'exists', '()Z'),
'exists',
True,
[['Local', 'v1_3']]]],
[['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('com/b/a/a',
'a',
'(Ljava/io/File;Ljava/io/File;Z)V'),
'a',
True,
[['TypeName', ('com/b/a/a', 0)],
['Local', 'v0_3'],
['Local', 'v1_3'],
['Literal', '0', ('.int', 0)]]]]]],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('java/io/File', 'delete', '()Z'),
'delete',
True,
[['Local', 'v0_3']]]]]]]]]]]],
['LocalDeclarationStatement',
None,
[['TypeName', ('.void', 0)], ['Local', 'v0_7']]],
['LocalDeclarationStatement',
['ClassInstanceCreation',
[['Local', 'p6']],
['TypeName', ('com/b/a/a', 0)]],
[['TypeName', ('.void', 0)], ['Local', 'v0_5']]],
['IfStatement',
None,
['UnaryPrefix',
'!',
['MethodInvocation',
('java/io/File', 'exists', '()Z'),
'exists',
True,
[['FieldAccess',
('com/b/a/a', 'd', 'Ljava/io/File;'),
['Local', 'v0_5']]]]],
[['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('java/io/File', 'mkdirs', '()Z'),
'mkdirs',
True,
[['Local', 'p6']]]],
['ExpressionStatement',
['Assignment',
[['Local', 'v0_7'],
['MethodInvocation',
('com/b/a/a', 'e', '()V'),
'e',
True,
[['ClassInstanceCreation',
[['Local', 'p6']],
['TypeName', ('com/b/a/a', 0)]]]]]]]]],
['BlockStatement',
None,
[['TryStatement',
None,
['BlockStatement',
None,
[['ExpressionStatement',
['Assignment',
[['Local', 'v0_7'],
['MethodInvocation',
('com/b/a/a', 'd', '()V'),
'd',
True,
[['MethodInvocation',
('com/b/a/a', 'c', '()V'),
'c',
True,
[['Local', 'v0_5']]]]]]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a',
'k',
'Ljava/io/Writer;'),
['Local', 'v0_7']],
['ClassInstanceCreation',
[['ClassInstanceCreation',
[['ClassInstanceCreation',
[['FieldAccess',
('com/b/a/a',
'd',
'Ljava/io/File;'),
['Local', 'v0_7']],
['Literal',
'1',
('.int', 0)]],
['TypeName',
('java/io/FileOutputStream',
0)]],
['FieldAccess',
('com/b/a/g',
'a',
'Ljava/nio/charset/Charset;'),
['TypeName',
('com/b/a/g', 0)]]],
['TypeName',
('java/io/OutputStreamWriter',
0)]]],
['TypeName',
('java/io/BufferedWriter', 0)]]]]]]],
[([['TypeName', ('java/lang/String', 0)],
['Local', 'v1_8']],
['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('java/io/PrintStream',
'println',
'(Ljava/lang/String;)V'),
'println',
True,
[['FieldAccess',
('java/lang/System',
'out',
'Ljava/io/PrintStream;'),
['TypeName',
('java/lang/System', 0)]],
['MethodInvocation',
('java/lang/StringBuilder',
'toString',
'()Ljava/lang/String;'),
'toString',
True,
[['MethodInvocation',
('java/lang/StringBuilder',
'append',
'(Ljava/lang/String;)Ljava/lang/StringBuilder;'),
'append',
True,
[['MethodInvocation',
('java/lang/StringBuilder',
'append',
'(Ljava/lang/String;)Ljava/lang/StringBuilder;'),
'append',
True,
[['MethodInvocation',
('java/lang/StringBuilder',
'append',
'(Ljava/lang/String;)Ljava/lang/StringBuilder;'),
'append',
True,
[['MethodInvocation',
('java/lang/StringBuilder',
'append',
'(Ljava/lang/Object;)Ljava/lang/StringBuilder;'),
'append',
True,
[['ClassInstanceCreation',
[['Literal',
u'"DiskLruCache "',
('java/lang/String',
0)]],
['TypeName',
('java/lang/StringBuilder',
0)]],
['Local',
'p6']]],
['Literal',
u'" is corrupt: "',
('java/lang/String',
0)]]],
['MethodInvocation',
('java/io/IOException',
'getMessage',
'()Ljava/lang/String;'),
'getMessage',
True,
[['Local', 'v1_8']]]]],
['Literal',
u'", removing"',
('java/lang/String', 0)]]]]]]]],
['ExpressionStatement',
['MethodInvocation',
('com/b/a/a', 'i', '()V'),
'i',
True,
[['Local', 'v0_7']]]]]])]]]]]],
['ReturnStatement', ['Local', 'v0_7']]]],
['BlockStatement',
None,
[['ThrowStatement',
['ClassInstanceCreation',
[['Literal',
u'"maxSize <= 0"',
('java/lang/String', 0)]],
['TypeName',
('java/lang/IllegalArgumentException', 0)]]]]]]]]],
'comments': [],
'flags': ['public', 'static'],
'params': [[['TypeName', ('java/io/File', 0)], ['Local', 'p6']]],
'ret': ['TypeName', ('com/b/a/a', 0)],
'triple': ('com/b/a/a', 'a', '(Ljava/io/File;)Lcom/b/a/a;')}
{'body': ['BlockStatement',
None,
[['ReturnStatement',
['FieldAccess',
('com/b/a/a', 'k', 'Ljava/io/Writer;'),
['Local', 'p1']]]]],
'comments': [],
'flags': ['static', 'synthetic'],
'params': [[['TypeName', ('com/b/a/a', 0)], ['Local', 'p1']]],
'ret': ['TypeName', ('java/io/Writer', 0)],
'triple': ('com/b/a/a', 'a', '(Lcom/b/a/a;)Ljava/io/Writer;')}
{'body': ['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('com/b/a/a', 'a', '(Lcom/b/a/b;Z)V'),
'a',
True,
[['Local', 'p0'], ['Local', 'p1'], ['Local', 'p2']]]],
['ReturnStatement', None]]],
'comments': [],
'flags': ['static', 'synthetic'],
'params': [[['TypeName', ('com/b/a/a', 0)], ['Local', 'p0']],
[['TypeName', ('com/b/a/b', 0)], ['Local', 'p1']],
[['TypeName', ('.boolean', 0)], ['Local', 'p2']]],
'ret': ['TypeName', ('.void', 0)],
'triple': ('com/b/a/a', 'a', '(Lcom/b/a/a;Lcom/b/a/b;Z)V')}
{'body': ['BlockStatement',
None,
[['LocalDeclarationStatement',
['Literal', '0', ('.int', 0)],
[['TypeName', ('java/util/concurrent/ThreadPoolExecutor', 0)],
['Local', 'v0_0']]],
['TryStatement',
None,
['BlockStatement',
None,
[['LocalDeclarationStatement',
['FieldAccess',
('com/b/a/b', 'a', 'Lcom/b/a/d;'),
['Local', 'p11']],
[['TypeName', ('java/lang/StringBuilder', 0)],
['Local', 'v2_0']]]]],
[([['TypeName',
('java/util/concurrent/ThreadPoolExecutor', 0)],
['Local', 'v0_20']],
['BlockStatement',
None,
[['ThrowStatement', ['Local', 'v0_20']]]])]],
['IfStatement',
None,
['BinaryInfix',
'==',
['FieldAccess',
('com/b/a/d', 'd', 'Lcom/b/a/b;'),
['Local', 'v2_0']],
['Local', 'p11']],
[['BlockStatement',
None,
[['IfStatement',
None,
['BinaryInfix',
'||',
['Parenthesis',
[['UnaryPrefix', '!', ['Local', 'p12']]]],
['Parenthesis',
[['FieldAccess',
('com/b/a/d', 'c', 'Z'),
['Local', 'v2_0']]]]],
[['BlockStatement',
None,
[['WhileStatement',
None,
['BinaryInfix',
'<',
['Local', 'v0_0'],
['FieldAccess',
('com/b/a/a', 'i', 'I'),
['Local', 'this']]],
['BlockStatement',
None,
[['LocalDeclarationStatement',
['MethodInvocation',
('com/b/a/d', 'b', '(I)Ljava/io/File;'),
'b',
True,
[['Local', 'v2_0'], ['Local', 'v0_0']]],
[['TypeName', ('.int', 0)],
['Local', 'v1_17']]],
['IfStatement',
None,
['UnaryPrefix', '!', ['Local', 'p12']],
[['BlockStatement',
None,
[['ExpressionStatement',
['MethodInvocation',
('com/b/a/a',
'b',
'(Ljava/io/File;)V'),
'b',
True,
[['TypeName',
('com/b/a/a', 0)],
['Local', 'v1_17']]]]]],
['BlockStatement',
None,
[['IfStatement',
None,
['MethodInvocation',
('java/io/File',
'exists',
'()Z'),
'exists',
True,
[['Local', 'v1_17']]],
[['BlockStatement',
None,
[['LocalDeclarationStatement',
['MethodInvocation',
('com/b/a/d',
'a',
'(I)Ljava/io/File;'),
'a',
True,
[['Local', 'v2_0'],
['Local', 'v0_0']]],
[['TypeName',
('.boolean', 0)],
['Local', 'v3_7']]],
['ExpressionStatement',
['MethodInvocation',
('java/io/File',
'renameTo',
'(Ljava/io/File;)Z'),
'renameTo',
True,
[['Local', 'v1_17'],
['Local', 'v3_7']]]],
['LocalDeclarationStatement',
['ArrayAccess',
[['FieldAccess',
('com/b/a/d',
'b',
'[J'),
['Local', 'v2_0']],
['Local', 'v0_0']]],
[['TypeName',
('.long', 0)],
['Local', 'v4_2']]],
['LocalDeclarationStatement',
['MethodInvocation',
('java/io/File',
'length',
'()J'),
'length',
True,
[['Local', 'v3_7']]],
[['TypeName',
('.long', 0)],
['Local', 'v6']]],
['ExpressionStatement',
['Assignment',
[['ArrayAccess',
[['FieldAccess',
('com/b/a/d',
'b',
'[J'),
['Local',
'v2_0']],
['Local', 'v0_0']]],
['Local', 'v6']]]],
['ExpressionStatement',
['Assignment',
[['FieldAccess',
('com/b/a/a',
'j',
'J'),
['Local', 'this']],
['Parenthesis',
[['BinaryInfix',
'+',
['Parenthesis',
[['BinaryInfix',
'-',
['FieldAccess',
('com/b/a/a',
'j',
'J'),
['Local',
'this']],
['Local',
'v4_2']]]],
['Local', 'v6']]]]]]]]]]]]]]],
['ExpressionStatement',
['Assignment',
[['Local', 'v0_0'],
['Parenthesis',
[['BinaryInfix',
'+',
Source¶
# encoding: utf-8
__author__ = "Nils Tobias Schmidt"
__email__ = "schmidt89 at informatik.uni-marburg.de"
from pprint import pformat
from androlyze.log.Log import log
from androlyze.model.script.AndroScript import AndroScript
from androlyze.model.script.util import AnaUtil
class ASTifyMethodsText(AndroScript):
''' Get the AST (abstract syntax tree) for each method. '''
VERSION = "0.3"
def _analyze(self, apk, dalvik_vm_format, vm_analysis, gvm_analysis, *args, **kwargs):
# CFG
for encoded_method in dalvik_vm_format.get_methods():
try:
method_analysis = vm_analysis.get_method(encoded_method)
if encoded_method.get_code() == None:
continue
classname = encoded_method.get_class_name()
# skip android classes due to mongo db document limit
if classname.find("Landroid") != -1:
continue
ast = None
if method_analysis is not None:
ast = AnaUtil.ast_for_method_analysis(method_analysis)
if ast is not None:
self.cres += '%s\n\n' % pformat(ast)
except Exception as e:
log.exception(e)
def custom_result_object(self):
return ("", "json")
############################################################
#---Options
############################################################
def needs_dalvik_vm_format(self):
return True
def needs_vmanalysis(self):
return True