Class representing the ".note.android.ident" section.
More...
#include <AndroidIdent.hpp>
|
std::unique_ptr< Note > | clone () const override |
| Clone the current note and keep its polymorphic type.
|
|
uint32_t | sdk_version () const |
| Target SDK version (or 0 if it can't be resolved)
|
|
std::string | ndk_version () const |
| NDK version used (or an empty string if it can't be parsed)
|
|
std::string | ndk_build_number () const |
| NDK build number (or an empty string if it can't be parsed)
|
|
void | sdk_version (uint32_t version) |
|
void | ndk_version (const std::string &ndk_version) |
|
void | ndk_build_number (const std::string &ndk_build_number) |
|
void | dump (std::ostream &os) const override |
|
void | accept (Visitor &visitor) const override |
|
| ~AndroidIdent () override=default |
|
Note & | operator= (const Note ©)=default |
|
| Note (const Note ©)=default |
|
| ~Note () override=default |
|
const std::string & | name () const |
| Return the name of the note (also known as 'owner' )
|
|
const std::string & | section_name () const |
| Return the section name in which the note is or should be stored.
|
|
TYPE | type () const |
| Return the type of the note. This type does not match the NT_ type value. For accessing the original NT_ value, check original_type()
|
|
uint32_t | original_type () const |
| The original NT_xxx integer value. The meaning of this value likely depends on the owner of the note.
|
|
span< const uint8_t > | description () const |
| Return the description associated with the note.
|
|
span< uint8_t > | description () |
|
void | name (std::string name) |
|
void | description (description_t description) |
| Change the description of the note.
|
|
uint64_t | size () const |
| Size of the raw note which includes padding.
|
|
void | accept (Visitor &visitor) const override |
|
template<class T > |
const T * | cast () const |
|
template<class T > |
T * | cast () |
|
| Object () |
|
| Object (const Object &other) |
|
Object & | operator= (const Object &other) |
|
template<class T > |
output_t< T > | as () |
|
template<class T > |
output_const_t< T > | as () const |
|
virtual bool | operator== (const Object &other) const |
|
virtual bool | operator!= (const Object &other) const |
|
virtual | ~Object () |
|
|
static bool | classof (const Note *note) |
|
static constexpr size_t | description_size () |
|
static result< TYPE > | convert_type (Header::FILE_TYPE ftype, uint32_t type, const std::string &name) |
| Convert the raw integer note type into a TYPE according to the owner.
|
|
static result< const char * > | type_to_section (TYPE type) |
| Try to determine the ELF section name associated with the TYPE provided in parameter.
|
|
static result< std::string > | note_to_section (const Note ¬e) |
|
static result< const char * > | type_owner (TYPE type) |
| Try to determine the owner's name of the TYPE provided in parameter.
|
|
static std::unique_ptr< Note > | create (const std::string &name, uint32_t type, description_t description, std::string section_name, Header::FILE_TYPE ftype=Header::FILE_TYPE::NONE, ARCH arch=ARCH::NONE, Header::CLASS cls=Header::CLASS::NONE) |
| Create a new note from the given parameters. Additional information such as the architecture or the ELF class could be required for creating notes like Coredump notes.
|
|
static std::unique_ptr< Note > | create (const std::string &name, TYPE type, description_t description, std::string section_name, ARCH arch=ARCH::NONE, Header::CLASS cls=Header::CLASS::NONE) |
| Create a new note from the given parameters. Additional information such as the architecture or the ELF class could be required for creating notes like Coredump notes.
|
|
static std::unique_ptr< Note > | create (BinaryStream &stream, std::string section_name, Header::FILE_TYPE ftype=Header::FILE_TYPE::NONE, ARCH arch=ARCH::NONE, Header::CLASS cls=Header::CLASS::NONE) |
| Create a new note from the given stream. Additional information such as the architecture or the ELF class could be required for creating notes like Coredump notes.
|
|
|
enum class | TYPE {
UNKNOWN = 0
, GNU_ABI_TAG
, GNU_HWCAP
, GNU_BUILD_ID
,
GNU_GOLD_VERSION
, GNU_PROPERTY_TYPE_0
, GNU_BUILD_ATTRIBUTE_OPEN
, GNU_BUILD_ATTRIBUTE_FUNC
,
CRASHPAD
, CORE_PRSTATUS
, CORE_FPREGSET
, CORE_PRPSINFO
,
CORE_TASKSTRUCT
, CORE_AUXV
, CORE_PSTATUS
, CORE_FPREGS
,
CORE_PSINFO
, CORE_LWPSTATUS
, CORE_LWPSINFO
, CORE_WIN32PSTATUS
,
CORE_FILE
, CORE_PRXFPREG
, CORE_SIGINFO
, CORE_ARM_VFP
,
CORE_ARM_TLS
, CORE_ARM_HW_BREAK
, CORE_ARM_HW_WATCH
, CORE_ARM_SYSTEM_CALL
,
CORE_ARM_SVE
, CORE_ARM_PAC_MASK
, CORE_ARM_PACA_KEYS
, CORE_ARM_PACG_KEYS
,
CORE_TAGGED_ADDR_CTRL
, CORE_PAC_ENABLED_KEYS
, CORE_X86_TLS
, CORE_X86_IOPERM
,
CORE_X86_XSTATE
, CORE_X86_CET
, ANDROID_IDENT
, ANDROID_MEMTAG
,
ANDROID_KUSER
, GO_BUILDID
, STAPSDT
, QNX_STACK
} |
| LIEF representation of the ELF NT_ values. More...
|
|
using | description_t = std::vector<uint8_t> |
| Container used to handle the description data.
|
|
template<class T > |
using | output_t = add_pointer_t<decay_t<T>> |
|
template<class T > |
using | output_const_t = add_pointer_t<add_const_t<decay_t<T>>> |
|
◆ ~AndroidIdent()
LIEF::ELF::AndroidIdent::~AndroidIdent |
( |
| ) |
|
|
overridedefault |
◆ accept()
void LIEF::ELF::AndroidIdent::accept |
( |
Visitor & | visitor | ) |
const |
|
overridevirtual |
◆ classof()
static bool LIEF::ELF::AndroidIdent::classof |
( |
const Note * | note | ) |
|
|
inlinestatic |
◆ clone()
std::unique_ptr< Note > LIEF::ELF::AndroidIdent::clone |
( |
| ) |
const |
|
inlineoverridevirtual |
Clone the current note and keep its polymorphic type.
Reimplemented from LIEF::ELF::Note.
◆ description_size()
static constexpr size_t LIEF::ELF::AndroidIdent::description_size |
( |
| ) |
|
|
inlinestaticconstexpr |
◆ dump()
void LIEF::ELF::AndroidIdent::dump |
( |
std::ostream & | os | ) |
const |
|
overridevirtual |
◆ ndk_build_number() [1/2]
std::string LIEF::ELF::AndroidIdent::ndk_build_number |
( |
| ) |
const |
NDK build number (or an empty string if it can't be parsed)
◆ ndk_build_number() [2/2]
void LIEF::ELF::AndroidIdent::ndk_build_number |
( |
const std::string & | ndk_build_number | ) |
|
◆ ndk_version() [1/2]
std::string LIEF::ELF::AndroidIdent::ndk_version |
( |
| ) |
const |
NDK version used (or an empty string if it can't be parsed)
◆ ndk_version() [2/2]
void LIEF::ELF::AndroidIdent::ndk_version |
( |
const std::string & | ndk_version | ) |
|
◆ sdk_version() [1/2]
uint32_t LIEF::ELF::AndroidIdent::sdk_version |
( |
| ) |
const |
Target SDK version (or 0 if it can't be resolved)
◆ sdk_version() [2/2]
void LIEF::ELF::AndroidIdent::sdk_version |
( |
uint32_t | version | ) |
|
◆ ndk_build_number_size
size_t LIEF::ELF::AndroidIdent::ndk_build_number_size = 64 * sizeof(char) |
|
staticconstexpr |
◆ ndk_version_size
size_t LIEF::ELF::AndroidIdent::ndk_version_size = 64 * sizeof(char) |
|
staticconstexpr |
◆ sdk_version_size
size_t LIEF::ELF::AndroidIdent::sdk_version_size = sizeof(uint32_t) |
|
staticconstexpr |
The documentation for this class was generated from the following file: