Libraries that are direct or indirect dependencies of modules installed
to recovery partition (e.g. toybox) are marked as recovery_available:
true. This allows a recovery variant of the lib is created when it is
depended by other recovery or recovery_available modules.
Bug: 67916654
Bug: 64960723
Test: m -j
Change-Id: Ie59155c08890e96ce1893fa3687afcf763d7aea3
Add a non-toybox version of getprop, so that we can interface with the
new C++ PropertyInfoAreaFile class to return property context
information.
Bug: 36001741
Test: Compared toolbox getprop results with toybox getprop
Change-Id: I4e90aa5b843cb5cfcbe85f05f23ae8e22729b26e
These are broken on OS X and host linux with the latest clang, so time
to disable this across the board before we hit even more unexpected
breakages.
Test: Boot bullhead
Change-Id: I405f5d96675d20f325853ee29049d80eb009bbd8
Add a non-toybox version of getprop, so that we can interface with the
new C++ PropertyInfoAreaFile class to return property context
information.
Bug: 36001741
Test: Compared toolbox getprop results with toybox getprop
Change-Id: I5f98f9e895d0620a2d9686bc0608490e7d9c3120
This doesn't seem to work. All other projects restrict sanitization,
too.
Mac build not actually tested.
Test: m
Test: linux host build still contains ubsan symbols
Change-Id: I60532a46177632320ba3b15b4a7c2d5e31ef2bfc
It is possible for a match to only contain a context and not a schema,
or vice versa and in this case, the previously matched values should
continue to be used. The serializer already handles this case by
setting the index of the match to ~0u if there is not one, so this
change simply has the parser skip these values.
Bug: 70858511
Test: unit tests, including new ones
Change-Id: Ibc65bd8d637e39f3b1ce7bcc2b88189b75173f88
Currently, we only check if the name of a given node in the trie is a
prefix match and the prefix matches array of the final node. This is
incorrect however, as the prefix matches array of intermediate nodes
may contain the prefix for a given property. This change adds that
check and test cases for this case.
Bug: 36001741
Test: new unit tests
Change-Id: I9f58ebc559f2ac591aa44df9e71205704bf18f66
Currently, whenever a new program starts, libc initializes two data
structures related to properties from the raw property_context files.
There are two problems here,
1) This takes roughly 1.2ms on a trivial program to generate contents
that could otherwise be cached.
2) One of the data structures is a descending list of prefixes, each
of which needs to be checked, whereas a trie would be more
efficient.
This change introduces two libraries,
1) libpropertycontextserializer meant to be used by property_service
to create a serialized trie containing all of the property
contexts.
2) libpropertycontextparser meant to be used by libc's property
functions to parse this serialized trie during property lookup.
This new trie also contains the ability to have exact matches instead
of prefix matches for properties, which was not possible before.
Bug: 36001741
Change-Id: I42324f04c4d995a0e055e9685d79f40393dfca51