public interface

IDexString

implements ICodeString
com.pnfsoftware.jeb.core.units.code.android.dex.IDexString

Class Overview

These objects represent DEX strings. The value of a string can be modified programmatically.

Summary

[Expand]
Inherited Constants
From interface com.pnfsoftware.jeb.core.units.code.ICodeItem
Public Methods
abstract Boolean getHintUsedAsImmediate()
This method provides a hint regarding how this string is used.
abstract Boolean getHintUsedInDex()
This method provides a hint regarding whether this string appears to be used in the dex unit.
abstract String getValue(boolean effective)
Retrieve the string value.
abstract void setValue(String value)
Set the alternate value of a string.
[Expand]
Inherited Methods
From interface com.pnfsoftware.jeb.core.units.code.ICodeItem
From interface com.pnfsoftware.jeb.core.units.code.ICodeString

Public Methods

public abstract Boolean getHintUsedAsImmediate ()

This method provides a hint regarding how this string is used. If true, it appears that it is used as an immediate in the code, e.g. as a parameter to a const-string opcode. If false, it appears the string used used as a metadata element, such as a method name, or part of a type descriptor.

Returns
  • true if the string is used as an immediate; false if the string is a pure metadata element (this method never returns null)

public abstract Boolean getHintUsedInDex ()

This method provides a hint regarding whether this string appears to be used in the dex unit. Usage here is meant in the broadest sense: it could be a string immediate used in Dalvik, or a meta string referenced by other dex objects present in one of the dex files parsed to create the dex unit.

Returns
  • true if the string is used; false if the string is not used (dangling string); null if unknown

public abstract String getValue (boolean effective)

Retrieve the string value.

Parameters
effective true to retrieve the current value, false to retrieve the original value

public abstract void setValue (String value)

Set the alternate value of a string. This method does not check for duplicates in the string pool: it may break the DEX specifications.

On success, it is the responsibility of the caller to notify client code that the unit has changed, by issuing a J#UnitChange to #notifyListeners(com.pnfsoftware.jeb.util.events.IEvent) listeners.

Parameters
value the new value, or null to reset to the original value