簡體   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