Reflected latest changes in WALA API.

This commit is contained in:
Achim D. Brucker 2017-02-14 01:05:50 +00:00
parent 8b739af88e
commit 7d24c04459
1 changed files with 10 additions and 5 deletions

View File

@ -27,12 +27,14 @@ import com.ibm.wala.dalvik.ipa.callgraph.impl.DexEntryPoint
import com.ibm.wala.dalvik.util.AndroidEntryPointLocator import com.ibm.wala.dalvik.util.AndroidEntryPointLocator
import com.ibm.wala.dalvik.util.AndroidEntryPointLocator.LocatorFlags import com.ibm.wala.dalvik.util.AndroidEntryPointLocator.LocatorFlags
import com.ibm.wala.ipa.callgraph.AnalysisCache import com.ibm.wala.ipa.callgraph.AnalysisCache
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl
import com.ibm.wala.ipa.callgraph.AnalysisOptions import com.ibm.wala.ipa.callgraph.AnalysisOptions
import com.ibm.wala.ipa.callgraph.AnalysisOptions.ReflectionOptions import com.ibm.wala.ipa.callgraph.AnalysisOptions.ReflectionOptions
import com.ibm.wala.ipa.callgraph.AnalysisScope import com.ibm.wala.ipa.callgraph.AnalysisScope
import com.ibm.wala.ipa.callgraph.CallGraph import com.ibm.wala.ipa.callgraph.CallGraph
import com.ibm.wala.ipa.callgraph.Entrypoint import com.ibm.wala.ipa.callgraph.Entrypoint
import eu.aniketos.dasca.crosslanguage.util.Util import eu.aniketos.dasca.crosslanguage.util.Util
import com.ibm.wala.ipa.cha.ClassHierarchyFactory
import com.ibm.wala.ipa.cha.ClassHierarchy import com.ibm.wala.ipa.cha.ClassHierarchy
import brut.androlib.ApkDecoder import brut.androlib.ApkDecoder
import spray.json._ import spray.json._
@ -45,6 +47,9 @@ import com.ibm.wala.cast.js.loader.JavaScriptLoader
import com.ibm.wala.cast.js.html.WebUtil import com.ibm.wala.cast.js.html.WebUtil
import com.ibm.wala.classLoader.SourceURLModule import com.ibm.wala.classLoader.SourceURLModule
import com.ibm.wala.classLoader.SourceModule import com.ibm.wala.classLoader.SourceModule
import com.ibm.wala.classLoader.SourceFileModule
import com.ibm.wala.classLoader.ModuleEntry
import com.ibm.wala.classLoader.Module
import scala.concurrent._ import scala.concurrent._
import ExecutionContext.Implicits.global import ExecutionContext.Implicits.global
import scala.concurrent.duration._ import scala.concurrent.duration._
@ -164,8 +169,8 @@ class CordovaCGBuilder(val apk: File, val apkUnzipDir: File) {
} }
val scope = AndroidAnalysisScope.setUpAndroidAnalysisScope(apk.toURI(), getClass.getClassLoader.getResource("javaexclusions.txt").getFile, CordovaCGBuilder.getClass.getClassLoader()) val scope = AndroidAnalysisScope.setUpAndroidAnalysisScope(apk.toURI(), getClass.getClassLoader.getResource("javaexclusions.txt").getFile, CordovaCGBuilder.getClass.getClassLoader())
scope.addToScope(ClassLoaderReference.Primordial, new JarFileModule(new JarFile(tmpAndroidJar))) scope.addToScope(ClassLoaderReference.Primordial, new JarFileModule(new JarFile(tmpAndroidJar)))
val cha = ClassHierarchy.make(scope) val cha = ClassHierarchyFactory.make(scope)
val cache = new AnalysisCache(new DexIRFactory()) val cache = new AnalysisCacheImpl(new DexIRFactory())
val eps = new AndroidEntryPointLocator(Set( val eps = new AndroidEntryPointLocator(Set(
LocatorFlags.INCLUDE_CALLBACKS, LocatorFlags.EP_HEURISTIC, LocatorFlags.CB_HEURISTIC).asJava) LocatorFlags.INCLUDE_CALLBACKS, LocatorFlags.EP_HEURISTIC, LocatorFlags.CB_HEURISTIC).asJava)
val pluginEntryPoints = getPluginEntryPoints(cha) val pluginEntryPoints = getPluginEntryPoints(cha)
@ -196,9 +201,9 @@ class CordovaCGBuilder(val apk: File, val apkUnzipDir: File) {
val loaders = new WebPageLoaderFactory(new CAstRhinoTranslatorFactory()) val loaders = new WebPageLoaderFactory(new CAstRhinoTranslatorFactory())
val scripts = makeHtmlScope(entrypoint.toURI().toURL(), loaders, pluginInfos); val scripts = makeHtmlScope(entrypoint.toURI().toURL(), loaders, pluginInfos);
preprocessApkDir(scripts, pluginInfos) preprocessApkDir(scripts, pluginInfos)
val cache = new AnalysisCache(AstIRFactory.makeDefaultFactory()) val cache = new AnalysisCacheImpl(AstIRFactory.makeDefaultFactory())
val scope = new CAstAnalysisScope(scripts.toArray, loaders, Collections.singleton(JavaScriptLoader.JS)) val scope = new CAstAnalysisScope((scripts:List[Module]).toArray, loaders, Collections.singleton(JavaScriptLoader.JS))
val cha = ClassHierarchy.make(scope, loaders, JavaScriptLoader.JS) val cha = ClassHierarchyFactory.make(scope, loaders, JavaScriptLoader.JS)
val roots = JSCallGraphUtil.makeScriptRoots(cha) val roots = JSCallGraphUtil.makeScriptRoots(cha)
val options = JSCallGraphUtil.makeOptions(scope, cha, roots) val options = JSCallGraphUtil.makeOptions(scope, cha, roots)
try { try {