[Soot-list] automatic instrument the results produced by FlowDroid with "Failure [INSTALL_FAILED_DEXOPT]"

Steven Arzt Steven.Arzt at cased.de
Thu Sep 25 08:45:33 EDT 2014


Hi Jin,

 

Please send me the APK file.

 

Best regards,

  Steven

 

Von: Jin Li [mailto:lijin1988 at gmail.com] 
Gesendet: Donnerstag, 25. September 2014 11:04
An: soot-list at CS.McGill.CA; soot-list at sable.mcgill.ca; Steven Arzt
Betreff: automatic instrument the results produced by FlowDroid with "Failure [INSTALL_FAILED_DEXOPT]"

 

Hi all,

I want to check if the results produced by FlowDroid are really reached at runtime. So I instrument the statments of the results automaticly as soon as these paths are produced.

But when I install the instrumented apk on my devices, it said that 
Failure [INSTALL_FAILED_DEXOPT]

I think I had something wrong when instrumenting the apk.

some related code snippets:

public class TaintFlowInstrumentDriver {
    
    public static InfoflowResults infoflowResults;

    /**
     * @param args[0] = path to apk-file
     * @param args[1] = path to android-dir (path/android-platforms)
     * @throws InterruptedException 
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException, InterruptedException {
        
        //insert some code for getting flowdroid results which represents the taintgraph
        if(args.length < 2){
            printUsage();
            return;
        }
        String filePath = args[0];
        String androidJarPath = args[1];
        infoflowResults = runAnalysis(filePath, androidJarPath);
        
        soot.G.reset();
        //prefer Android APK files// -src-prec apk
        Options.v().set_src_prec(Options.src_prec_apk);
        
        //output as APK, too//-f J
        Options.v().set_output_format(Options.output_format_dex);
        Options.v().set_output_dir("D:\\Android\\sootOutput");
        Options.v().set_process_dir(Collections.singletonList("D:\\Android\\TestApk\\traccar-client-debug-unaligned.apk"));
        Options.v().set_allow_phantom_refs(true);
        Options.v().set_whole_program(true);
        Options.v().set_soot_classpath(".;D:\\Android\\adt-bundle-windows-x86_64-20131030\\sdk\\platforms\\android-19\\android.jar");
        Options.v().set_android_jars("D:\\Android\\adt-bundle-windows-x86_64-20131030\\sdk\\platforms");
        
        
        Scene.v().addBasicClass("java.io.PrintStream",SootClass.SIGNATURES);
        Scene.v().addBasicClass("java.lang.System",SootClass.SIGNATURES);
        Scene.v().addBasicClass("InstrumentHelper",SootClass.SIGNATURES);

        Scene.v().loadNecessaryClasses();
        PackManager.v().getPack("jtp").add(new Transform("jtp.myInstrumenter", new TaintFlowInstrument()));
        soot.Main.main(args);
    }


    Even I use an empty Instrumentation whch I mean I do not instrument any stmts in internalTransform(), the transformed apk can't install on my devices.

Did you have any idea about my results?  or
Can you shed light on me about instrumening the results of FlowDroid?



Best Regards,

Jin

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20140925/086ce972/attachment-0002.html 


More information about the Soot-list mailing list