android_build/common
Ulya Trafimovich 8edad8f7a3 Preserve <uses-library> order in dexpreopt.config files.
Library order is important because it is used to construct class loader
context, which is then written into OAT/ODEX files and chacked against
class loader context constructed by PackageManager on the device. If the
orders are different, dexpreopted code is rejected.

This CL fixes a few problems that caused reordering:

- 'filter' function arguments are swapped so that patterns list comes
  first, and the library list second

- JSON representation of class loader context is changed to avoid
  unmarshaling it to Go maps, which may reorder keys

- library list is no longer sorted (it's unclear why it was sorted)

Bug: 132357300
Test: lunch cf_x86_64_phone-userdebug && m && launch_cvd \
      adb wait-for-device && adb root && adb logcat \
      | grep -E 'ClassLoaderContext [a-z ]+ mismatch'
      # empty grep output, no errors
Change-Id: Ie76996d497e60da0948f1879d6db589ff3e968a2
2021-02-11 17:09:19 +00:00
..
core.mk Move TOP/TOPDIR to build/make/common/core.mk 2019-08-08 10:58:09 -07:00
json.mk Preserve <uses-library> order in dexpreopt.config files. 2021-02-11 17:09:19 +00:00
math.mk Add a rule to get numbers greater or equal to a minimum number. 2020-10-29 22:29:27 +00:00
strings.mk Change use of sanity-check to "test". Makes comment line more clear what the code does. 2020-07-30 22:11:58 +00:00