<org.apache.http.HttpResponse: org.apache.http.HttpEntity getEntity()> -> _SOURCE_
<org.apache.http.util.EntityUtils: java.lang.String toString(org.apache.http.HttpEntity)> -> _SOURCE_
<org.apache.http.HttpResponse: org.apache.http.StatusLine getStatusLine()> -> _SOURCE_

<android.location.Location: double getLatitude()> -> _SOURCE_
<android.location.Location: double getLongitude()> -> _SOURCE_
<android.location.LocationManager: android.location.Location getLastKnownLocation(java.lang.String)> -> _SOURCE_

<android.telephony.TelephonyManager: java.lang.String getDeviceId()> android.permission.READ_PHONE_STATE -> _SOURCE_
<android.telephony.TelephonyManager: java.lang.String getSubscriberId()> android.permission.READ_PHONE_STATE -> _SOURCE_
<android.telephony.TelephonyManager: java.lang.String getSimSerialNumber()> android.permission.READ_PHONE_STATE -> _SOURCE_
<android.telephony.TelephonyManager: java.lang.String getLine1Number()> android.permission.READ_PHONE_STATE -> _SOURCE_

<java.net.URLConnection: void connect()> -> _SINK_
<java.net.URLConnection: java.io.InputStream getInputStream()> -> _BOTH_
<java.net.URLConnection: java.io.OutputStream getOutputStream()> -> _SINK_

<java.net.URL: java.io.InputStream openStream()> -> _BOTH_
<java.net.URL: java.lang.Object getContent()> -> _BOTH_
<java.net.URL: java.lang.Object getContent(java.lang.Class[])> -> _BOTH_

<java.net.URL: void set(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)> -> _SINK_
<java.net.URL: void set(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)> -> _SINK_

<org.apache.http.HttpResponse: org.apache.http.HttpEntity getEntity()> -> _SOURCE_

% Covered by the EasyTaintWrapper given that the HttpEntity is tainted
%<org.apache.http.util.EntityUtils: java.lang.String toString(org.apache.http.HttpEntity)> -> _SOURCE_
%<org.apache.http.util.EntityUtils: java.lang.String toString(org.apache.http.HttpEntity,java.lang.String)> -> _SOURCE_
%<org.apache.http.util.EntityUtils: byte[] toByteArray(org.apache.http.HttpEntity)> -> _SOURCE_
%<org.apache.http.util.EntityUtils: java.lang.String getContentCharSet(org.apache.http.HttpEntity)> -> _SOURCE_

