Add marshal() and unmarshal() APIs.

Expose marshal/unmarshal APIs from binder_ndk because we need
to pass large data that exceeds binder memory limitation across
binder for auto use case. We need to serialize parcel to a shared
memory file and unmarshal it into a parcel. We would only marshal
stable AIDL generated parcelable.

Test: Add a unit test to CTS.
Bug: 197781220
Change-Id: I774663d619ad0ca04f23044d2245021b265b32c1
diff --git a/libs/binder/ndk/libbinder_ndk.map.txt b/libs/binder/ndk/libbinder_ndk.map.txt
index 4eb51c4..ac892db 100644
--- a/libs/binder/ndk/libbinder_ndk.map.txt
+++ b/libs/binder/ndk/libbinder_ndk.map.txt
@@ -144,6 +144,8 @@
 LIBBINDER_NDK33 { # introduced=33
   global:
     AIBinder_Class_disableInterfaceTokenHeader;
+    AParcel_marshal;
+    AParcel_unmarshal;
 };
 
 LIBBINDER_NDK_PLATFORM {