Class AndroidStartComponentTool
- java.lang.Object
-
- com.ibm.wala.dalvik.ipa.callgraph.androidModel.stubs.AndroidStartComponentTool
-
public class AndroidStartComponentTool extends Object
Grab and set data of AndroidClasses. This class is only used by AndroidModel.getMethodAs() as it got a bit lengthy.- Since:
- 2013-10-22
-
-
Constructor Summary
Constructors Constructor Description AndroidStartComponentTool(IClassHierarchy cha, MethodReference asMethod, Set<IntentStarters.StarterFlags> flags, TypeReference caller, TypeSafeInstructionFactory instructionFactory, ParameterAccessor acc, SSAValueManager pm, VolatileMethodSummary redirect, ParameterAccessor.Parameter self, IntentStarters.StartInfo info, CGNode callerNd)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SSAValue
addPhi(List<? extends SSAValue> from)
Add Phi (if necessary) - not if only one from.void
assignIBinder(SSAValue iBinder, List<? extends SSAValue> allActivities)
Set the iBinder in the callee.void
attachActivities(Set<? extends SSAValue> activities, SSAValue application, SSAValue thread, SSAValue context, SSAValue iBinderToken, SSAValue intent)
SSAValue
fetchCallerContext()
Fetches the context of the caller.SSAValue
fetchIBinder(SSAValue androidContext)
Fetch the permissions to start the component with.void
fetchResults(List<? super SSAValue> resultCodes, List<? super SSAValue> resultData, List<? extends SSAValue> allActivities)
Grab mResultCode and mResultData.void
setIntent(SSAValue intent, List<? extends SSAValue> allActivities)
Call Activity.setIntent.AndroidTypes.AndroidContextType
typeOfCallerContext()
-
-
-
Constructor Detail
-
AndroidStartComponentTool
public AndroidStartComponentTool(IClassHierarchy cha, MethodReference asMethod, Set<IntentStarters.StarterFlags> flags, TypeReference caller, TypeSafeInstructionFactory instructionFactory, ParameterAccessor acc, SSAValueManager pm, VolatileMethodSummary redirect, ParameterAccessor.Parameter self, IntentStarters.StartInfo info, CGNode callerNd)
-
-
Method Detail
-
attachActivities
public void attachActivities(Set<? extends SSAValue> activities, SSAValue application, SSAValue thread, SSAValue context, SSAValue iBinderToken, SSAValue intent)
-
typeOfCallerContext
public AndroidTypes.AndroidContextType typeOfCallerContext()
-
fetchCallerContext
public SSAValue fetchCallerContext()
Fetches the context of the caller.- Returns:
- A new SSAValue representing the androidContext (may be null!). // XXX
-
fetchIBinder
public SSAValue fetchIBinder(SSAValue androidContext)
Fetch the permissions to start the component with. Fetching depends on StarterFlags.QUENCH_PERMISSIONS, XXX- Returns:
- an iBinder
- Throws:
UnsupportedOperationException
- when fetching is not supported with the current settings
-
assignIBinder
public void assignIBinder(SSAValue iBinder, List<? extends SSAValue> allActivities)
Set the iBinder in the callee.
-
setIntent
public void setIntent(SSAValue intent, List<? extends SSAValue> allActivities)
Call Activity.setIntent.
-
fetchResults
public void fetchResults(List<? super SSAValue> resultCodes, List<? super SSAValue> resultData, List<? extends SSAValue> allActivities)
Grab mResultCode and mResultData. This data is used to call onActivityResult of the caller.
-
-