% add Activity.getIntent() as source instead of the next methods to avoid duplicate results.
%<android.content.Intent: java.lang.String getAction()> -> _SOURCE_
%<android.content.Intent: boolean[] getBooleanArrayExtra(java.lang.String)> -> _SOURCE_
%<android.content.Intent: boolean getBooleanExtra(java.lang.String, boolean)> -> _SOURCE_
%<android.content.Intent: android.os.Bundle getBundleExtra(java.lang.String)> -> _SOURCE_
%<android.content.Intent: byte[] getByteArrayExtra(java.lang.String)> -> _SOURCE_
%<android.content.Intent: byte getByteExtra(java.lang.String, byte)> -> _SOURCE_
%<android.content.Intent: java.util.Set getCategories()> -> _SOURCE_
%<android.content.Intent: char[] getCharArrayExtra(java.lang.String)> -> _SOURCE_
%<android.content.Intent: char getCharExtra(java.lang.String, char)> -> _SOURCE_
%<android.content.Intent: java.lang.CharSequence[] getCharSequenceArrayExtra(java.lang.String)> -> _SOURCE_
%<android.content.Intent: java.util.ArrayList getCharSequenceArrayListExtra(java.lang.String)> -> _SOURCE_
%<android.content.Intent: java.lang.CharSequence getCharSequenceExtra(java.lang.String)> -> _SOURCE_
%<android.content.Intent: android.content.ClipData getClipData()> -> _SOURCE_
%<android.content.Intent: android.content.ComponentName getComponent()> -> _SOURCE_
%<android.content.Intent: android.net.Uri getData()> -> _SOURCE_
%<android.content.Intent: java.lang.String getDataString()> -> _SOURCE_
%<android.content.Intent: double[] getDoubleArrayExtra(java.lang.String)> -> _SOURCE_
%<android.content.Intent: double getDoubleExtra(java.lang.String, double)> -> _SOURCE_
%<android.content.Intent: android.os.Bundle getExtras()> -> _SOURCE_
%<android.content.Intent: int getFlags()> -> _SOURCE_
%<android.content.Intent: float[] getFloatArrayExtra(java.lang.String)> -> _SOURCE_
%<android.content.Intent: float getFloatExtra(java.lang.String, float)> -> _SOURCE_
%<android.content.Intent: int[] getIntArrayExtra(java.lang.String)> -> _SOURCE_
%<android.content.Intent: java.util.ArrayList getIntegerArrayListExtra(java.lang.String)> -> _SOURCE_
%<android.content.Intent: android.content.Intent getIntent(java.lang.String)> -> _SOURCE_
%<android.content.Intent: android.content.Intent getIntentOld(java.lang.String)> -> _SOURCE_
%<android.content.Intent: int getIntExtra(java.lang.String, int)> -> _SOURCE_
%<android.content.Intent: long[] getLongArrayExtra(java.lang.String)> -> _SOURCE_
%<android.content.Intent: long getLongExtra(java.lang.String, long)> -> _SOURCE_
%<android.content.Intent: java.lang.String getPackage()> -> _SOURCE_
%<android.content.Intent: android.os.Parcelable[] getParcelableArrayExtra(java.lang.String)> -> _SOURCE_
%<android.content.Intent: java.util.ArrayList getParcelableArrayListExtra(java.lang.String)> -> _SOURCE_
%<android.content.Intent: android.os.Parcelable getParcelableExtra(java.lang.String)> -> _SOURCE_
%<android.content.Intent: java.lang.String getScheme()> -> _SOURCE_
%<android.content.Intent: android.content.Intent getSelector()> -> _SOURCE_
%<android.content.Intent: java.io.Serializable getSerializableExtra(java.lang.String)> -> _SOURCE_
%<android.content.Intent: short[] getShortArrayExtra(java.lang.String)> -> _SOURCE_
%<android.content.Intent: short getShortExtra(java.lang.String, short)> -> _SOURCE_
%<android.content.Intent: android.graphics.Rect getSourceBounds()> -> _SOURCE_
%<android.content.Intent: java.lang.String[] getStringArrayExtra(java.lang.String)> -> _SOURCE_
%<android.content.Intent: java.util.ArrayList getStringArrayListExtra(java.lang.String)> -> _SOURCE_
%<android.content.Intent: java.lang.String getStringExtra(java.lang.String)> -> _SOURCE_
%<android.content.Intent: java.lang.String getType()> -> _SOURCE_

%<android.content.Intent: void <init>()> -> _SOURCE_
%<android.content.Intent: void <init>(android.content.Intent)> -> _SOURCE_
%<android.content.Intent: void <init>(java.lang.String)> -> _SOURCE_
%<android.content.Intent: void <init>(java.lang.String,android.net.Uri)> -> _SOURCE_
%<android.content.Intent: void <init>(android.content.Context,java.lang.Class)> -> _SOURCE_
%<android.content.Intent: void <init>(java.lang.String,android.net.Uri,android.content.Context,java.lang.Class)> -> _SOURCE_

