繁体   English   中英

Android 2.1(Eclair)的.dex文件格式,即API级别7

[英]Format of .dex files for Android 2.1 (Eclair), i.e. API level 7

我正在为Android / Dalvik .dex文件编写一个汇编程序 官方的Android文档似乎仅描述了最新版本的.dex格式 (截至2019年5月,显然是038 ),并有一些简短的说明描述了与035版本的区别。 快速浏览一下Android来源似乎表明,该格式的035版本对应于Android API级别13 ,即Android 3.2.x (Honeycomb)。 我自己的装置与Android 2.1(埃克莱尔),这显然意味着API级7。 我希望能够学习如何为该设备发出正确的.dex和.apk文件,希望将这些文件的支持添加到我的汇编器中。

在哪里可以找到可以帮助我为Android 2.1(Eclair)发出正确的.dex文件(即API级别7)的信息? 我什至不知道该API级别的.dex格式版本字符串是什么!

对于“加分点”,我真的很想找到一些很好的参考资料,以解释所有API级别(至少回到API级别7)之间.dex格式的差异。 如果Android API级别之间的二进制.xml和资源文件(由aapt工具发出)的格式存在实质性差异,我也将感兴趣。 我认为有一个高的机会.apk文件格式本身,以及签名算法,希望一点都没有因为它是用来签名的Java .jar文件(即一个普通的.zip有一些相同的格式改变, META-INF/子目录中的简单特殊文件)。 但是.dex格式规范(包括字节码)可能是最重要的部分,或者至少是一个很好的起点。

https://source.android.com/devices/tech/dalvik/dex-format对版本之间的差异进行了一些简短的介绍。

Note: Support for version 037 of the format was added in the Android 7.0 
release. Prior to version 037 most versions of Android have used version 035 of 
the format. The only difference between versions 035 and 037 is the addition of 
default methods and the adjustment of the invoke.

Note: Support for version 038 of the format was added in the Android 8.0 
release. Version 038 added new bytecodes (invoke-polymorphic and invoke- 
custom) and data for method handles.

不过,请注意,最新版本是039,似乎在文档中并未提及。 iirc,039添加了invoke-custom/rangeconst-method-handleconst-method-type指令。

其他信息来源包括查看这些文档的变更日志: https : //android.googlesource.com/platform/docs/source.android.com/+log/refs/heads/master/en/devices/tech/dalvik/ dex-format.html https://android.googlesource.com/platform/docs/source.android.com/+log/refs/heads/master/en/devices/tech/dalvik/dalvik-bytecode.html

在此之前,在移动文件之前:

https://android.googlesource.com/platform/docs/source.android.com/+log/a3b748b40bab557fb47fe5a48a5bfb642837fb05/src/devices/tech/dalvik/dex-format.jd https://android.googlesource.com/platform/文档/ source.android.com / +登录/ a3b748b40bab557fb47fe5a48a5bfb642837fb05 / src目录/设备/技术/达尔维克/达尔维克bytecode.jd

另外,您应该能够从smali来源中收集一些信息。 它具有适用于每条指令的最小/最大api级别

对于将最小/最大设置为艺术版本的说明,您可以使用此映射映射回api级别。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM