[Ravenwood] Use native system property implementation
System properties are not only used by Java code, but also native code.
To make the property values consistent across Java and native code, make
the "source of truth" of property values on the native side.
In order to achieve this, we have to introduce a new native library
"libravenwood_sysprops" that does NOT link against libbase, and load
that library first. By doing so, we can override the low-level sysprop
function symbols with our own implementation.
Once that is done, all existing native code accessing system properties,
regardless whether they use the libbase/libcutils wrappers or the raw
sysprop functions will go through Ravenwood's implementation.
Other than improving system properties, this provides the infrastructure
to override/implement C functions that is used in native code.
Bug: 292141694
Flag: EXEMPT host test change only
Test: $ANDROID_BUILD_TOP/frameworks/base/ravenwood/scripts/run-ravenwood-tests.sh
Merged-in: I14678e2ac52ace0b23bd53df7b6092a1cbb881b3
Change-Id: I14678e2ac52ace0b23bd53df7b6092a1cbb881b3
14 files changed