import json
from pprint import pprint

#with open("/Users/guardianangel/Desktop/test.json") as data_file:
#    data = json.load(data_file)
#pprint(data)

array = []
json_file = {}
def make(classname,method,obj,type):
    json = {}
    json["class_name"]=classname
    json["method"]=method
    json["thisObject"]=obj
    json["type"]=type
    array.append(json)

# fingerprint

# globals

def network():
    make("javax.net.ssl.HttpsURLConnection","getDefaultHostnameVerifier",False,"network")
    make("javax.net.ssl.HttpsURLConnection","getDefaultSSLSocketFactory",False,"network")
    make("javax.net.ssl.HttpsURLConnection","getHostnameVerifier",False,"network")
    make("javax.net.ssl.HttpsURLConnection","getLocalPrincipal",False,"network")
    make("javax.net.ssl.HttpsURLConnection","getSSLSocketFactory",False,"network")
    make("javax.net.ssl.HttpsURLConnection","setDefaultHostnameVerifier",False,"network")
    make("javax.net.ssl.HttpsURLConnection","setDefaultSSLSocketFactory",False,"network")
    make("javax.net.ssl.HttpsURLConnection","setHostnameVerifier",False,"network")

    make("java.net.HttpURLConnection",None,False,"network")
    make("java.net.HttpURLConnection","getErrorStream",False,"network")
    make("java.net.HttpURLConnection","getFollowRedirects",False,"network")
    make("java.net.HttpURLConnection","getHeaderFieldDate",False,"network")
    make("java.net.HttpURLConnection","getInstanceFollowRedirects",False,"network")
    make("java.net.HttpURLConnection","getPermission",False,"network")
    make("java.net.HttpURLConnection","setChunkedStreamingMode",False,"network")
    make("java.net.HttpURLConnection","setFixedLengthStreamingMode",False,"network")
    make("java.net.HttpURLConnection","setFollowRedirects",False,"network")
    make("java.net.HttpURLConnection","setInstanceFollowRedirects",False,"network")
    make("java.net.HttpURLConnection","setRequestMethod",False,"network")
    make("java.net.HttpURLConnection","setDoOutput",False,"network")

    make("javax.net.ssl.SSLContext", "getInstance",False,"network")
    make("javax.net.ssl.SSLContext", "init",False,"network")
    make("javax.net.ssl.SSLContext", "createSSLEngine",False,"network")
    make("javax.net.ssl.SSLContext", "getDefault",False,"network")

    make("javax.net.ssl.SSLParameters", None,False,"network")
    make("javax.net.ssl.SSLParameters", "setCipherSuites",False,"network")
    make("javax.net.ssl.SSLParameters", "setNeedClientAuth",False,"network")
    make("javax.net.ssl.SSLParameters", "setProtocols",False,"network")
    make("javax.net.ssl.SSLParameters", "setWantClientAuth",False,"network")

    make("android.net.SSLCertificateSocketFactory",None,False,"network")
    make("android.net.SSLCertificateSocketFactory","getDefault",False,"network")
    make("android.net.SSLCertificateSocketFactory","createSocket",False,"network")
    make("android.net.SSLCertificateSocketFactory","getHttpSocketFactory",False,"network")
    make("android.net.SSLCertificateSocketFactory","getNpnSelectedProtocol",False,"network")
    make("android.net.SSLCertificateSocketFactory","setHostname",False,"network")
    make("android.net.SSLCertificateSocketFactory","setKeyManager",False,"network")
    make("android.net.SSLCertificateSocketFactory","setNpnProtocols",False,"network")
    make("android.net.SSLCertificateSocketFactory","setTrustManagers",False,"network")
    make("android.net.SSLCertificateSocketFactory","setUseSessionTickets",False,"network")

    make("java.net.ServerSocket",None,False,"network")
    make("java.net.ServerSocket", "accept",False,"network")
    make("java.net.ServerSocket", "bind",False,"network")

    make("java.net.Proxy","Proxy",False,"network")

    make("java.net.Socket", None,False,"network")
    make("java.net.Socket", "bind",False,"network")
    make("java.net.Socket", "close",False,"network")
    make("java.net.Socket", "connect",False,"network")
    make("java.net.Socket", "getInetAddress",False,"network")
    make("java.net.Socket", "getInputStream",False,"network")
    make("java.net.Socket", "getLocalAddress",False,"network")
    make("java.net.Socket", "getLocalPort",False,"network")
    make("java.net.Socket", "getLocalSocketAddress",False,"network")
    make("java.net.Socket", "getOutputStream",False,"network")
    make("java.net.Socket", "getPort",False,"network")
    make("java.net.Socket", "sendUrgentData",False,"network")
    make("java.net.Socket", "getPort",False,"network")
    make("java.net.Socket", "setReuseAddress",False,"network")
    make("java.net.Socket", "setSocketImplFactory",False,"network")
    make("java.net.Socket", "setTcpNoDelay",False,"network")
    make("java.net.Socket", "shutdownInput",False,"network")
    make("java.net.Socket", "shutdownOutput",False,"network")

    make("org.apache.http.client.methods.HttpGet",None,False,"network")
    make("org.apache.http.client.methods.HttpGet","getMethod",False,"network")
    make("org.apache.http.client.methods.HttpGet","getURI",False,"network")

    make("org.apache.http.impl.client.AbstractHttpClient", "execute",False,"network")
    make("org.apache.http.impl.client.AbstractHttpClient", "getAuthSchemes",False,"network")
    make("org.apache.http.impl.client.AbstractHttpClient", "getCookiesStore",False,"network")
    make("org.apache.http.impl.client.AbstractHttpClient", "getCredentialProvider",False,"network")
    make("org.apache.http.impl.client.AbstractHttpClient", "getParams",False,"network")
    make("org.apache.http.impl.client.AbstractHttpClient", "setParams",False,"network")

    make("java.net.HttpURLConnection","addRequestProperty",False,"network")
    make("java.net.HttpURLConnection","connect",False,"network")
    make("java.net.HttpURLConnection","getContent",False,"network")
    make("java.net.HttpURLConnection","getContentEncoding",False,"network")
    make("java.net.HttpURLConnection","getContentType",False,"network")
    make("java.net.HttpURLConnection","getContentLength",False,"network")
    make("java.net.HttpURLConnection","getInputStream",False,"network")
    make("java.net.HttpURLConnection","getOutputStream",False,"network")
    make("java.net.HttpURLConnection","getURL",False,"network")
    make("java.net.HttpURLConnection","setRequestProperty",False,"network")

    make( "java.net.URL", None,False,"network")
    make( "java.net.URL", "getAuthority",False,"network")
    make( "java.net.URL", "getContent",False,"network")
    make( "java.net.URL", "getDefaultPort",False,"network")
    make( "java.net.URL", "getFile",False,"network")
    make( "java.net.URL", "getHost",False,"network")
    make( "java.net.URL", "getPath",False,"network")
    make( "java.net.URL", "getPort",False,"network")
    make( "java.net.URL", "getProtocol",False,"network")
    make( "java.net.URL", "getQuery",False,"network")
    make( "java.net.URL", "openConnection",False,"network")
    make( "java.net.URL", "openStream",False,"network")
    make( "java.net.URL", "toURI",False,"network")

    make("java.io.IOException", None,False,"network")

    make("libcore.io.IoBridge","recvfrom",False,"network")
    make("libcore.io.IoBridge","sendto",False,"network")
    make("libcore.io.IoBridge","getSocketLocalAddress",False,"network")
    make("libcore.io.IoBridge","getSocketLocalPort",False,"network")
    make("libcore.io.IoBridge","closeSocket",False,"network")
    make("libcore.io.IoBridge","connectErrno",False,"network")
    make("libcore.io.IoBridge","connect",False,"network")
    make("libcore.io.IoBridge","bind",False,"network")

    make("android.webkit.WebView","addJavascriptInterface",False,"network")
    make("android.webkit.WebView","capturePicture",False,"network")
    make("android.webkit.WebView","clearSslPreferences",False,"network")
    make("android.webkit.WebView","evaluateJavascript",False,"network")
    make("android.webkit.WebView","findAddress",False,"network")
    make("android.webkit.WebView","getCertificate",False,"network")
    make("android.webkit.WebView","getSettings",False,"network")
    make("android.webkit.WebView","isPrivateBrowsingEnabled",False,"network")
    make("android.webkit.WebView","loadData",False,"network")
    make("android.webkit.WebView","loadDataWithBaseURL",False,"network")
    make("android.webkit.WebView","loadUrl",False,"network")
    make("android.webkit.WebView","postUrl",False,"network")
    make("android.webkit.WebView","removeJavascriptInterface",False,"network")
    make("android.webkit.WebView","restoreState",False,"network")
    make("android.webkit.WebView","savePassword",False,"network")
    make("android.webkit.WebView","saveState",False,"network")
    make("android.webkit.WebView","setCertificate",False,"network")
    make("android.webkit.WebView","setHttpAuthUsernamePassword",False,"network")
    make("android.webkit.WebView","setWebContentsDebuggingEnabled",False,"network")

    make("android.webkit.WebSettings","setAllowContentAccess",False,"network")
    make("android.webkit.WebSettings","setAllowFileAccess",False,"network")
    make("android.webkit.WebSettings","setDatabaseEnabled",False,"network")
    make("android.webkit.WebSettings","setDatabasePath",False,"network")
    make("android.webkit.WebSettings","setJavaScriptEnabled",False,"network")
    make("android.webkit.WebSettings","setSavePassword",False,"network")

