公司名称的共享对象和资源文件?

时间:2014-06-22 17:19:51

标签: android linux embedded-resource elf shared-objects

我正在解决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上查找文档。

1 个答案:

答案 0 :(得分:0)

查看SYSTEM V APPLICATION BINARY INTERFACE,可以使用公司信息标记对象。从第81页起,注释部分:

  

有时,供应商或系统构建商需要使用标记对象文件   其他程序将检查一致性的特殊信息,   兼容性等类型SHT_NOTE和程序头的部分   类型PT_NOTE的元素可用于此目的。那个笔记   部分和程序头元素中的信息包含任何数字   条目,每个条目是一个4字节字的数组,格式为   目标处理器。下面的标签有助于解释说明   信息组织,但它们不是规范的一部分。

+----------------+
|     namesz     |
+----------------+
|      descz     |
+----------------+
|      type      |
+----------------+
|      name      |
+----------------+
|      desc      |
+----------------+
     

nameszname namesz中的第一个name字节包含条目所有者的以空字符结尾的字符表示形式或   鼻祖。没有正式的机制来避免名称冲突。   按照惯例,供应商使用自己的名称,例如''XYZ Computer   公司,''作为标识符。如果没有名称,则namesz包含   如果需要,可以使用填充以确保4字节对齐   描述。此类填充不包含在namesz中。

     

descszdesc 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库。