Package soot.jimple.toolkits.base
Class RenameDuplicatedClasses
- java.lang.Object
-
- soot.Transformer
-
- soot.SceneTransformer
-
- soot.jimple.toolkits.base.RenameDuplicatedClasses
-
public class RenameDuplicatedClasses extends SceneTransformer
A scene transformer that renames the duplicated class names. The definition of duplicated class names. if (className1.equalsIgnoreCase(className2) { //className1 and className2 are duplicated class names. } Because some file systems are case-insensitive (e.g., Mac OS). When file a.b.c.class exists, a.b.C.class will over-write the content of a.b.c.class and case inconsistent that a.b.c.class file contains the content of a.b.C.class. However, in some case, at lest in Android applications, the duplicated class names exist. For example, an app (Sha256: 0015AE7C27688D45F79170DCEA16131CE557912A1A0C5F3B6B0465EE0774A452) in the Genome project contains duplicated class names. When transforming the app to classes, some classes are missing and consequently case problems for other analysis tools that relay on Soot (e.g., Error: class com.adwo.adsdk.s read in from a classfile in which com.adwo.adsdk.S was expected).
-
-
Constructor Summary
Constructors Constructor Description RenameDuplicatedClasses(Singletons.Global g)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
duplicatedCheck(Iterable<String> classNames)
protected void
internalTransform(String phaseName, Map<String,String> options)
Performs the transformation on the Scene, under the given phaseName and with the given Options.boolean
isFileSystemCaseSensitive()
An naive approach to check whether the file system is case sensitive or notstatic RenameDuplicatedClasses
v()
-
Methods inherited from class soot.SceneTransformer
transform, transform, transform
-
-
-
-
Constructor Detail
-
RenameDuplicatedClasses
public RenameDuplicatedClasses(Singletons.Global g)
-
-
Method Detail
-
v
public static RenameDuplicatedClasses v()
-
internalTransform
protected void internalTransform(String phaseName, Map<String,String> options)
Description copied from class:SceneTransformer
Performs the transformation on the Scene, under the given phaseName and with the given Options.- Specified by:
internalTransform
in classSceneTransformer
-
isFileSystemCaseSensitive
public boolean isFileSystemCaseSensitive()
An naive approach to check whether the file system is case sensitive or not- Returns:
-
-