def media():
    make("android.hardware.Camera","open",False,"media")
    make("android.hardware.Camera","getParameters",False,"media")
    make("android.hardware.Camera","setParameters",False,"media")
    make("android.hardware.Camera","startPreview",False,"media")
    make("android.hardware.Camera","takePicture",False,"media")
    make("android.hardware.Camera","release",False,"media")
    make("android.hardware.Camera","enableShutterSound",False,"media")
    make("android.hardware.Camera","getCameraInfo",False,"media")
    make("android.hardware.Camera","getNumberOfCameras",False,"media")
    make("android.hardware.Camera","lock",False,"media")
    make("android.hardware.Camera","reconnect",False,"media")
    make("android.hardware.Camera","setFaceDetectionListener",False,"media")
    make("android.hardware.Camera","startFaceDetection",False,"media")

    make("android.media.AudioRecord","getAudioFormat",False,"media")
    make("android.media.AudioRecord","getAudioSessionId",False,"media")
    make("android.media.AudioRecord","getAudioSource",False,"media")
    make("android.media.AudioRecord","getChannelConfiguration",False,"media")
    make("android.media.AudioRecord","getChannelCount",False,"media")
    make("android.media.AudioRecord","getRecordingState",False,"media")
    make("android.media.AudioRecord","getState",False,"media")
    make("android.media.AudioRecord","read",False,"media")
    make("android.media.AudioRecord","release",False,"media")
    make("android.media.AudioRecord","setNotificationMarkerPosition",False,"media")
    make("android.media.AudioRecord","setPositionNotificationPeriod",False,"media")
    make("android.media.AudioRecord","setRecordPositionUpdateListener",False,"media")
    make("android.media.AudioRecord","startRecording",False,"media")
    make("android.media.AudioRecord","stop",False,"media")

    make("android.media.AudioManager","getParameters",False,"media")
    make("android.media.AudioManager","getProperty",False,"media")
    make("android.media.AudioManager","isMicrophoneMute",False,"media")
    make("android.media.AudioManager","isSpeakerphoneOn",False,"media")
    make("android.media.AudioManager","registerMediaButtonEventReceiver",False,"media")
    make("android.media.AudioManager","registerRemoteControlClient",False,"media")
    make("android.media.AudioManager","registerRemoteController",False,"media")
    make("android.media.AudioManager","setParameters",False,"media")
    make("android.media.AudioManager","setRingerMode",False,"media")
    make("android.media.AudioManager","setSpeakerphoneOn",False,"media")
    make("android.media.AudioManager","setRouting",False,"media")
    make("android.media.AudioManager","setStreamMute",False,"media")
    make("android.media.AudioManager","setStreamSolo",False,"media")
    make("android.media.AudioManager","setStreamVolume",False,"media")

    make("android.media.MediaRecorder","setOutputFile",False,"media")
    make("android.media.MediaRecorder","prepare",False,"media")
    make("android.media.MediaRecorder","reset",False,"media")
    make("android.media.MediaRecorder","setLocation",False,"media") #From 4.0.1 r1
    make("android.media.MediaRecorder","setAudioChannels",False,"media") #From 2.3