%bundle sources
% do not consider them as sources, because we have the callback parameters from
% which the apps obtain the bundles as sources anyway
%<android.os.Bundle: java.lang.Object get(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: boolean getBoolean(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: boolean getBoolean(java.lang.String,boolean)> -> _SOURCE_
%<android.os.Bundle: boolean[] getBooleanArray(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: android.os.Bundle getBundle(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: byte getByte(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: java.lang.Byte getByte(java.lang.String,byte)> -> _SOURCE_
%<android.os.Bundle: byte[] getByteArray(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: char getChar(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: char getChar(java.lang.String,char)> -> _SOURCE_
%<android.os.Bundle: char[] getCharArray(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: java.lang.CharSequence getCharSequence(java.lang.String,java.lang.CharSequence)> -> _SOURCE_
%<android.os.Bundle: java.lang.CharSequence getCharSequence(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: java.lang.CharSequence[] getCharSequenceArray(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: java.util.ArrayList getCharSequenceArrayList(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: java.lang.ClassLoader getClassLoader()> -> _SOURCE_
%<android.os.Bundle: double getDouble(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: double getDouble(java.lang.String,double)> -> _SOURCE_
%<android.os.Bundle: double[] getDoubleArray(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: float getFloat(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: float getFloat(java.lang.String,float)> -> _SOURCE_
%<android.os.Bundle: float[] getFloatArray(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: int getInt(java.lang.String,int)> -> _SOURCE_
%<android.os.Bundle: int getInt(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: int[] getIntArray(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: java.util.ArrayList getIntegerArrayList(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: long getLong(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: long getLong(java.lang.String,long)> -> _SOURCE_
%<android.os.Bundle: long[] getLongArray(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: android.os.Parcelable getParcelable(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: android.os.Parcelable[] getParcelableArray(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: java.util.ArrayList getParcelableArrayList(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: java.io.Serializable getSerializable(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: short getShort(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: short getShort(java.lang.String,short)> -> _SOURCE_
%<android.os.Bundle: short[] getShortArray(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: android.util.SparseArray getSparseParcelableArray(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: java.lang.String getString(java.lang.String)> -> _SOURCE_
%<android.os.Bundle: java.util.ArrayList getStringArrayList(java.lang.String key)> -> _SOURCE_

%bundle sinks
<android.os.Bundle: void putBinder(java.lang.String,android.os.IBinder)> -> _SINK_
<android.os.Bundle: void putBoolean(java.lang.String,boolean)> -> _SINK_
<android.os.Bundle: void putBooleanArray(java.lang.String,boolean[])> -> _SINK_
<android.os.Bundle: void putBundle(java.lang.String,android.os.Bundle)> -> _SINK_
<android.os.Bundle: void putByte(java.lang.String,byte)> -> _SINK_
<android.os.Bundle: void putByteArray(java.lang.String,byte[])> -> _SINK_
<android.os.Bundle: void putChar(java.lang.String,char)> -> _SINK_
<android.os.Bundle: void putCharArray(java.lang.String,char[])> -> _SINK_
<android.os.Bundle: void putCharSequence(java.lang.String,java.lang.CharSequence)> -> _SINK_
<android.os.Bundle: void putCharSequenceArray(java.lang.String,java.lang.CharSequence[])> -> _SINK_
<android.os.Bundle: void putCharSequenceArrayList(java.lang.String,java.util.ArrayList)> -> _SINK_
<android.os.Bundle: void putDouble(java.lang.String,double)> -> _SINK_
<android.os.Bundle: void putDoubleArray(java.lang.String,double[])> -> _SINK_
<android.os.Bundle: void putFloat(java.lang.String,float)> -> _SINK_
<android.os.Bundle: void putFloatArray(java.lang.String,float[])> -> _SINK_
<android.os.Bundle: void putInt(java.lang.String,int)> -> _SINK_
<android.os.Bundle: void putIntArray(java.lang.String,int[])> -> _SINK_
<android.os.Bundle: void putIntegerArrayList(java.lang.String,java.util.ArrayList)> -> _SINK_
<android.os.Bundle: void putLong(java.lang.String,long)> -> _SINK_
<android.os.Bundle: void putLongArray(java.lang.String,long[])> -> _SINK_
<android.os.Bundle: void putParcelable(java.lang.String,android.os.Parcelable)> -> _SINK_
<android.os.Bundle: void putParcelableArray(java.lang.String,android.os.Parcelable[])> -> _SINK_
<android.os.Bundle: void putParcelableArrayList(java.lang.String,java.util.ArrayList)> -> _SINK_
<android.os.Bundle: void putSerializable(java.lang.String,java.io.Serializable)> -> _SINK_
<android.os.Bundle: void putShort(java.lang.String,short)> -> _SINK_
<android.os.Bundle: void putShortArray(java.lang.String,short[])> -> _SINK_
<android.os.Bundle: void putSparseParcelableArray(java.lang.String,android.util.SparseArray)> -> _SINK_
<android.os.Bundle: void putString(java.lang.String,java.lang.String)> -> _SINK_
<android.os.Bundle: void putStringArray(java.lang.String,java.lang.String[])> -> _SINK_
<android.os.Bundle: void putStringArrayList(java.lang.String,java.util.ArrayList)> -> _SINK_
<android.os.Bundle: void putAll(android.os.Bundle)> -> _SINK_

<android.media.AudioRecord: int read(short[],int,int)> -> _SOURCE_
<android.media.AudioRecord: int read(byte[],int,int)> -> _SOURCE_
<android.media.AudioRecord: int read(java.nio.ByteBuffer,int)> -> _SOURCE_
<android.content.pm.PackageManager: java.util.List getInstalledApplications(int)> -> _SOURCE_
<android.content.pm.PackageManager: java.util.List getInstalledPackages(int)> -> _SOURCE_
<android.content.pm.PackageManager: java.util.List queryIntentActivities(android.content.Intent,int)> -> _SOURCE_
<android.content.pm.PackageManager: java.util.List queryIntentServices(android.content.Intent,int)> -> _SOURCE_
<android.content.pm.PackageManager: java.util.List queryBroadcastReceivers(android.content.Intent,int)> -> _SOURCE_
<android.content.pm.PackageManager: java.util.List queryContentProviders(java.lang.String,int,int)> -> _SOURCE_

<android.util.Log: int d(java.lang.String,java.lang.String)> -> _SINK_
<android.util.Log: int d(java.lang.String,java.lang.String,java.lang.Throwable)> -> _SINK_
<android.util.Log: int e(java.lang.String,java.lang.String)> -> _SINK_
<android.util.Log: int e(java.lang.String,java.lang.String,java.lang.Throwable)> -> _SINK_
<android.util.Log: int i(java.lang.String,java.lang.String)> -> _SINK_
<android.util.Log: int i(java.lang.String,java.lang.String,java.lang.Throwable)> -> _SINK_
<android.util.Log: int v(java.lang.String,java.lang.String)> -> _SINK_
<android.util.Log: int v(java.lang.String,java.lang.String,java.lang.Throwable)> -> _SINK_
<android.util.Log: int w(java.lang.String,java.lang.Throwable)> -> _SINK_
<android.util.Log: int w(java.lang.String,java.lang.String)> -> _SINK_
<android.util.Log: int w(java.lang.String,java.lang.String,java.lang.Throwable)> -> _SINK_
<android.util.Log: int wtf(java.lang.String,java.lang.Throwable)> -> _SINK_
<android.util.Log: int wtf(java.lang.String,java.lang.String)> -> _SINK_
<android.util.Log: int wtf(java.lang.String,java.lang.String,java.lang.Throwable)> -> _SINK_

<java.io.OutputStream: void write(byte[])> -> _SINK_
<java.io.OutputStream: void write(byte[],int,int)> -> _SINK_
<java.io.OutputStream: void write(int)> -> _SINK_

<java.io.FileOutputStream: void write(byte[])> -> _SINK_
<java.io.FileOutputStream: void write(byte[],int,int)> -> _SINK_
<java.io.FileOutputStream: void write(int)> -> _SINK_

<java.io.Writer: void write(char[])> -> _SINK_
<java.io.Writer: void write(char[],int,int)> -> _SINK_
<java.io.Writer: void write(int)> -> _SINK_
<java.io.Writer: void write(java.lang.String)> -> _SINK_
<java.io.Writer: void write(java.lang.String,int,int)> -> _SINK_
<java.io.Writer: java.io.Writer append(java.lang.CharSequence)> -> _SINK_

<java.io.OutputStreamWriter: java.io.Writer append(java.lang.CharSequence)> -> _SINK_

<android.content.Intent: android.content.Intent setAction(java.lang.String)> -> _SINK_
<android.content.Intent: android.content.Intent setClassName(android.content.Context,java.lang.Class)> -> _SINK_
<android.content.Intent: android.content.Intent setClassName(android.content.Context,java.lang.String)> -> _SINK_
<android.content.Intent: android.content.Intent setComponent(android.content.ComponentName)> -> _SINK_

%<android.content.Intent: android.content.Intent putExtra(java.lang.String,double[])> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,int)> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,java.lang.CharSequence)> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,char)> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,android.os.Bundle)> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,android.os.Parcelable[])> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,java.io.Serializable)> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,int[])> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,float)> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,byte[])> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,long[])> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,android.os.Parcelable)> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,float[])> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,long)> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,java.lang.String[])> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,boolean)> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,boolean[])> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,short)> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,double)> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,short[])> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,java.lang.String)> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,byte)> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,char[])> -> _SINK_
%<android.content.Intent: android.content.Intent putExtra(java.lang.String,java.lang.CharSequence[])> -> _SINK_

<android.content.Context: void sendBroadcast(android.content.Intent)> -> _SINK_
<android.content.Context: void sendBroadcast(android.content.Intent,java.lang.String)> -> _SINK_
<android.content.Context: void sendOrderedBroadcast(android.content.Intent,java.lang.String)> -> _SINK_

<android.content.ContextWrapper: void sendOrderedBroadcast(android.content.Intent,java.lang.String)> -> _SINK_

<android.media.MediaRecorder: void setVideoSource(int)> -> _SINK_
<android.media.MediaRecorder: void setPreviewDisplay(android.view.Surface)> -> _SINK_
<android.media.MediaRecorder: void start()> -> _SINK_

<android.content.Context: android.content.Intent registerReceiver(android.content.BroadcastReceiver,android.content.IntentFilter)> -> _SINK_
<android.content.Context: android.content.Intent registerReceiver(android.content.BroadcastReceiver,android.content.IntentFilter,java.lang.String,android.os.Handler)> -> _SINK_

<android.content.IntentFilter: void addAction(java.lang.String)> -> _SINK_
<android.telephony.SmsManager: void sendTextMessage(java.lang.String,java.lang.String,java.lang.String,android.app.PendingIntent,android.app.PendingIntent)> android.permission.SEND_SMS -> _SINK_ 
<android.telephony.SmsManager: void sendDataMessage(java.lang.String,java.lang.String,short,byte[],android.app.PendingIntent,android.app.PendingIntent)> android.permission.SEND_SMS -> _SINK_ 
<android.telephony.SmsManager: void sendMultipartTextMessage(java.lang.String,java.lang.String,java.util.ArrayList,java.util.ArrayList,java.util.ArrayList)> android.permission.SEND_SMS -> _SINK_ 
<java.net.Socket: void connect(java.net.SocketAddress)> -> _SINK_
<android.os.Handler: boolean sendMessage(android.os.Message)> -> _SINK_

<android.content.SharedPreferences$Editor: android.content.SharedPreferences$Editor putBoolean(java.lang.String,boolean)> -> _SINK_
<android.content.SharedPreferences$Editor: android.content.SharedPreferences$Editor putFloat(java.lang.String,float)> -> _SINK_
<android.content.SharedPreferences$Editor: android.content.SharedPreferences$Editor putInt(java.lang.String,int)> -> _SINK_
<android.content.SharedPreferences$Editor: android.content.SharedPreferences$Editor putLong(java.lang.String,long)> -> _SINK_
<android.content.SharedPreferences$Editor: android.content.SharedPreferences$Editor putString(java.lang.String,java.lang.String)> -> _SINK_

<android.content.SharedPreferences: android.content.SharedPreferences getDefaultSharedPreferences(android.content.Context)> -> _SOURCE_


<android.bluetooth.BluetoothAdapter: java.lang.String getAddress()> -> _SOURCE_
<android.net.wifi.WifiInfo: java.lang.String getMacAddress()> -> _SOURCE_
<java.util.Locale: java.lang.String getCountry()> -> _SOURCE_
<android.net.wifi.WifiInfo: java.lang.String getSSID()> -> _SOURCE_
<android.telephony.gsm.GsmCellLocation: int getCid()> -> _SOURCE_
<android.telephony.gsm.GsmCellLocation: int getLac()> -> _SOURCE_

<android.accounts.AccountManager: android.accounts.Account[] getAccounts()> -> _SOURCE_
<java.util.Calendar: java.util.TimeZone getTimeZone()> -> _SOURCE_
<android.provider.Browser: android.database.Cursor getAllBookmarks()> -> _SOURCE_
<android.provider.Browser: android.database.Cursor getAllVisitedUrls()> -> _SOURCE_

<org.apache.http.impl.client.DefaultHttpClient: org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest)> -> _SINK_
<org.apache.http.client.HttpClient: org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest)> -> _SINK_

<android.content.ContentResolver: android.database.Cursor query(android.net.Uri,java.lang.String[],java.lang.String,java.lang.String[],java.lang.String)> -> _SOURCE_
<android.content.ContentResolver: android.database.Cursor query(android.net.Uri,java.lang.String[],java.lang.String,java.lang.String[],java.lang.String,android.os.CancellationSignal)> -> _SOURCE_

% This is handled by the Easy Taint Wrapper given that the URL is used afterwards
%<java.net.URL: void <init>(java.lang.String,java.lang.String,int,java.lang.String)> -> _SINK_
%<java.net.URL: void <init>(java.lang.String,java.lang.String,java.lang.String)> -> _SINK_
%<java.net.URL: void <init>(java.lang.String,java.lang.String,int,java.lang.String,java.net.URLStreamHandler)> -> _SINK_
%<java.net.URL: void <init>(java.lang.String)> -> _SINK_
%<java.net.URL: void <init>(java.net.URL,java.lang.String)> -> _SINK_
%<java.net.URL: void <init>(java.net.URL,java.lang.String,java.net.URLStreamHandler)> -> _SINK_

%<android.content.Context: void startActivity(android.content.Intent)> -> _SINK_
%<android.content.ContextWrapper: void startActivity(android.content.Intent)> -> _SINK_
%<android.content.Context: void startActivity(android.content.Intent,android.os.Bundle)> -> _SINK_
<android.content.Context: void startActivities(android.content.Intent[])> -> _SINK_
<android.content.Context: void startActivities(android.content.Intent[],android.os.Bundle)> -> _SINK_
<android.content.Context: android.content.ComponentName startService(android.content.Intent)> -> _SINK_
<android.content.Context: boolean bindService(android.content.Intent,android.content.ServiceConnection,int)> -> _SINK_
<android.content.Context: void sendBroadcast(android.content.Intent)> -> _SINK_
<android.content.Context: void sendBroadcast(android.content.Intent,java.lang.String)> -> _SINK_

%<android.app.Activity: android.content.Intent getIntent()> -> _SOURCE_

<android.app.Activity: void setResult(int,android.content.Intent)> -> _SINK_

% Do not enter this method as a source. Our callback parameter handling will take care
% of the parameters of this method anyway. Adding this method taints the whole activity!
% <android.app.Activity: void onActivityResult(int,int,android.content.Intent)> -> _SOURCE_

%<android.app.Activity: void startActivity(android.content.Intent)> -> _SINK_
%<android.app.Activity: void startActivity(android.content.Intent,android.os.Bundle)> -> _SINK_
<android.app.Activity: void startActivities(android.content.Intent[])> -> _SINK_
<android.app.Activity: void startActivities(android.content.Intent[],android.os.Bundle)> -> _SINK_
<android.app.Activity: void startActivityForResult(android.content.Intent,int)> -> _SINK_
<android.app.Activity: void startActivityForResult(android.content.Intent,int,android.os.Bundle)> -> _SINK_
<android.app.Activity: void startActivityFromChild(android.app.Activity,android.content.Intent,int,android.os.Bundle)> -> _SINK_
<android.app.Activity: void startActivityFromChild(android.app.Activity,android.content.Intent,int)> -> _SINK_
<android.app.Activity: void startActivityFromFragment(android.app.Fragment,android.content.Intent,int,android.os.Bundle)> -> _SINK_
<android.app.Activity: void startActivityFromFragment(android.app.Fragment,android.content.Intent,int)> -> _SINK_
<android.app.Activity: void startActivityIfNeeded(android.content.Intent,int,android.os.Bundle)> -> _SINK_
<android.app.Activity: void startActivityIfNeeded(android.content.Intent,int)> -> _SINK_
<android.app.Activity: android.content.ComponentName startService(android.content.Intent)> -> _SINK_
<android.app.Activity: boolean bindService(android.content.Intent,android.content.ServiceConnection,int)> -> _SINK_
<android.app.Activity: void sendBroadcast(android.content.Intent)> -> _SINK_
<android.app.Activity: void sendBroadcast(android.content.Intent,java.lang.String)> -> _SINK_
<android.app.Activity: void sendBroadcastAsUser(android.content.Intent,android.os.UserHandle)> -> _SINK_
<android.app.Activity: void sendBroadcastAsUser(android.content.Intent,android.os.UserHandle,java.lang.String)> -> _SINK_
<android.app.Activity: void sendOrderedBroadcast(android.content.Intent,java.lang.String,android.content.BroadcastReceiver,android.os.Handler,int,java.lang.String,android.os.Bundle)> -> _SINK_
<android.app.Activity: void sendOrderedBroadcast(android.content.Intent,java.lang.String)> -> _SINK_
<android.app.Activity: void sendOrderedBroadcastAsUser(android.content.Intent,android.os.UserHandle,java.lang.String,android.content.BroadcastReceiver,android.os.Handler,int,java.lang.String,android.os.Bundle)> -> _SINK_
<android.app.Activity: void sendStickyBroadcast(android.content.Intent)> -> _SINK_
<android.app.Activity: void sendStickyBroadcastAsUser(android.content.Intent,android.os.UserHandle)> -> _SINK_
<android.app.Activity: void sendStickyOrderedBroadcast(android.content.Intent,android.content.BroadcastReceiver,android.os.Handler,int,java.lang.String,android.os.Bundle)> -> _SINK_
<android.app.Activity: void sendStickyOrderedBroadcastAsUser(android.content.Intent,android.os.UserHandle,android.content.BroadcastReceiver,android.os.Handler,int,java.lang.String,android.os.Bundle)> -> _SINK_

<android.content.ContentResolver: android.net.Uri insert(android.net.Uri,android.content.ContentValues)> -> _SINK_
<android.content.ContentResolver: int delete(android.net.Uri,java.lang.String,java.lang.String[])> -> _SINK_
<android.content.ContentResolver: int update(android.net.Uri,android.content.ContentValues,java.lang.String,java.lang.String[])> -> _SINK_
<android.content.ContentResolver: android.database.Cursor query(android.net.Uri,java.lang.String[],java.lang.String,java.lang.String[],java.lang.String)> -> _SINK_
<android.content.ContentResolver: android.database.Cursor query(android.net.Uri,java.lang.String[],java.lang.String,java.lang.String[],java.lang.String,android.os.CancellationSignal)> -> _SINK_



% <android.app.Activity: android.view.View findViewById(int)> -> _SOURCE_
<android.database.Cursor: java.lang.String getString(int)> -> _SOURCE_
<android.database.sqlite.SQLiteDatabase: android.database.Cursor query(android.net.Uri,java.lang.String[],java.lang.String,java.lang.String[],java.lang.String)> -> _SOURCE_
<android.database.sqlite.SQLiteDatabase: android.database.Cursor query(android.net.Uri,java.lang.String[],java.lang.String,java.lang.String[],java.lang.String,android.os.CancellationSignal)> -> _SOURCE_

<java.lang.ProcessBuilder: java.lang.Process start()> -> _SINK_
