Commit Graph

237 Commits

Author SHA1 Message Date
Tobias Blaschke 0543761699 Read AndroidManifest.xml
Reading in this file is needed for determining targets of Intents.
2014-04-11 17:53:11 +02:00
Tobias Blaschke 5ba668c8ae Android Intents: add special context
Whenever an Intent is encountered while building the CallGraph a
WALA-Context is generated for it. If a new Android-Component is started
and the Context is sufficient the start-function will call a new type of
model, the MicroModel.

The MicroModel resemples the livecycle of a single Android-Component.
2014-04-11 17:53:11 +02:00
Tobias Blaschke c33207d793 Android-Intents: context-free overrides
Whenever the start of an intent is encountered the start-function is
replaced by a call to UnknownTargetModel.

UnknownTargetModel will call a restricted android-model (i.e. one that calls only all
Activities). This restricted model is known as MiniModel.
It will also call ExternalModel which does nothing special.
2014-04-11 17:53:11 +02:00
Tobias Blaschke beb97a59e9 Add structure to Android Livecycle
The added structure is governed by an AbstractAndroidModel. When
"labels" are stepped over it may insert special handling code.
2014-04-11 17:53:11 +02:00
Tobias Blaschke 63616da3d2 Implement CB_HEURISTIC for locating EntryPoints
CB_HEURISTIC searches for all methods overwriting or implementing
methods of android that have not been covered by EP_HEURISTIC
2014-04-11 17:53:11 +02:00
Tobias Blaschke 64a1eb0a60 Build basic Android-Livecycle (sequential)
Generate a synthetic AndroidModel in AndroidModelClass.
The model will contain Android EntryPoints in a sorted manner. However
no special handling (loops) are inserted yet.

Intents are not processed at all - thus have to be marked insecure.
2014-04-11 17:53:11 +02:00
Tobias Blaschke a05c823724 Add structures for parameters to Androids entrypoints
Parameters to Androids EntryPoint-Functions may be either marked CREATE
or REUSE. Added these markers and made them availabel through
AndroidEntryPointManager.
2014-04-11 17:53:11 +02:00
Tobias Blaschke b840b55600 AndroidModel: Add central config class
The class AndroidEntryPointManager will contain all configuration data
for building the Android Livecycle Model
2014-04-11 17:53:10 +02:00
Tobias Blaschke 1d527a607b Add hardcoded Android EntryPoints
Added a good bunch of specifications which functions to considder as
EntryPoints for Android Apps. These will be evaluated by
AndroidEntryPointLocator
2014-04-11 17:53:10 +02:00
Tobias Blaschke 1e9298f3d7 Locate Androids EntryPoints
Locating them will be based on a set of hardcoded specifications (next
commit) or by using heuristics.
2014-04-11 17:53:10 +02:00
Tobias Blaschke b8b1fca292 Constants for Android-Types
Added Android-Specific types as TypeName and TypeReference
2014-04-11 17:53:10 +02:00
Tobias Blaschke f8970f92b7 Enable variable-names in Synth. Methods
Using a SummarizedMethodWithNames instead of a normal one enables human
readable variable names in WALA-Synthetic methods. This should help
when debugging.
2014-04-11 17:53:10 +02:00
Tobias Blaschke 34faac169d Fixes on AndroidAnalysisScope
Depending on the method used generating an AnalysisScope failed for
Android-Apps. Especially depending on wheater data was used from a
jar-resource or depending on exclusions.txt
2014-04-11 17:51:59 +02:00
Martin Mohr 54ec3410e7 don't add jdk libs to android analysis scope
CAUTION: Now you have to make sure that the provided android lib actually contains all standard
java classes (e.g. java.lang.Object); WALA will complain and crash if this is not the case
2014-03-31 11:20:17 +02:00
Martin Mohr a01d1a969f change default for logging 2014-03-31 11:20:00 +02:00
Martin Mohr 0235ea847a bugfix: handle the case that there is a series of array-register moving instructions between a new-array and a fill-array-data 2013-08-30 17:19:54 +02:00
Martin Mohr d8c7ce0c51 kill useless class 2013-08-27 11:32:24 +02:00
Martin Mohr 2812a6ed52 do not use the synthetic bit of the dalvik bytcode to implement IMethod.isSynthetic in DexIMethod (the shrike frontend also ignores the respective bit in java bytecode) - in WALA, 'synthetic' means 'does not originate from bytecode' and not 'the compiler generated this method' 2013-08-21 13:43:16 +02:00
Juergen Graf afaebe81a9 fix compile errors in dalvik frontend 2013-07-02 16:03:13 +02:00
Martin Mohr c2909efdbe make logging of com.ibm.wala.dalvik configurable (to switch off, just edit new config file 'logback.xml') 2013-03-28 13:07:28 +01:00
Martin Mohr a80e63093e remove unused dependency of com.ibm.wala.dalvik on com.ibm.wala.cast.java 2013-03-26 15:52:22 +01:00
Juergen Graf 5a06c07ca7 remove warnings from com.ibm.wala.dalvik 2013-03-12 01:24:38 +01:00
Juergen Graf 6401269da1 fix some warnings and remove absolute path in build configuration for com.ibm.wala.dalvik 2013-03-12 01:05:15 +01:00
Martin Mohr 123c1b9d18 do not check for activities while loading classes... 2013-02-07 17:25:06 +01:00
Martin Mohr 095caeebff also add standard scope so that standard java classes are correctly resolved 2013-02-06 20:52:37 +01:00
Martin Mohr d0d2609bf3 cleanup in com.ibm.wala.dalvik project 2013-02-06 14:29:28 +01:00
Martin Mohr 77275aad73 fix compilation problems, remove dependency on wala test project, transform eclipse project dependencies into plugin dependencies 2014-04-09 02:43:32 +02:00
Martin Mohr 09f82ecec1 Copyright notice 2013-02-06 09:03:20 +01:00
Martin Mohr 55dadb2de1 visibility change to setUpAnalysisScope 2013-02-06 08:21:53 +01:00
Martin Mohr 0c6f0849cd make com.ibm.wala.dalvik a plugin project 2013-02-01 11:17:27 +01:00
Martin Mohr 114e911005 helper class for commit db5f4d0ad837a5ae529c6b74fdd80eb9bada4d87 2013-02-01 11:14:09 +01:00
Martin Mohr 8eb6567e94 add android lib, model and example app to make test run possible (only temporary) 2013-02-01 11:13:03 +01:00
Martin Mohr cc239d5803 add some variants of existing methods to be independent of scandroid specific stuff 2013-02-01 11:11:41 +01:00
Martin Mohr e82155e27b delete spurious classes 2013-02-01 11:10:38 +01:00
Martin Mohr 2e8d1a9adf remove spurious com.ibm.wala.ssa classes and package (from dalvik project) 2013-01-31 17:02:51 +01:00
Martin Mohr d2288201cf fix classpath of dalvik eclipse project 2013-01-31 17:01:59 +01:00
Martin Mohr 3e9751539c new project: WALA frontend for dalvik bytecode (based on SCanDroid) 2013-01-31 16:54:35 +01:00