def binder():
    make("android.content.ContextWrapper","registerReceiver",False,"binder")
    make("android.content.ContextWrapper","sendBroadcast",False,"binder")
    make("android.content.ContextWrapper","sendBroadcastAsUser",False,"binder") #No method in class android.content.ContextWrapper has been found with name sendOrderedbroadcastAsUser
    make("android.content.ContextWrapper","sendOrderedBroadcast",False,"binder") #same
    make("android.content.ContextWrapper","sendOrderedBroadcastAsUser",False,"binder") #same
    make("android.content.ContextWrapper","startActivities",False,"binder")
    make("android.content.ContextWrapper","startActivity",False,"binder")
    make("android.content.ContextWrapper","startInstrumentation",False,"binder")
    make("android.content.ContextWrapper","startIntentSender",False,"binder")
    make("android.content.ContextWrapper","startService",False,"binder")
    make("android.content.ContextWrapper","stopService",False,"binder")
    make("android.content.ContextWrapper","unregisterReceiver",False,"binder")
    make("android.content.ContextWrapper","grantUriPermission",False,"binder")

    make("android.content.ContextWrapper","unbindService",False,"binder")
    make("android.content.ContextWrapper","checkPermission",False,"binder")
    make("android.content.ContextWrapper","checkUriPermission",False,"binder")
    make("android.content.ContextWrapper","getSystemService",False,"binder")

    make("android.content.Intent",None,False,"binder")
    make("android.content.Intent","getAction",False,"binder")
    make("android.content.Intent","getData",False,"binder")
    make("android.content.Intent","getDataString",False,"binder")
    make("android.content.Intent","getExtras",False,"binder")
    make("android.content.Intent","getIntent",False,"binder")
    make("android.content.Intent","hasExtra",False,"binder")
    make("android.content.Intent","parseUri",False,"binder")
    make("android.content.Intent","putExtra",False,"binder")
    make("android.content.Intent","setAction",False,"binder")
    make("android.content.Intent","setClass",False,"binder")
    make("android.content.Intent","setClassName",False,"binder")
    make("android.content.Intent","setData",False,"binder")

def dex():
    make("dalvik.system.DexClassLoader",None,False,"dex")
    make("dalvik.system.DexClassLoader","findLibrary",False,"dex")
    make("dalvik.system.DexClassLoader","findResource",False,"dex")

    make("dalvik.system.DexFile",None,False,"dex")
    make("dalvik.system.DexFile","loadClass",False,"dex")
    make("dalvik.system.DexFile","loadDex",False,"dex")

    make("dalvik.system.PathClassLoader",None,False,"dex")
    make("dalvik.system.PathClassLoader","findLibrary",False,"dex")
    make("dalvik.system.PathClassLoader","findResource",False,"dex")
    make("dalvik.system.PathClassLoader","findResources",False,"dex")

def reflection():
    make("java.lang.Class","forName",False,"reflection")
    make("java.lang.Class","isInstance",False,"reflection")
    make("java.lang.Class","getClasses",False,"reflection")
    make("java.lang.Class","getClassLoader",False,"reflection")
    make("java.lang.Class","getConstructor",False,"reflection")
    make("java.lang.Class","getDeclaredClasses",False,"reflection")
    make("java.lang.Class","getDeclaredFields",False,"reflection")
    make("java.lang.Class","getDeclaredMethods",False,"reflection")
    make("java.lang.Class","getDeclaredConstructors",False,"reflection")
    make("java.lang.Class","getDeclaredField",False,"reflection")
    make("java.lang.Class","getDeclaredMethod",False,"reflection")
    make("java.lang.Class","getDeclaredConstructor",False,"reflection")
    make("java.lang.Class","getResourceAsStream",False,"reflection")
    make("java.lang.Class","getResource",False,"reflection")
    make("java.lang.Class","getProtectionDomain",False,"reflection")
    make("java.lang.Class","newInstance",False,"reflection")
    make("java.lang.Class","getName",False,"reflection")
    make("java.lang.Class","getPackage",False,"reflection")
    make("java.lang.Class","getField",False,"reflection")
    make("java.lang.Class","getFields",False,"reflection")

    make( "java.lang.ClassLoader","getSystemClassLoader",False,"reflection")
    make( "java.lang.ClassLoader","getSystemResource",False,"reflection")
    make( "java.lang.ClassLoader","getSystemResources",False,"reflection")
    make( "java.lang.ClassLoader","getResource",False,"reflection") #//same in class
    make( "java.lang.ClassLoader","getResources",False,"reflection")
    make( "java.lang.ClassLoader","findResource",False,"reflection")
    make( "java.lang.ClassLoader","findResources",False,"reflection")
    make( "java.lang.ClassLoader","getResourceAsStream",False,"reflection") #//same in class
    make( "java.lang.ClassLoader","getSystemResourceAsStream",False,"reflection")
    make( "java.lang.ClassLoader","setClassAssertionStatus",False,"reflection")
    make("java.lang.ClassLoader","clearAssertionStatus",False,"reflection")
    make( "java.lang.ClassLoader","setPackageAssertionStatus",False,"reflection")
    make( "java.lang.ClassLoader","setDefaultAssertionStatus",False,"reflection")

    make("java.lang.reflect.Field","get",False,"reflection")
    make("java.lang.reflect.Field","getBoolean",False,"reflection")
    make("java.lang.reflect.Field","getByte",False,"reflection")
    make("java.lang.reflect.Field","getChar",False,"reflection")
    make("java.lang.reflect.Field","getShort",False,"reflection")
    make("java.lang.reflect.Field","getInt",False,"reflection")
    make("java.lang.reflect.Field","getLong",False,"reflection")
    make("java.lang.reflect.Field","getFloat",False,"reflection")
    make("java.lang.reflect.Field","getDouble",False,"reflection")
    make("java.lang.reflect.Field","set",False,"reflection")
    make("java.lang.reflect.Field","setBoolean",False,"reflection")
    make("java.lang.reflect.Field","setByte",False,"reflection")
    make("java.lang.reflect.Field","setChar",False,"reflection")
    make("java.lang.reflect.Field","setShort",False,"reflection")
    make("java.lang.reflect.Field","setInt",False,"reflection")
    make("java.lang.reflect.Field","setLong",False,"reflection")
    make("java.lang.reflect.Field","setFloat",False,"reflection")
    make("java.lang.reflect.Field","setDouble",False,"reflection")

    make("java.lang.reflect.Method","getName",False,"reflection")# //same in class
    make("java.lang.reflect.Method","getModifiers",False,"reflection")
    make("java.lang.reflect.Method","getTypeParameters",False,"reflection")
    make("java.lang.reflect.Method","getReturnType",False,"reflection")
    make("java.lang.reflect.Method","getGenericReturnType",False,"reflection")
    make("java.lang.reflect.Method","getParameterTypes",False,"reflection")
    make("java.lang.reflect.Method","getGenericParameterTypes",False,"reflection")
    make("java.lang.reflect.Method","equals",False,"reflection")
    make("java.lang.reflect.Method","invoke",False,"reflection")

