package com.ibm.wala.mobile; import java.io.File; import java.io.FileFilter; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; public class Libraries { public static URI[] analysisLibs() throws IOException, URISyntaxException { List<URI> result = new ArrayList<URI>(); String libPath = "/data/WALA/stdlibs/" + android.os.Build.VERSION.RELEASE; System.err.println(libPath); for (String lib : new File(libPath).list()) { System.err.println(lib); result.add(new File(libPath + "/" + lib).toURI()); } return result.toArray(new URI[ result.size() ]); } public static URI[] systemLibs() { List<URI> libs = new ArrayList<URI>(); for(File f : new File("/system/framework/").listFiles(new FileFilter() { @Override public boolean accept(File pathname) { String name = pathname.getName(); return (name.startsWith("core") || name.startsWith("framework")) && (name.endsWith("jar") || name.endsWith("apk")); } })) { System.out.println("adding " + f); libs.add(f.toURI()); } return libs.toArray(new URI[ libs.size() ]); } public static URI[] coreLibs() { List<URI> libs = new ArrayList<URI>(); for(File f : new File("/system/framework/").listFiles(new FileFilter() { @Override public boolean accept(File pathname) { String name = pathname.getName(); return (name.contains("core") || name.contains("framework")) && name.endsWith(".jar"); } })) { System.out.println("adding " + f); libs.add(f.toURI()); } return libs.toArray(new URI[ libs.size() ]); } }