Add dex item for hiddenapi flags
Move hiddenapi access flags to own data section so as to:
(a) increase amount of information stored per method/field
(b) use encoding which can be supported long-term.
The dex item is implemented as:
- array of offsets indexed by class def index
- streams of uleb-128 encoded flags.
Offsets in array point to the beginning of the flags stream
for the given class def. Flags are encoded in the same order
as fields and methods are encoded in class data. Zero offset
means that the class either does not have class data, or all
of its flags are zero.
The patch updates:
(a) libdexfile with data structure declarations and accessor
methods,
(b) hiddenapi tool to create the new item from hiddenapi lists
and insert it into the given dex file,
(c) dexlayout to copy the flags into compact dex,
(d) dex file verifier to verify the item.
It also removes skipping of verification for boot class path
dex files as those now pass DexFileVerifier, and removes the
need for removing the flags for JVMTI.
The size increase is 450 KB.
Test: phone boots
Test: m test-art
Change-Id: Idec301db540cf164fccc97136d1df4abb8f758bd
24 files changed