def crypto():

    make("android.util.Base64","decode",False,"crypto")
    make("android.util.Base64","encode",False,"crypto")
    make("android.util.Base64","encodeToString",False,"crypto")

    make("javax.net.ssl.KeyManagerFactory","getAlgorithm",False,"crypto")
    make("javax.net.ssl.KeyManagerFactory","getInstance",False,"crypto")
    make("javax.net.ssl.KeyManagerFactory","init",False,"crypto")

    make("java.security.KeyStore","aliases",False,"crypto")
    make("java.security.KeyStore","getCertificate",False,"crypto")
    make("java.security.KeyStore","getCertificateChain",False,"crypto")
    make("java.security.KeyStore","getDefaulType",False,"crypto")
    make("java.security.KeyStore","getInstance",False,"crypto")
    make("java.security.KeyStore","getKey",False,"crypto")
    make("java.security.KeyStore","getProvider",False,"crypto")
    make("java.security.KeyStore","load",False,"crypto")
    make("java.security.KeyStore","store",False,"crypto")

    make("javax.crypto.Cipher","init",False,"crypto")
    make("javax.crypto.Cipher","update",False,"crypto")
    make("javax.crypto.Cipher","getInstance",False,"crypto")
    make("javax.crypto.Cipher","doFinal",False,"crypto")
    make("javax.crypto.Cipher","Random",False,"crypto")
    make("javax.crypto.Cipher","getIV",False,"crypto")

    make("javax.crypto.Mac","init",False,"crypto")
    make("javax.crypto.Mac","update",False,"crypto")
    make("javax.crypto.Mac","getInstance",False,"crypto")

    make("java.security.MessageDigest","update",False,"crypto")
    make("java.security.MessageDigest","getInstance",False,"crypto")
    make("java.security.MessageDigest","digest",False,"crypto")

    make("javax.crypto.spec.PBEKeySpec","PBEKeySpec",False,"crypto")

def location():
    make("android.location.LocationManager","getLastKnownLocation",False,"location")

    make( "android.location.GpsSatellite","getAzimuth",False,"location")
    make( "android.location.GpsSatellite","getElevation",False,"location")
    make( "android.location.GpsSatellite","getPrn",False,"location")
    make( "android.location.GpsSatellite","getSnr()",False,"location")
    make( "android.location.GpsSatellite","hasAlmanac",False,"location")
    make( "android.location.GpsSatellite","hasEphemeris",False,"location")

    make("android.location.Location","getBearing",False,"location")

    make("android.location.Location","getLatitude",False,"location")
    make("android.location.Location","setLatitude",False,"location")

    make("android.location.Location","getLongitude",False,"location")
    make("android.location.Location","setLongitude",False,"location")

    make("android.location.Location","getAltitude",False,"location")
    make("android.location.Location","setAltitude",False,"location")

    make("android.location.Location","getSpeed",False,"location")
    make("android.location.Location","SetSpeed",False,"location")

    make("android.location.Location","getTime",False,"location")
    make("android.location.Location","setTime",False,"location")

    make("android.location.Location","hasBearing",False,"location")
    make("android.location.Location","hasAccuracy",False,"location")
    make("android.location.Location","hasAltitude",False,"location")
    make("android.location.Location","hasSpeed",False,"location")

