我正在解决Android手机问题。我无法找到HTC EVO 4G(王国)的mod。显然,一家名为DxO Labs used DMCA to force Cyanogenmod to remove some HTC mods的公司。
我想获得由DxO Labs在EVO上构建的共享对象列表。我有设备,所以我可以枚举设备上的所有共享对象。我不知道的是,ELF DSO是否与Windows可执行文件等公司信息一起构建(或可能构建)。我不记得遇到他们,但我不相信我曾经看过。
ELF格式的Linux可执行文件和共享对象是否具有与Windows资源文件类似的机制?抱歉,不得不问。我无法像其他平台那样在Android的ELF文件格式和ABI上查找文档。
答案 0 :(得分:0)
查看SYSTEM V APPLICATION BINARY INTERFACE,可以使用公司信息标记对象。从第81页起,注释部分:
有时,供应商或系统构建商需要使用标记对象文件 其他程序将检查一致性的特殊信息, 兼容性等类型
SHT_NOTE
和程序头的部分 类型PT_NOTE
的元素可用于此目的。那个笔记 部分和程序头元素中的信息包含任何数字 条目,每个条目是一个4字节字的数组,格式为 目标处理器。下面的标签有助于解释说明 信息组织,但它们不是规范的一部分。+----------------+ | namesz | +----------------+ | descz | +----------------+ | type | +----------------+ | name | +----------------+ | desc | +----------------+
namesz
和name
:namesz
中的第一个name
字节包含条目所有者的以空字符结尾的字符表示形式或 鼻祖。没有正式的机制来避免名称冲突。 按照惯例,供应商使用自己的名称,例如''XYZ Computer 公司,''作为标识符。如果没有名称,则namesz
包含 如果需要,可以使用填充以确保4字节对齐 描述。此类填充不包含在namesz
中。
descsz
和desc
:descsz
中的第一个desc
字节包含注释描述符。 ABI对描述符没有约束 内容。如果没有描述符,descsz
包含0.填充是 如有必要,请出现以确保下一个音符的4字节对齐 条目。此类填充不包含在descsz
中。
type
:这个词给出了描述符的解释。每个发起者控制自己的类型; a的多重解释 可能存在单一类型值。因此,一个程序必须同时识别 名称和“理解”描述符的类型。目前必须的类型 是非负的。 ABI没有定义描述符的含义。
从第115页的供应商扩展程序:
除了上面列出的服务外,libc还可能包含其他符号。一个 符合ABI的系统供应商可以向C库添加符号 提供特定于供应商的服务。 ABI没有定义这些 服务和使用这些服务的程序不符合ABI标准。 尽管如此,ABI定义了推荐的扩展机制, 提供一种避免多个服务之间冲突的方法 供应商。
_$vendor.company
形式的符号。公司提供 供应商名称公司的操作系统条目。 C库 没有这些名字的简单替代品。按照惯例, 供应商使用单一名称来提供多种服务_$vendor.company
中的第一个参数选择 备择方案。例如,''XYZ计算机公司''可能会添加_$vendor.xyz
到C库。