Android Nougat IOT Release (AThings iHome iGV1 Alarm Clock Speaker)
Version query mechanism and default impl for NDK backend

The version query mechanism (getInterfaceVersion()) and default impl
(set/getDefaultImpl()) are added to NDK backend.

This CL also fixes problems in other backends (Java/C++) found during
the implementation.

1) getInterfaceVersion() always writes and checks the interface token.
This wasn't needed because the binder library for Java and C++ didn't
mandate it. However, since libbinder_ndk is mandating it (in
AIBinder_prepareTransaction), other backends were all updated for
interoperability with the NDK backend.

2) aidl_interface module type now collectly invokes the aidl compiler
with --version flag when the 'versions' property is set.

3) Meta transactions (like getInterfaceVersion()) are now within
[FIRST_CALL_TRANSACTION, LAST_CALL_TRANSACTION]. They are numbered
backward from LAST_CALL_TRANSACTION.

Bug: 110760419
Bug: 113550618
Test: atest android.binder.cts.NdkBinderTest
Change-Id: Ib6c0989a6aec7cf4f4e534a68223f18cd6980470
10 files changed