def content():
    make("android.content.ContentProvider","applyBatch",False,"content")
    make("android.content.ContentProvider","bulkInsert",False,"content")
    make("android.content.ContentProvider","call",False,"content")
    make("android.content.ContentProvider","dump",False,"content")
    make("android.content.ContentProvider","getWritePermission",False,"content")
    make("android.content.ContentProvider","getReadPermission",False,"content")
    make("android.content.ContentProvider","getPathPermissions",False,"content")
    make("android.content.ContentProvider","openAssetFile",False,"content")
    make("android.content.ContentProvider","openFile",False,"content")
    make("android.content.ContentProvider","openPipeHelper",False,"content")
    make("android.content.ContentProvider","openTypedAssetFile",False,"content")

    make("android.content.ContentResolver","acquireContentProviderClient",False,"content")
    make("android.content.ContentResolver","acquireUnstableContentProviderClient",False,"content")
    make("android.content.ContentResolver","addPeriodicSync",False,"content")
    make("android.content.ContentResolver","applyBatch",False,"content")
    make("android.content.ContentResolver","call",False,"content")
    make("android.content.ContentResolver","delete",False,"content")
    make("android.content.ContentResolver","getStreamTypes",False,"content")
    make("android.content.ContentResolver","getType",False,"content")
    make("android.content.ContentResolver","insert",False,"content")
    make("android.content.ContentResolver","notifyChange",False,"content")
    make("android.content.ContentResolver","openAssetFileDescriptor",False,"content")
    make("android.content.ContentResolver","openFileDescriptor",False,"content")
    make("android.content.ContentResolver","openInputStream",False,"content")
    make("android.content.ContentResolver","openOutputStream",False,"content")
    make("android.content.ContentResolver","openTypedAssetFileDescriptor",False,"content")
    make("android.content.ContentResolver","query",False,"content")
    make("android.content.ContentResolver","registerContentObserver",False,"content")
    make("android.content.ContentResolver","requestSync",False,"content")
    make("android.content.ContentResolver","unregisterContentObserver",False,"content")
    make("android.content.ContentResolver","update",False,"content")

    make("android.database.CursorWrapper","close",False,"content")
    make("android.database.CursorWrapper","copyStringToBuffer",False,"content")
    make("android.database.CursorWrapper","getBlob",False,"content")
    make("android.database.CursorWrapper","getColumnCount",False,"content")
    make("android.database.CursorWrapper","getColumnIndex",False,"content")
    make("android.database.CursorWrapper","getColumnIndexOrThrow",False,"content")
    make("android.database.CursorWrapper","getColumnName",False,"content")
    make("android.database.CursorWrapper","getColumnNames",False,"content")
    make("android.database.CursorWrapper","getPosition",False,"content")
    make("android.database.CursorWrapper","getString",False,"content")
    make("android.database.CursorWrapper","registerContentObserver",False,"content")
    make("android.database.CursorWrapper","registerDataSetObserver",False,"content")
    make("android.database.CursorWrapper","requery",False,"content")
    make("android.database.CursorWrapper","respond",False,"content")
    make("android.database.CursorWrapper","setNotificationUri",False,"content")
    make("android.database.CursorWrapper","unregisterContentObserver",False,"content")

    make("android.database.sqlite.SQLiteCursor","close",False,"content")
    make("android.database.sqlite.SQLiteCursor","getColumnIndex",False,"content")
    make("android.database.sqlite.SQLiteCursor","getColumnNames",False,"content")
    make("android.database.sqlite.SQLiteCursor","getCount",False,"content")
    make("android.database.sqlite.SQLiteCursor","getDatabase",False,"content")
    make("android.database.sqlite.SQLiteCursor","onMove",False,"content")
    make("android.database.sqlite.SQLiteCursor","setSelectionArguments",False,"content")
    make("android.database.sqlite.SQLiteCursor","setWindow",False,"content")

    make("android.content.ContextWrapper","getContentResolver",False,"content")

def bluetooth():
    make("android.bluetooth.BluetoothSocket","connect",False,"bluetooth")
    make("android.bluetooth.BluetoothServerSocket","accept",False,"bluetooth")
    make("android.bluetooth.BluetoothServerSocket","close",False,"bluetooth")
    make("android.bluetooth.BluetoothDevice","connectGatt",False,"bluetooth")
    make("android.bluetooth.BluetoothDevice","createBond",False,"bluetooth")
    make("android.bluetooth.BluetoothDevice","createInsecureRfcommSocketToServiceRecord",False,"bluetooth")
    make("android.bluetooth.BluetoothDevice","createRfcommSocketToServiceRecord",False,"bluetooth")
    make("android.bluetooth.BluetoothDevice","getAddress",False,"bluetooth")
    make("android.bluetooth.BluetoothDevice","getName",False,"bluetooth")
    make("android.bluetooth.BluetoothDevice","getType",False,"bluetooth")
    make("android.bluetooth.BluetoothDevice","setPin",False,"bluetooth")

def account():
    make("android.accounts.AccountManager",None,False,"account")
    make("android.accounts.AccountManager","addAccount",False,"account")
    make("android.accounts.AccountManager","addAccountExplicitly",False,"account")
    make("android.accounts.AccountManager","addOnAccountsUpdatedListener",False,"account")
    make("android.accounts.AccountManager","blockingGetAuthToken",False,"account")
    make("android.accounts.AccountManager","clearPassword",False,"account")
    make("android.accounts.AccountManager","confirmCredentials",False,"account")
    make("android.accounts.AccountManager","editProperties",False,"account")
    make("android.accounts.AccountManager","get",False,"account")
    make("android.accounts.AccountManager","getAccounts",False,"account")
    make("android.accounts.AccountManager","getAccountsByTypeAndFeatures",False,"account")
    make("android.accounts.AccountManager","getAccountsByTypeForPackage",False,"account")
    make("android.accounts.AccountManager","getAuthToken",False,"account")
    make("android.accounts.AccountManager","getAuthTokenByFeatures",False,"account")
    make("android.accounts.AccountManager","getAuthenticatorTypes",False,"account")
    make("android.accounts.AccountManager","getPassword",False,"account")
    make("android.accounts.AccountManager","getUserData",False,"account")
    make("android.accounts.AccountManager","hasFeatures",False,"account")
    make("android.accounts.AccountManager","invalidateAuthTokens",False,"account")
    make("android.accounts.AccountManager","newChooseAccountIntent",False,"account")
    make("android.accounts.AccountManager","peekAuthToken",False,"account")
    make("android.accounts.AccountManager","removeAccount",False,"account")
    make("android.accounts.AccountManager","removeOnAccountsUpdatedListener",False,"account")
    make("android.accounts.AccountManager","setPassword",False,"account")
    make("android.accounts.AccountManager","setUserData",False,"account")
    make("android.accounts.AccountManager","updateCredentials",False,"account")

