class ApkParser extends AnyRef
Parses an APK file and generates a Project for it.
The generated Project contains the APK's Java bytecode, its native code and its components / entry points.
Following external tools are utilized:
- enjarify or dex2jar (for creating .jar from .dex)
- RetDec (for lifting native code to LLVM IR)
- Source
- ApkParser.scala
- Alphabetic
- By Inheritance
- ApkParser
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new ApkParser(apkPath: String)(implicit config: Config)
- apkPath
path to the APK file.
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val apkPath: String
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def cleanUp(): Unit
Cleans up temporary files/directories used for unzipping the APK and generating .jar and .bc files.
Cleans up temporary files/directories used for unzipping the APK and generating .jar and .bc files.
You should call this when you are done to not clutter up tmpfs.
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- def parseComponents: Seq[ApkComponent]
Parses the components / static entry points of the APK from AndroidManifest.xml.
Parses the components / static entry points of the APK from AndroidManifest.xml.
- returns
a Seq of ApkComponent.
- def parseDexCode(dexParser: DexParser = DexParser.Enjarify): (Path, Seq[Path])
Parses the Dex files of the APK.
Parses the Dex files of the APK.
Uses enjarify to create .jar files from .dex files. This can take some time, please be patient.
- returns
(directory containing all .jar files, Seq of every single .jar file).
- def parseNativeCode: Option[(Path, Seq[Path])]
Parses the native code / .so files of the APK.
Parses the native code / .so files of the APK.
Uses RetDec to lift .so .files to LLVM .bc files. This can take some time, please be patient.
- returns
Option(directory containing all .bc files, Seq of every single .bc file) or None if APK contains no native code.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated @Deprecated
- Deprecated