Giter Club home page Giter Club logo

Comments (12)

reddr avatar reddr commented on June 24, 2024 1

Time for an update:

  • As stated above, WALA master has already multi-dex support and also allows to keep unresolvable superclasses in the CHA.

  • My pull request for adding isSynthetic checks on IMethod/IClass has recently been merged into master wala/WALA#359

  • While testing WALA master, I encountered two bugs and proposed patches (wala/WALA#361 and wala/WALA#358). They have also been merged into master.

  • As for the problem with an empty IR for clinit methods, good news is that this has been resolved already some time ago, so no need for additional action.

This should be everything necessary to port LibScout to WALA master. If everything works with the provided patches, I'll request a new WALA release that can then be added to LibScout's gradle config.

from libscout.

reddr avatar reddr commented on June 24, 2024 1

We are getting closer, I just proposed a patch for building the ClassHierarchy that does not dismiss classes when superclasses are not statically resolvable (see wala/WALA#377).

Besides that, there is a minor issue with the multi-dex support. Although, it is supported in the current WALA version, there is currently no helper function to conveniently setup an AnalysisScope for multi-dex apks. I pushed a PR as well (wala/WALA#378), but, in theory, this could also be added as workaround in LibScout's code base.

from libscout.

reddr avatar reddr commented on June 24, 2024 1

I updated LibScout to the new smali v2.2.6.

In the meantime, the remaining PR got merged into WALA master. Now waiting for the new release to update LibScout accordingly.

from libscout.

eighthave avatar eighthave commented on June 24, 2024

Thanks for doing this! It'll make Debian integration a lot easier. Let us know when you know which WALA lib you need. If the JOANA library is plain Java, it should be relatively easy to package.

from libscout.

reddr avatar reddr commented on June 24, 2024

After some initial testing, it seems that WALA's PhantomClass workaround for unresolvable classes (e.g. classes used as superclass that are not statically linked in the app code) throws exceptions in certain situations (see discussion in wala/WALA#335). This needs to be resolved somehow before we can proceed.

from libscout.

reddr avatar reddr commented on June 24, 2024

So finally I upgraded the code base to the current WALA/dexlib2 master (LibScout version 2.3.0)!

Still, I have to provide pre-compiled binaries, as not all patches are merged yet.
The current status is as follows:

  • wala/WALA#377 is successfully merged (don't dismiss classes with unresolvable superclasses)
  • Regarding the WALA patch for AnalysisScope multi-dex support (wala/WALA#378), it turned out that for a proper solution a tiny change in the dexlib2 code is required. I opened a PR (JesusFreke/smali#673), but the dexlib development apparently has slowed down significantly, thus it's unsure when this is going to be merged.

Anyways, I patched the respective code bases and provide the pre-compiled binaries to speed up things. As soon as there is progress in the PRs, I will update LibScout accordingly.

from libscout.

eighthave avatar eighthave commented on June 24, 2024

from libscout.

reddr avatar reddr commented on June 24, 2024

Not yet, as soon as the multi-dex support PR is merged, I'll ask for a tagged release.

from libscout.

reddr avatar reddr commented on June 24, 2024

We are finally there. LibScout 2.3.1 fetches the new WALA libs (v1.5.1) from maven central!

from libscout.

eighthave avatar eighthave commented on June 24, 2024

from libscout.

reddr avatar reddr commented on June 24, 2024

Hmm, if it is compiled with gradle you can execute the jar without args. Then a usage message is shown with an exit code 1.

For a functional test, it would have to be set up to profile a single lib version and then used in match mode on a small app test includes it and finally check the json output.

The single library profile could also be pre-packaged, such that only the match mode would have to be run.

For some test, LibScout could only profile a single lib version and you test whether a .libv file is output with a specific size.

But all these tests, require some kind of setup.

from libscout.

eighthave avatar eighthave commented on June 24, 2024

from libscout.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.