def file():
    make("android.net.URI.HierachicalURI",None,False,"file")
    make("android.net.URI.HierachicalURI","create",False,"file")
    make("android.net.URI.HierachicalURI","resolve",False,"file")
    make("android.net.URI.HierachicalURI","relativize",False,"file")
    make("android.net.URI.HierachicalURI","toURL",False,"file")
    make("android.net.URI.HierachicalURI","toString",False,"file")
    make("android.net.URI.HierachicalURI","toASCIIString",False,"file")

    make("java.net.URI",None,False,"file")
    make("java.net.URI","create",False,"file")
    make("java.net.URI","resolve",False,"file")
    make("java.net.URI","relativize",False,"file")
    make("java.net.URI","toURL",False,"file")
    make("java.net.URI","toString",False,"file")
    make("java.net.URI","toASCIIString",False,"file")

    make("android.content.ContextWrapper", "deleteFile",False,"file")
    make("android.content.ContextWrapper", "fileList",False,"file")
    make("android.content.ContextWrapper", "getDir",False,"file")
    make("android.content.ContextWrapper", "getExternalCacheDir",False,"file")
    make("android.content.ContextWrapper", "getExternalCacheDirs",False,"file")
    make("android.content.ContextWrapper", "getExternalFilesDir",False,"file")
    make("android.content.ContextWrapper", "getExternalFilesDirs",False,"file")
    make("android.content.ContextWrapper", "getFileStreamPath",False,"file")
    make("android.content.ContextWrapper", "getFilesDir",False,"file")
    make("android.content.ContextWrapper", "openFileInput",False,"file")
    make("android.content.ContextWrapper", "openFileOutput",False,"file")

    make("android.os.Environment","getDataDirectory",False,"file")
    make("android.os.Environment","getDownloadCacheDirectory",False,"file")
    make("android.os.Environment","getExternalStorageDirectory",False,"file")
    make("android.os.Environment","getExternalStoragePublicDirectory",False,"file")
    make("android.os.Environment","getExternalStorageState",False,"file")
    make("android.os.Environment","getRootDirectory",False,"file")

    make("java.io.File", None,False,"file")
    make("java.io.File", "createNewFile",False,"file")
    make("java.io.File", "createTempFile",False,"file")
    make("java.io.File", "delete",False,"file")
    make("java.io.File", "exists",False,"file")
    make("java.io.File", "getAbsoluteFile",False,"file")
    make("java.io.File", "getAbsolutePath",False,"file")
    make("java.io.File", "getCanonicalFile",False,"file")
    make("java.io.File", "getCanonicalPath",False,"file")
    make("java.io.File", "getName",False,"file")
    make("java.io.File", "getPath",False,"file")
    make("java.io.File", "list",False,"file")
    make("java.io.File", "listFiles",False,"file")
    make("java.io.File", "listRoots",False,"file")
    make("java.io.File", "mkdir",False,"file")
    make("java.io.File", "mkdirs",False,"file")
    make("java.io.File", "renameTo",False,"file")
    make("java.io.File", "setExecutable",False,"file")
    make("java.io.File", "setLastModified",False,"file")
    make("java.io.File", "setReadOnly",False,"file")
    make("java.io.File", "setReadable",False,"file")
    make("java.io.File", "setWritable",False,"file")

    make("java.io.FileNotFoundException", None,False,"file")

def runtime():
    make("java.lang.Runtime","exec",False,"runtime")
    make("java.lang.Runtime","getRuntime",False,"runtime")
    make("java.lang.Runtime","load",False,"runtime")
    make("java.lang.Runtime","loadLibrary",False,"runtime")
    make("java.lang.Runtime","traceInstructions",False,"runtime")
    make("java.lang.Runtime","traceMethodCalls",False,"runtime")

    make("java.lang.ProcessBuilder","command",False,"runtime")
    make("java.lang.ProcessBuilder","directory",False,"runtime")
    make("java.lang.ProcessBuilder","environment",False,"runtime")
    make("java.lang.ProcessBuilder","redirectErrorStream",False,"runtime")
    make("java.lang.ProcessBuilder","start",False,"runtime")

def resource():
    make("android.content.res.Resources","Resources",False,"resource")
    make("android.content.res.Resources","getAssets",False,"resource")
    make("android.content.res.Resources","getBoolean",False,"resource")
    make("android.content.res.Resources","getConfiguration",False,"resource")
    make("android.content.res.Resources","getResourceEntryName",False,"resource")
    make("android.content.res.Resources","getResourceName",False,"resource")
    make("android.content.res.Resources","getResourcePackageName",False,"resource")
    make("android.content.res.Resources","getResourceTypeName",False,"resource")
    make("android.content.res.Resources","getString",False,"resource")
    make("android.content.res.Resources","getSystem",False,"resource")
    make("android.content.res.Resources","getValue",False,"resource")
    make("android.content.res.Resources","getXml",False,"resource")
    make("android.content.res.Resources","openRawResource",False,"resource")
    make("android.content.res.Resources","openRawResourceFd",False,"resource")
    make("android.content.res.Resources","parseBundleExtra",False,"resource")
    make("android.content.res.Resources","parseBundleExtras",False,"resource")
    make("android.content.res.Resources","updateConfiguration",False,"resource")

def shared():
    make("android.app.SharedPreferencesImpl", "getAll",False,"shared")
    make("android.app.SharedPreferencesImpl", "getString",False,"shared")
    make("android.app.SharedPreferencesImpl", "getStringSet",False,"shared")
    make("android.app.SharedPreferencesImpl", "getInt",False,"shared")
    make("android.app.SharedPreferencesImpl", "getLong",False,"shared")
    make("android.app.SharedPreferencesImpl", "getFloat",False,"shared")
    make("android.app.SharedPreferencesImpl", "getBoolean",False,"shared")
    make("android.app.SharedPreferencesImpl", "contains",False,"shared")

    make("android.content.SharedPreferences.Editor","apply",False,"shared")
    make("android.content.SharedPreferences.Editor","clear",False,"shared")
    make("android.content.SharedPreferences.Editor","commit",False,"shared")
    make("android.content.SharedPreferences.Editor","putBoolean",False,"shared")
    make("android.content.SharedPreferences.Editor","putFloat",False,"shared")
    make("android.content.SharedPreferences.Editor","putInt",False,"shared")
    make("android.content.SharedPreferences.Editor","putLong",False,"shared")
    make("android.content.SharedPreferences.Editor","putString",False,"shared")
    make("android.content.SharedPreferences.Editor","putStringSet",False,"shared")
    make("android.content.SharedPreferences.Editor","remove",False,"shared")

