Fix tests disrupted by re-modelling and stubbing Android 9:

* Account for changed dataflow graph shape using external flow
* Account for BaseBundle only existing as of Android 5
* Properly implement Parcelable, which we previously got away with due to a partial stub
* Restore an Android 11 function that had been added to the Android 9 Context class (I won't get into enforcing the difference in this PR)
This commit is contained in:
Chris Smowton
2021-08-11 09:51:47 +01:00
parent 81c0e66b1d
commit 1dffbcd0bd
47 changed files with 2083 additions and 3 deletions

View File

@@ -221,10 +221,12 @@ class CreateFromParcelMethod extends Method {
private class TaintPropagationModels extends SummaryModelCsv {
override predicate row(string s) {
// BaseBundle getters
// BaseBundle getters. These are also modelled on Bundle because BaseBundle was factored out of Bundle
// in Android 5.0; before that these methods were declared directly on Bundle.
s =
"android.os;BaseBundle;true;get" + ["Boolean", "Double", "Int", "Long", "String"] +
["", "Array"] + ";;;Argument[-1];ReturnValue;taint"
"android.os;" + ["BaseBundle", "Bundle"] + ";true;get" +
["Boolean", "Double", "Int", "Long", "String"] + ["", "Array"] +
";;;Argument[-1];ReturnValue;taint"
or
// Bundle getters
s =