Commit Graph

4462 Commits

Author SHA1 Message Date
Martin Mohr a6917e46ad Summary of FileOutputStream.writeBytes: simulate reading from array and writing to outside ('real world') 2014-05-16 15:19:21 +02:00
Martin Mohr 671bbcec01 Method Summaries: add support for reading array load instructions from XML 2014-05-16 15:19:21 +02:00
Martin Mohr 72a0b70e1c model for FileOutputStream.writeBytes 2014-05-16 15:19:21 +02:00
Martin Mohr 51b28a45b6 let FileInputStream.readBytes() modify the given array 2014-05-16 15:18:02 +02:00
Juergen Graf 7c80cd3c97 allow a default method state to be injected into the interprocedural exception analysis 2014-05-06 23:55:49 +02:00
Juergen Graf cc5162b95f remove some compiler warnings in nullpointer analysis 2014-05-06 23:55:49 +02:00
Juergen Graf 00a9b03389 always compute exception pruned cfg, not only when standard analysis was successful 2014-05-06 23:53:18 +02:00
Julian Dolby 91fe95c05d classpath file. i have no idea where it went 2014-04-30 10:13:10 -04:00
Julian Dolby 038a39dbf5 bug fixes for source buffers when the source files is all on a single
line
2014-04-29 11:21:58 -04:00
Julian Dolby 92bec0cc0b move to Reader API to help with annoying /r/n issues is source mapping 2014-04-29 11:21:01 -04:00
Julian Dolby 6bb598e6dc fix for annyoing \r\n newline issues in text from html files 2014-04-29 11:19:14 -04:00
Julian Dolby a7c44d4789 new helper method 2014-04-29 11:17:38 -04:00
Julian Dolby de5f123fbd Merge branch 'master' of https://github.com/wala/WALA 2014-04-29 09:21:33 -04:00
Julian Dolby 05cf4e4f66 Merge branch 'master' of https://github.com/wala/WALA
Conflicts:
	com.ibm.wala.core/.classpath
2014-04-29 09:21:18 -04:00
Manu Sridharan 600e5ad50f synchronize methods. Fixes #43 2014-04-24 12:35:34 -07:00
Julian Dolby ab5ee8b3a5 merge 2014-04-24 09:01:01 -04:00
Manu Sridharan a4c1774ee0 fix compile errors for com.ibm.wala.core 2014-04-11 12:54:59 -07:00
Tobias Blaschke 71060b7348 Document Android-Stuff (II) 2014-04-11 17:59:10 +02:00
Tobias Blaschke f83ee59d8d Add UnknownIntent to AndroidSettingFactory 2014-04-11 17:59:09 +02:00
Tobias Blaschke 92ee930865 Document Android stuff (I)
I'm going through all "my" classes and add documentation where missing.
2014-04-11 17:59:09 +02:00
Tobias Blaschke cc2ffec023 Additional check in ParameterAccessor
getThisAs tests for supertype now
2014-04-11 17:59:09 +02:00
Tobias Blaschke 5f51dac201 Additional structural Models for Android
Now there are four structural models:
* SequentialAndroidModel:   No loops
* SingleStartAndroidModel:  User Interaction on a single component
* LoopAndroidModel:         Stuff goes into background and comes back
* LoopKillAndroidModel:     Restart of components due to low memory
2014-04-11 17:59:09 +02:00
Tobias Blaschke 1857121a44 Add "Custom Change" where applicable
Added the lines
BEGIN Custom Change
END Custom Change
2014-04-11 17:58:33 +02:00
Tobias Blaschke 3751366295 Bail out more information on failed assertion 2014-04-11 17:56:48 +02:00
Tobias Blaschke dc2522f937 Add debugging info
Output the method and stackTrace for my new "most favourite" assertion
and continue.
2014-04-11 17:56:48 +02:00
Tobias Blaschke e1fd417627 Extend DefaultInstantiationBehavior 2014-04-11 17:56:47 +02:00
Tobias Blaschke 2818ad33ad Document settings
Add more documentation on the settings for generationg a Livecycle-model
2014-04-11 17:56:47 +02:00
Tobias Blaschke 851594cff5 Make Intents immutable when attached to Context
Oops.
Fixes in intent-Resolution
2014-04-11 17:56:47 +02:00
Tobias Blaschke 8e7d44f6dc Better checks no system-components are included.
Before Activitys defined in the API could be pulled into the
entriepoints.