def sql():
    make("android.database.sqlite.SQLiteDatabase","create",False,"sql")
    make("android.database.sqlite.SQLiteDatabase","delete",False,"sql")
    make("android.database.sqlite.SQLiteDatabase","deleteDatabase",False,"sql")
    make("android.database.sqlite.SQLiteDatabase","execSQL",False,"sql")
    make("android.database.sqlite.SQLiteDatabase","getPath",False,"sql")
    make("android.database.sqlite.SQLiteDatabase","insert",False,"sql")
    make("android.database.sqlite.SQLiteDatabase","insertOrThrow",False,"sql")
    make("android.database.sqlite.SQLiteDatabase","insertWithOnConflict",False,"sql")
    make("android.database.sqlite.SQLiteDatabase","openDatabase",False,"sql")
    make("android.database.sqlite.SQLiteDatabase","openOrCreateDatabase",False,"sql")
    make("android.database.sqlite.SQLiteDatabase","query",False,"sql")
    make("android.database.sqlite.SQLiteDatabase","queryWithFactory",False,"sql")
    make("android.database.sqlite.SQLiteDatabase","rawQuery",False,"sql")
    make("android.database.sqlite.SQLiteDatabase","rawQueryWithFactory",False,"sql")
    make("android.database.sqlite.SQLiteDatabase","replace",False,"sql")
    make("android.database.sqlite.SQLiteDatabase","replaceOrThrow",False,"sql")
    make("android.database.sqlite.SQLiteDatabase","update",False,"sql")
    make("android.database.sqlite.SQLiteDatabase","updateWithOnConflict",False,"sql")
    make("android.database.sqlite.SQLiteDatabase","close",False,"sql")

    make("android.content.ContextWrapper","deleteDatabase",False,"sql")
    make("android.content.ContextWrapper","databaseList",False,"sql")
    make("android.content.ContextWrapper","getDatabasePath",False,"sql")
    make("android.content.ContextWrapper","openOrCreateDatabase",False,"sql")

def strings():
    make("java.lang.StringBuilder","StringBuilder",False,"strings")
    make("java.lang.StringBuilder","append",False,"strings")
    make("java.lang.StringBuilder","toString",False,"strings")

    make("java.lang.StringBuffer","StringBuffer",False,"strings")
    make("java.lang.StringBuffer","append",False,"strings")
    make("java.lang.StringBuffer","toString",False,"strings")

def system():
    make("android.app.ApplicationPackageManager","addPermission",False,"system")
    make("android.app.ApplicationPackageManager","addPermissionAsync",False,"system")
    make("android.app.ApplicationPackageManager","checkPermission",False,"system")
    make("android.app.ApplicationPackageManager","getActivityInfo",False,"system")
    make("android.app.ApplicationPackageManager","getAllPermissionGroups",False,"system")
    make("android.app.ApplicationPackageManager","getApplicationEnabledSetting",False,"system")
    make("android.app.ApplicationPackageManager","getInstalledPackages",False,"system")
                    # HookLauncher.hook(new MethodHook("getPackageInfo",False,"system") //This is quiet verbose and
                    #frequent...
    make("android.app.ApplicationPackageManager","getPermissionInfo",False,"system")
    make("android.app.ApplicationPackageManager","getServiceInfo",False,"system")
    make("android.app.ApplicationPackageManager","getSystemSharedLibraryNames",False,"system")
    make("android.app.ApplicationPackageManager","setComponentEnabledSetting",False,"system")
    make("android.app.ApplicationPackageManager","setApplicationEnabledSetting",False,"system")

    make("android.app.ActivityManager","clearApplicationUserData",False,"system")
    make("android.app.ActivityManager","dumpPackageState",False,"system")
    make("android.app.ActivityManager","getDeviceConfigurationInfo",False,"system")
    make("android.app.ActivityManager","getLargeMemoryClass",False,"system")
    make("android.app.ActivityManager","getMemoryClass",False,"system")
    make("android.app.ActivityManager","getMemoryInfo",False,"system")
    make("android.app.ActivityManager","getMyMemoryState",False,"system")
    make("android.app.ActivityManager","getProcessMemoryInfo",False,"system")
    make("android.app.ActivityManager","getProcessesInErrorState",False,"system")
    make("android.app.ActivityManager","getRecentTasks",False,"system")
    make("android.app.ActivityManager","getRunningAppProcesses",False,"system")
    make("android.app.ActivityManager","getRunningServiceControlPanel",False,"system")
    make("android.app.ActivityManager","getRunningServices",False,"system")
    make("android.app.ActivityManager","getRunningTasks",False,"system")
    make("android.app.ActivityManager","isLowRamDevice",False,"system")
    make("android.app.ActivityManager","isRunningInTestHarness",False,"system")
    make("android.app.ActivityManager","isUserAMonkey",False,"system")
    make("android.app.ActivityManager","killBackgroundProcesses",False,"system")
    make("android.app.ActivityManager","moveTaskToFront",False,"system")
    make("android.app.ActivityManager","restartPackage",False,"system")

    make("java.lang.SecurityManager","checkAccept",False,"system")
    make("java.lang.SecurityManager","checkAccess",False,"system")
    make("java.lang.SecurityManager","checkConnect",False,"system")
    make("java.lang.SecurityManager","checkCreateClassLoader",False,"system")
    make("java.lang.SecurityManager","checkDelete",False,"system")
    make("java.lang.SecurityManager","checkExec",False,"system")
    make("java.lang.SecurityManager","checkExit",False,"system")
    make("java.lang.SecurityManager","checkLink",False,"system")
    make("java.lang.SecurityManager","checkListen",False,"system")
    make("java.lang.SecurityManager","checkMulticast",False,"system")
    make("java.lang.SecurityManager","checkPackageAccess",False,"system")
    make("java.lang.SecurityManager","checkPackageDefinition",False,"system")
    make("java.lang.SecurityManager","checkPermission",False,"system")
    make("java.lang.SecurityManager","checkPrintJobAccess",False,"system")
    make("java.lang.SecurityManager","checkPropertiesAccess",False,"system")
    make("java.lang.SecurityManager","checkPropertyAccess",False,"system")
    make("java.lang.SecurityManager","checkRead",False,"system")
    make("java.lang.SecurityManager","checkSecurityAccess",False,"system")
    make("java.lang.SecurityManager","checkSetFactory",False,"system")
    make("java.lang.SecurityManager","checkSystemClipboardAccess",False,"system")
    make("java.lang.SecurityManager","checkWrite",False,"system")
    make("java.lang.SecurityManager","checkSecurityContext",False,"system")

    make("android.os.PowerManager","goToSleep",False,"system")
    make("android.os.PowerManager","isScreenOn",False,"system")
    make("android.os.PowerManager","newWakeLock",False,"system")
    make("android.os.PowerManager","reboot",False,"system")
    make("android.os.PowerManager","userActivity",False,"system")
    make("android.os.PowerManager","wakeUp",False,"system")

