soot-oss / soot

Soot - A Java optimization framework
GNU Lesser General Public License v2.1
2.85k stars 706 forks source link

set_process_multiple_dex #1994

Open tyousyuka opened 1 year ago

tyousyuka commented 1 year ago

@linghuiluo hello I have an APK, more than 70MB, and containing 3. dex files or more , If I set Options.v().set_process_multiple_dex(false), it can successfully parse and complete within 40 seconds, If I set Options.v().set_process_multiple_dex(true), it will not be able to successfully parse for 2 hours, So if I want it to be able to set Options.v().set_process_multiple_dex(true), and successfully parse within one minute, what should I do?

jpstotz commented 1 year ago

Most likely this is caused by one or two methods present in the non-main dex files.

Soot has some serious problems when it comes to parsing certain long methods as the used algorithms are very inefficient and have an exponentially growing run-time (see e.g. #1906). As those algorithms are in the inner core of Soot solving is not that easy.