tree ae1df3adacfcd82dd0b960cfd4cabcfb44fe6536
parent e4c00b3af3ccf460e4b0332a04dc9eaeffee5c7a
author Anestis Bechtsoudis <anestis@census-labs.com> 1507495030 +0300
committer Anestis Bechtsoudis <anestis@census-labs.com> 1508186176 +0300
gpgsig -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJZ5RhEAAoJEO6bdtiwpMXac24H/0dHg980Aqy0jx0CtTXFACw9
 xHGFgTcq2hfPRtPnBwfjZ/gbDLmPbfGe+tLfxUeuR1os5CCHZiEyHoK41NpzQC1i
 CIF8DgaiQNAJwoEm/txCO5uGrXdbDKXrazxewHt7xpfTb85F5CcOvH2k7EYr19EE
 goV6dJPi3JlkEehy/0NivMS0becEDaeoDH/GIsl8js/zXYGi79fsHTUE6NYaQRX6
 VaVK033n3xZIgfSysCjPYlfXFOfKPfwvUIRFNGkMMvl/7feZ2INb34GKYlt6BWpF
 R4wtYSA/RS5NKWVjzBNsFMBhmfmO/IQuMyn2xmjytRjP4p/5A0NxwokIEgT/iCw=
 =52IL
 -----END PGP SIGNATURE-----

Unquicken dex files before exporting from oatdump

Benefit from the vdex unquicken method when exporting dex files from
oatdump (--export-dex-to). Currently oatdump exports the quickened dex
files as generated by the dex compiler (dex-to-dex transformations).
With this commit the dex files associated with the input oat file are
unquickened before exporting.

In contrast to the other VdexFile::Unquicken() calls, in this case it
is useful to decompile a RETURN_VOID_NO_BARRIER into a RETURN_VOID. As
such, the required changes around the decompile_return_instruction flag
were made since it was hardcoded to false.

This feature is mostly useful when inspecting oat files that have the
original bytecode being stripped from the matching APK. If unquicken
is successful, the old checksum is expected to match.

Test: test-art-host

Change-Id: I9133d5f488ee3451c8f361ae90d1e12857529b1e
Signed-off-by: Anestis Bechtsoudis <anestis@census-labs.com>
