Interface IAndroidEmulationHooks

All Superinterfaces:
IPlugin
All Known Implementing Classes:
AndroidEmulationHooksSkeleton

public interface IAndroidEmulationHooks extends IPlugin
Interface for plugins that provide hooks for the emulation of dex code and native code.

At this time, those plugins can be used by the APK generic unpacker . They are not used by IR optimizers using the emulator. (Future addition.)

Implementors should not implement this interface directly: extend AndroidEmulationHooksSkeleton instead.

  • Field Details

    • USAGE_NONE

      static final int USAGE_NONE
      The hooks should not be used by any component.
      See Also:
    • USAGE_ALL

      static final int USAGE_ALL
      The hooks may be used by all supported components.
      See Also:
    • USAGE_UNPACKER

      static final int USAGE_UNPACKER
      The hooks may be used by the generic unpacker.
      See Also:
  • Method Details

    • getUsage

      int getUsage()
      Determine by which components the hooks defined in this object may be used.
      Returns:
      flags specifying where the hooks may be used; see USAGE_xxx
    • getDexInternalHooks

      IDEmulatorHooks getDexInternalHooks()
      Provide an object to hook internal dex code emulation (i.e. the application code).
      Returns:
      optional, may be null
    • getDexExternalHooks

      IDSandboxHooks getDexExternalHooks()
      Provide an object to hook external dex code emulation, such as the Android runtime libraries, Java API, etc. etc.
      Returns:
      optional, may be null
    • getNativeCodeHooks

      IEEmulatorHooks getNativeCodeHooks()
      Provide an object to hook native code emulation. Limited to aarch64.
      Returns:
      optional, may be null
    • getNativeMemoryHooks

      IEStateHooks getNativeMemoryHooks()
      Provide an object to hook native memory access by the emulator.
      Returns:
      optional, may be null