-
Notifications
You must be signed in to change notification settings - Fork 302
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
jimple2cpg: improvement for large Android apk loading (#2331)
This commit address two issues: While loading Android apk with soot's src_prec_apk_c_j, it takes more time than src_prec_apk. In my experiment, It takes about 70s to process a modern (large, ~ 120MB, with ~ 100,000 classes) apk in Scene.v().loadNecessaryClasses(), however it only takes about 7s, which is 10x faster, to process the same file with src_prec_apk. So I add an option to accept the path to android.jar to make it work. When Soot creates JimpleBody for some methods, it may throws exception StmtSwitch: type of throw argument is not a RefType. This problem is discussed in Exception in Jimple Body Creation with original names: IllegalStateException: UnitThrowAnalysis StmtSwitch: type of throw argument is not a RefType! soot-oss/soot#1256, but AFAIK it's not yet fixed, so the workaround is to disable jb.use-original-names when processing apk, since in most cases there are no original names when dealing with bytecode anyway.
- Loading branch information
Showing
2 changed files
with
29 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters