Rebuild odex files in PDK fusion build.

To rebuild odex files of Java libraries and apps,
we store the jars/apks without stripping the classes.dex inside the We also save the build variables that may affect how we
rebuild an odex in in the
We store the files and configuration only for libraries/apps that get
installed to the system.img (or vendor.img).

In PDK fusion build, we auto-generate prebuilt module definitions for
the javalib.jar and package.dex.apk carried in the, using
configuration stored in
With the prebult modules, we override the implicit rule that directly
copies the odex from the
To rebuild odex of javalib.jar, we added support for prebuilt shared Java
library to An installable prebuilt Java library is
treated as shared Java library, i.e. with classes.dex in the jar instead
of a set of .class files.
For apks in the, we install the stripped version from
platform files inside, instead of the package.dex.apk,
using a new variable LOCAL_REPLACE_PREBUILT_APK_INSTALLED. We can't
strip package.dex.apk because we can't re-sign the stripped apk at this

We generate prebuilt module only if it's not already defined in the
source tree.

Bug: 27543283
Change-Id: I9e146f8b713d6f57c397fd28d88c9ab700757ca1
(cherry-pick from commit 3a61eeb6cb588b9a206bd80814183bcc0263cd13)
12 files changed