TODO: How can these get "Application" as loader?
2014-04-11 17:56:47 +02:00
Tobias Blaschke aa3e2c6d2a connetcThrough: Handle when param exluded
When the type of a parameter is in the exlusions connectThrough will
step over it now
2014-04-11 17:56:47 +02:00
Tobias Blaschke 042b1d6a01 Add some checks and output more info
AndroidPreFlightChecks now warns about entrypoints having a parameter
of type Object.
2014-04-11 17:56:47 +02:00
Tobias Blaschke 34b5c7284a Allow changing the target of an Intent.
Code oftain sets the action of an Intent after it's constructor. Until
now a call to such a setter caused the Intent to become "unbound"
(conservative).

This approch allows setting the target once for each Intent - only on
the second call the Intent gets unbound.
This new variant could be dangerous: Setting the target in a branch of
execution may be invalid. This should be detected - no guarantees so!

Methods in question are:
* Intent.setAction
* Intent.setComponent
* Intent.setClass
* Intent.setClassName
2014-04-11 17:56:47 +02:00
Tobias Blaschke b27bd944dc IntentModel also calls Application and Provider EPs.
As the IntentModel should only be used on the start of an Analysis this
is the correct approach here.
2014-04-11 17:56:47 +02:00
Tobias Blaschke cbfca1df4e Call setIntent when starting a Component.
Before the Intent would only have been set by calling .attach (if
doBootSequence is enabled). Attach is only called when the modell is
filled with instructions.

This new variant calls setIntent when creating the wrapper for the model
(getMethodAs). This is much better!
2014-04-11 17:56:47 +02:00
Tobias Blaschke eb4e3e4b58 Use setExplicit in androids Intent-Constructor 2014-04-11 17:56:46 +02:00
Tobias Blaschke 5a8c676a76 Disable extraction of AndroidContext
The AndroidContext was not used anyways.
2014-04-11 17:56:46 +02:00
Tobias Blaschke abcd578a61 Use getters and setters for Intents, add explicit-attribute
These Changes are necessary to make the target of an Intent changeable.
Additionaly some preparing changes in the IntentMap
2014-04-11 17:56:46 +02:00
Tobias Blaschke 3533156542 More info on AndroidEntryPoints selected by heuristic 2014-04-11 17:56:46 +02:00
Tobias Blaschke bf0e1a6347 Extend handling of IntentContext
* Create IntentContext even if no info available.
  This is necessary to also track the start of unknown targets.

* Invalidate the target of an Inten upon a call to Intent.setAction
  or Intent.fillIn

Additionally tidied up the classes a bit.
2014-04-11 17:56:46 +02:00
Tobias Blaschke c4eb253721 Fixes in the UnknownTarget model.
Before the model went by the wrong Name, it failed if no app-internal
implementations of the targetType existed.

Also tidied up the code.
2014-04-11 17:56:46 +02:00
Tobias Blaschke bd8f793135 Add a model for SystemServices
The SystemServiceModel creates and returns a new Instance of the
requested Service (if known).

TODO: We should use a single "global" instance per service instead.
2014-04-11 17:56:46 +02:00
Tobias Blaschke 224077d344 Fix Phi-Problem in SpecializedInstantiator
Under some curcumstances there was a hick-up when Phi-ing together some
newly generated instances.
2014-04-11 17:56:46 +02:00
Tobias Blaschke eced01bcb0 Add debug info and toString methods 2014-04-11 17:54:03 +02:00
Tobias Blaschke 1dc721710f Fix handling of types not in cha
Before the TypeSafeInstructionFactory would throw. Now it ignores.
2014-04-11 17:53:14 +02:00
Tobias Blaschke 1121b59b3b Handling getSystemService.
Code to resolve a call to getSystemService to an actual Object based on
the String given to getSystemService.

Currently there's only TelephonyManager.
2014-04-11 17:53:14 +02:00
Tobias Blaschke f561f1213d Make flat components optional 2014-04-11 17:53:14 +02:00
Tobias Blaschke d7f0d07122 Create Conponent instances in clinit 2014-04-11 17:53:14 +02:00
Tobias Blaschke a9864a5dab Added specialized instantiators.
Creating an instance of e.g. Context would pull in all compontents
yielding a ununsable result.
2014-04-11 17:53:13 +02:00
Tobias Blaschke ece84ddf76 Fix field-handling for Intent-Wrappers
The IntentContextInterpreter always returned an empty set of fields
2014-04-11 17:53:13 +02:00
Tobias Blaschke 64749b91fe Decrease some log-levels
Output was a bit to verbose.
2014-04-11 17:53:13 +02:00