SimiDroid
SimiDroid copied to clipboard
Using SimiDroid out of memory
I try to analyse 1400+(about 5G size)apk's Similarities,and I download the android-platform from https://github.com/lilicoding/android-platforms as cf recommented.
And simidroid-config.xml :
<SimiDroid>
<AndroidJarsPath>android-platforms</AndroidJarsPath>
<Plugin name="METHOD">
<LibrarySetPath>res/libs91.txt</LibrarySetPath>
</Plugin>
</SimiDroid>
I run the SimiDroid.jar from the download unzip file:
/artefacts/SimiDroid.jar
and my apks is in apks/
java -jar SimiDroid.jar apks/
after hours,I get this exception:
Soot started on Fri Aug 16 17:46:41 CST 2019
Using 'android-platforms\android-21\android.jar' as android.jar
Warning: java.lang.invoke.LambdaMetafactory is a phantom class!
Warning: java.lang.ref.Finalizer is a phantom class!
Warning: android.hardware.fingerprint.FingerprintManager$AuthenticationCallback is a phantom class!
Warning: android.hardware.fingerprint.FingerprintManager$AuthenticationResult is a phantom class!
Warning: android.hardware.fingerprint.FingerprintManager$CryptoObject is a phantom class!
Warning: android.hardware.fingerprint.FingerprintManager is a phantom class!
Warning: android.view.SearchEvent is a phantom class!
Soot has run out of the memory allocated to it by the Java VM.
To allocate more memory to Soot, use the -Xmx switch to Java.
For example (for 2GB): java -Xmx2g soot.Main ...
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.AbstractList.iterator(Unknown Source)
at soot.dexpler.DexBody.usedTypes(DexBody.java:231)
at soot.dexpler.DexMethod.makeSootMethod(DexMethod.java:142)
at soot.dexpler.DexClassLoader.loadMethod(DexClassLoader.java:36)
at soot.dexpler.DexClassLoader.makeSootClass(DexClassLoader.java:105)
at soot.dexpler.DexlibWrapper.makeSootClass(DexlibWrapper.java:177)
at soot.dexpler.DexResolver.resolveFromFile(DexResolver.java:60)
at soot.DexClassSource.resolve(DexClassSource.java:52)
at soot.SootResolver.bringToHierarchy(SootResolver.java:243)
at soot.SootResolver.bringToSignatures(SootResolver.java:275)
at soot.SootResolver.bringToBodies(SootResolver.java:313)
at soot.SootResolver.processResolveWorklist(SootResolver.java:166)
at soot.SootResolver.resolveClass(SootResolver.java:134)
at soot.dexpler.DexlibWrapper.initialize(DexlibWrapper.java:159)
at soot.dexpler.DexResolver.resolveFromFile(DexResolver.java:57)
at soot.DexClassSource.resolve(DexClassSource.java:52)
at soot.SootResolver.bringToHierarchy(SootResolver.java:243)
at soot.SootResolver.bringToSignatures(SootResolver.java:275)
at soot.SootResolver.bringToBodies(SootResolver.java:313)
at soot.SootResolver.processResolveWorklist(SootResolver.java:166)
at soot.SootResolver.resolveClass(SootResolver.java:134)
at soot.Scene.loadClass(Scene.java:805)
at soot.Scene.loadClassAndSupport(Scene.java:790)
at soot.Scene.loadNecessaryClasses(Scene.java:1528)
at soot.Main.run(Main.java:243)
at soot.Main.main(Main.java:147)
at lu.uni.snt.simidroid.plugin.method.MethodFeatureExtraction.extract(MethodFeatureExtraction.java:38)
at lu.uni.snt.simidroid.TestApps.SimiDroidClient4MI.compare(SimiDroidClient4MI.java:67)
at lu.uni.snt.simidroid.TestApps.SimiDroidClient4MI.start(SimiDroidClient4MI.java:36)
at lu.uni.snt.simidroid.TestApps.SimiDroidClient.main(SimiDroidClient.java:52)
so I can I solve this problem?thanks