Previously to cross-compile one would need to add a pkg-config
executable in $PATH wrapping all the search paths required; now one can
e.g.
make PKG_CONFIG=foreign-arch-target-pkg-config
with the wrapper executable being separate and allowing programs for
host to also be built if needed for example.
Introduce "aidl4" variant of service manager to adapt the change
to service related protocol for Android 12.
From Android 12, when reading nullable strong binder, the format of
the `stability` field passed on the wire was changed and evolved to
`struct Category`, which consists of the following members with 4 bytes long.
```
struct Category {
uint8_t version;
uint8_t reserved[2];
Level level; <- bitmask of Stability::Level
}
```
Please check the following link for details:
https://cs.android.com/android/platform/superproject/+/android-12.0.0_r3:frameworks/native/libs/binder/include/binder/Stability.h;l=140
To honor the change on AOSP side for Android 12, we need to adapt
the protocol change in Service Manager.
Introduce "aidl3" variant of service manager to adapt the changes
to service related protocol in Android 11.
List services command no longer has index parameter and all data
is in single transaction.
Add service command now has additional "stability" parameter.
It acts as a proxy between two binder devices.
This version works for binder transactions which only
pass serialized data back and forth. Passing remote
object references is not yet supported.