jakev / dtfmods-core

Core content for Android device testing
Apache License 2.0
6 stars 2 forks source link

Support FireOS ODEX #27

Closed jakev closed 8 years ago

jakev commented 9 years ago

Affected Module(s): frameworkdb, sysappdb?

When testing on a gen 3 Kindle Fire, with FireOS 4.5.4, framework files are stored in a strange DEX format, with the magic:

0000000: 6465 790a 3033 3900 4000 0000 20af 0000  dey.039.@... ...

file claims it is:

Dalvik dex file (optimized for host) version 039

But I've never seen version 39 before. It looks like in most cases, the DEX included in the framework JAR is actual DEX (version 35), and not this Amazon ODEX. Options are:

jakev commented 9 years ago

This also means that the frameworkdexdb module is affected. After reviewing it, we should be attempting the convert the JAR before looking for ODEX. Should be an easy fix.

jakev commented 9 years ago

appdexdb module also checks for ODEX before DEX in the APK, which causes issues on FireOS ODEX. In fact, the entire logic appdexdb uses for picking a mode is not good. Not only does it not retry, it checks for ART devices for no reason.

jakev commented 8 years ago

This should be fixed with https://github.com/jakev/dtfmods-core/commit/e56266d9a5f0cf2dab87e35c0accb0b4d4fd718f, but I don't have the device with me to test. Will close once I confirm.

jakev commented 8 years ago

Fixed: https://github.com/jakev/dtfmods-core/commit/846377e7bf19e1bfebcd51e53fb04dda68b378c0