def task():
    make("java.util.concurrent.ScheduledThreadPoolExecutor","ScheduledThreadPoolExecutor",False,"task")
    make("java.util.concurrent.ScheduledThreadPoolExecutor","execute",False,"task")
    make("java.util.concurrent.ScheduledThreadPoolExecutor","schedule",False,"task")
    make("java.util.concurrent.ScheduledThreadPoolExecutor","scheduleAtFixedRate",False,"task")
    make("java.util.concurrent.ScheduledThreadPoolExecutor","scheduleWithFixedDelay",False,"task")
    make("java.util.concurrent.ScheduledThreadPoolExecutor","shutdown",False,"task")
    make("java.util.concurrent.ScheduledThreadPoolExecutor","shutdownNow",False,"task")
    make("java.util.concurrent.ScheduledThreadPoolExecutor","submit",False,"task")

    make( "java.util.Timer",None,False,"task")
    make( "java.util.Timer","cancel",False,"task")
    make( "java.util.Timer","purge",False,"task")
    make( "java.util.Timer","schedule",False,"task")
    make( "java.util.Timer","scheduleAtFixedRate",False,"task")

def telephony():
    make("android.telephony.SmsManager","sendDataMessage",False,"telephony")
    make("android.telephony.SmsManager","sendMultipartTextMessage",False,"telephony")
    make("android.telephony.SmsManager","sendTextMessage",False,"telephony")

    make("android.telephony.ServiceState","getIsManualSelection",False,"telephony")
    make("android.telephony.ServiceState","getOperatorAlphaLong",False,"telephony")
    make("android.telephony.ServiceState","getOperatorAlphaShort",False,"telephony")
    make("android.telephony.ServiceState","getOperatorNumeric",False,"telephony")
    make("android.telephony.ServiceState","getRoaming",False,"telephony")
    make("android.telephony.ServiceState","getState",False,"telephony")
    make("android.telephony.ServiceState","setIsManualSelection",False,"telephony")
    make("android.telephony.ServiceState","setOperatorName",False,"telephony")
    make("android.telephony.ServiceState","setRoaming",False,"telephony")
    make("android.telephony.ServiceState","setState",False,"telephony")
    make("android.telephony.ServiceState","setStateOff",False,"telephony")
    make("android.telephony.ServiceState","setStateOutOfService",False,"telephony")


    make("android.telephony.SmsMessage","createFromPdu",False,"telephony")
    make("android.telephony.SmsMessage","getDisplayMessageBody",False,"telephony")
    make("android.telephony.SmsMessage","getDisplayOriginatingAddress",False,"telephony")
    make("android.telephony.SmsMessage","getEmailBody",False,"telephony")
    make("android.telephony.SmsMessage","getEmailFrom",False,"telephony")
    make("android.telephony.SmsMessage","getIndexOnIcc",False,"telephony")
    make("android.telephony.SmsMessage","getIndexOnSim",False,"telephony")
    make("android.telephony.SmsMessage","getMessageBody",False,"telephony")
    make("android.telephony.SmsMessage","getOriginatingAddress",False,"telephony")
    make("android.telephony.SmsMessage","getPdu",False,"telephony")
    make("android.telephony.SmsMessage","getProtocolIdentifier",False,"telephony")
    make("android.telephony.SmsMessage","getPseudoSubject",False,"telephony")
    make("android.telephony.SmsMessage","getServiceCenterAddress",False,"telephony")
    make("android.telephony.SmsMessage","getStatus",False,"telephony")
    make("android.telephony.SmsMessage","getStatusOnIcc",False,"telephony")
    make("android.telephony.SmsMessage","getStatusOnSim",False,"telephony")
    make("android.telephony.SmsMessage","getSubmitPdu",False,"telephony")
    make("android.telephony.SmsMessage","getUserData",False,"telephony")

    make("android.telephony.TelephonyManager","getCellLocation",False,"telephony")
    make("android.telephony.TelephonyManager","getSubscriberId",False,"telephony")
    make("android.telephony.TelephonyManager","getDeviceId",False,"telephony")
    make("android.telephony.TelephonyManager","getDeviceSoftwareVersion",False,"telephony")
    make("android.telephony.TelephonyManager","getNeighboringCellInfo",False,"telephony")
    make("android.telephony.TelephonyManager","getNetworkCountryIso",False,"telephony")
    make("android.telephony.TelephonyManager","getNetworkOperator",False,"telephony")
    make("android.telephony.TelephonyManager","getNetworkOperatorName",False,"telephony")
    make("android.telephony.TelephonyManager","getLine1Number",False,"telephony")

    make("android.telephony.TelephonyManager","getAllCellInfo",False,"telephony")
    make("android.telephony.TelephonyManager","getCallState",False,"telephony")
    make("android.telephony.TelephonyManager","getGroupIdLevel1",False,"telephony")

    make("android.telephony.TelephonyManager","getNetworkType",False,"telephony")
    make("android.telephony.TelephonyManager","getPhoneType",False,"telephony")
    make("android.telephony.TelephonyManager","getSimCountryIso",False,"telephony")
    make("android.telephony.TelephonyManager","getSimOperator",False,"telephony")
    make("android.telephony.TelephonyManager","getSimOperatorName",False,"telephony")
    make("android.telephony.TelephonyManager","getSimSerialNumber",False,"telephony")
    make("android.telephony.TelephonyManager","getSimState",False,"telephony")
    make("android.telephony.TelephonyManager","getVoiceMailNumber",False,"telephony")
    make("android.telephony.TelephonyManager","isNetworkRoaming",False,"telephony")


network()
media()
binder()
dex()
#reflection()
crypto()
location()
content()
bluetooth()
account()
file()
runtime()
resource()
shared()
sql()
#strings()
system()
task()
telephony()

json_file["hookConfigs"]=array
json_file["trace"]=False
with open('trace.json', 'w') as outfile:
    json.dump(json_file, outfile ,sort_keys = True, indent = 4,ensure_ascii=False)

if __name__ == "__main__":
    network()
    media()
    binder()
    dex()
    # reflection()
    crypto()
    location()
    content()
    bluetooth()
    account()
    file()
    runtime()
    resource()
    shared()
    sql()
    # strings()
    system()
    task()
    telephony()