SimiDroid icon indicating copy to clipboard operation
SimiDroid copied to clipboard

Using SimiDroid out of memory

Open SoarLife opened this issue 6 years ago • 0 comments

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

SoarLife avatar Aug 16 '19 10:08 SoarLife