LIBBINDER_NDK { # introduced=29
  global:
    AIBinder_associateClass;
    AIBinder_Class_define;
    AIBinder_Class_setOnDump;
    AIBinder_DeathRecipient_delete;
    AIBinder_DeathRecipient_new;
    AIBinder_debugGetRefCount;
    AIBinder_decStrong;
    AIBinder_dump;
    AIBinder_fromJavaBinder;
    AIBinder_getCallingPid;
    AIBinder_getCallingUid;
    AIBinder_getClass;
    AIBinder_getUserData;
    AIBinder_incStrong;
    AIBinder_isAlive;
    AIBinder_isRemote;
    AIBinder_linkToDeath;
    AIBinder_new;
    AIBinder_ping;
    AIBinder_prepareTransaction;
    AIBinder_toJavaBinder;
    AIBinder_transact;
    AIBinder_unlinkToDeath;
    AIBinder_Weak_delete;
    AIBinder_Weak_new;
    AIBinder_Weak_promote;
    AParcel_delete;
    AParcel_getDataPosition;
    AParcel_readBool;
    AParcel_readBoolArray;
    AParcel_readByte;
    AParcel_readByteArray;
    AParcel_readChar;
    AParcel_readCharArray;
    AParcel_readDouble;
    AParcel_readDoubleArray;
    AParcel_readFloat;
    AParcel_readFloatArray;
    AParcel_readInt32;
    AParcel_readInt32Array;
    AParcel_readInt64;
    AParcel_readInt64Array;
    AParcel_readParcelableArray;
    AParcel_readParcelFileDescriptor;
    AParcel_readStatusHeader;
    AParcel_readString;
    AParcel_readStringArray;
    AParcel_readStrongBinder;
    AParcel_readUint32;
    AParcel_readUint32Array;
    AParcel_readUint64;
    AParcel_readUint64Array;
    AParcel_setDataPosition;
    AParcel_writeBool;
    AParcel_writeBoolArray;
    AParcel_writeByte;
    AParcel_writeByteArray;
    AParcel_writeChar;
    AParcel_writeCharArray;
    AParcel_writeDouble;
    AParcel_writeDoubleArray;
    AParcel_writeFloat;
    AParcel_writeFloatArray;
    AParcel_writeInt32;
    AParcel_writeInt32Array;
    AParcel_writeInt64;
    AParcel_writeInt64Array;
    AParcel_writeParcelableArray;
    AParcel_writeParcelFileDescriptor;
    AParcel_writeStatusHeader;
    AParcel_writeString;
    AParcel_writeStringArray;
    AParcel_writeStrongBinder;
    AParcel_writeUint32;
    AParcel_writeUint32Array;
    AParcel_writeUint64;
    AParcel_writeUint64Array;
    AStatus_delete;
    AStatus_fromExceptionCode;
    AStatus_fromExceptionCodeWithMessage;
    AStatus_fromServiceSpecificError;
    AStatus_fromServiceSpecificErrorWithMessage;
    AStatus_fromStatus;
    AStatus_getExceptionCode;
    AStatus_getMessage;
    AStatus_getServiceSpecificError;
    AStatus_getStatus;
    AStatus_isOk;
    AStatus_newOk;
    ABinderProcess_joinThreadPool; # systemapi llndk
    ABinderProcess_setThreadPoolMaxThreadCount; # systemapi llndk
    ABinderProcess_startThreadPool; # systemapi llndk
    AServiceManager_addService; # systemapi llndk
    AServiceManager_checkService; # systemapi llndk
    AServiceManager_getService; # systemapi llndk
};

LIBBINDER_NDK30 { # introduced=30
  global:
    AIBinder_getExtension;
    AIBinder_setExtension;
    AStatus_getDescription;
    AStatus_deleteDescription;
    AParcel_fromJavaParcel;

    AIBinder_markSystemStability; # systemapi
    AIBinder_markVendorStability; # llndk
    AIBinder_markVintfStability; # systemapi llndk
    AIBinder_Class_setHandleShellCommand; # systemapi llndk
};

LIBBINDER_NDK31 { # introduced=31
  global:
    ABinderProcess_handlePolledCommands; # systemapi
    ABinderProcess_setupPolling; # systemapi
    AIBinder_getCallingSid; # systemapi
    AIBinder_setRequestingSid; # systemapi
    AParcel_markSensitive; # systemapi llndk
    AServiceManager_forEachDeclaredInstance; # systemapi llndk
    AServiceManager_forceLazyServicesPersist; # systemapi llndk
    AServiceManager_isDeclared; # systemapi llndk
    AServiceManager_isUpdatableViaApex; # systemapi
    AServiceManager_reRegister; # llndk
    AServiceManager_registerLazyService; # systemapi llndk
    AServiceManager_setActiveServicesCallback; # llndk
    AServiceManager_tryUnregister; # llndk
    AServiceManager_waitForService; # systemapi llndk

    AIBinder_forceDowngradeToSystemStability; # systemapi
    AIBinder_forceDowngradeToVendorStability; # llndk

    AIBinder_Class_getDescriptor;
    AIBinder_Weak_clone;
    AIBinder_Weak_lt;
    AIBinder_lt;
    AParcel_appendFrom;
    AParcel_create;
    AParcel_getDataSize;
    AParcel_reset;
};

LIBBINDER_NDK33 { # introduced=33
  global:
    AIBinder_Class_disableInterfaceTokenHeader;
    AIBinder_DeathRecipient_setOnUnlinked;
    AIBinder_isHandlingTransaction;
    AIBinder_setInheritRt; # systemapi llndk
    AIBinder_setMinSchedulerPolicy; # systemapi llndk
    AParcel_marshal;
    AParcel_unmarshal;
};

LIBBINDER_NDK34 { # introduced=UpsideDownCake
  global:
    ABinderProcess_isThreadPoolStarted; # systemapi llndk
    AServiceManager_getUpdatableApexName; # systemapi
    AServiceManager_registerForServiceNotifications; # systemapi llndk
    AServiceManager_NotificationRegistration_delete; # systemapi llndk
    AServiceManager_addServiceWithFlags; # systemapi llndk
};

LIBBINDER_NDK35 { # introduced=VanillaIceCream
  global:
    APersistableBundle_readFromParcel;
    APersistableBundle_readFromParcel; # llndk=202404
    APersistableBundle_writeToParcel;
    APersistableBundle_writeToParcel; # llndk=202404
    APersistableBundle_new;
    APersistableBundle_new; # llndk=202404
    APersistableBundle_dup;
    APersistableBundle_dup; # llndk=202404
    APersistableBundle_delete;
    APersistableBundle_delete; # llndk=202404
    APersistableBundle_isEqual;
    APersistableBundle_isEqual; # llndk=202404
    APersistableBundle_size;
    APersistableBundle_size; # llndk=202404
    APersistableBundle_erase;
    APersistableBundle_erase; # llndk=202404
    APersistableBundle_putBoolean;
    APersistableBundle_putBoolean; # llndk=202404
    APersistableBundle_putInt;
    APersistableBundle_putInt; # llndk=202404
    APersistableBundle_putLong;
    APersistableBundle_putLong; # llndk=202404
    APersistableBundle_putDouble;
    APersistableBundle_putDouble; # llndk=202404
    APersistableBundle_putString;
    APersistableBundle_putString; # llndk=202404
    APersistableBundle_putBooleanVector;
    APersistableBundle_putBooleanVector; # llndk=202404
    APersistableBundle_putIntVector;
    APersistableBundle_putIntVector; # llndk=202404
    APersistableBundle_putLongVector;
    APersistableBundle_putLongVector; # llndk=202404
    APersistableBundle_putDoubleVector;
    APersistableBundle_putDoubleVector; # llndk=202404
    APersistableBundle_putStringVector;
    APersistableBundle_putStringVector; # llndk=202404
    APersistableBundle_putPersistableBundle;
    APersistableBundle_putPersistableBundle; # llndk=202404
    APersistableBundle_getBoolean;
    APersistableBundle_getBoolean; # llndk=202404
    APersistableBundle_getInt;
    APersistableBundle_getInt; # llndk=202404
    APersistableBundle_getLong;
    APersistableBundle_getLong; # llndk=202404
    APersistableBundle_getDouble;
    APersistableBundle_getDouble; # llndk=202404
    APersistableBundle_getString;
    APersistableBundle_getString; # llndk=202404
    APersistableBundle_getBooleanVector;
    APersistableBundle_getBooleanVector; # llndk=202404
    APersistableBundle_getIntVector;
    APersistableBundle_getIntVector; # llndk=202404
    APersistableBundle_getLongVector;
    APersistableBundle_getLongVector; # llndk=202404
    APersistableBundle_getDoubleVector;
    APersistableBundle_getDoubleVector; # llndk=202404
    APersistableBundle_getStringVector;
    APersistableBundle_getStringVector; # llndk=202404
    APersistableBundle_getPersistableBundle;
    APersistableBundle_getPersistableBundle; # llndk=202404
    APersistableBundle_getBooleanKeys;
    APersistableBundle_getBooleanKeys; # llndk=202404
    APersistableBundle_getIntKeys;
    APersistableBundle_getIntKeys; # llndk=202404
    APersistableBundle_getLongKeys;
    APersistableBundle_getLongKeys; # llndk=202404
    APersistableBundle_getDoubleKeys;
    APersistableBundle_getDoubleKeys; # llndk=202404
    APersistableBundle_getStringKeys;
    APersistableBundle_getStringKeys; # llndk=202404
    APersistableBundle_getBooleanVectorKeys;
    APersistableBundle_getBooleanVectorKeys; # llndk=202404
    APersistableBundle_getIntVectorKeys;
    APersistableBundle_getIntVectorKeys; # llndk=202404
    APersistableBundle_getLongVectorKeys;
    APersistableBundle_getLongVectorKeys; # llndk=202404
    APersistableBundle_getDoubleVectorKeys;
    APersistableBundle_getDoubleVectorKeys; # llndk=202404
    APersistableBundle_getStringVectorKeys;
    APersistableBundle_getStringVectorKeys; # llndk=202404
    APersistableBundle_getPersistableBundleKeys;
    APersistableBundle_getPersistableBundleKeys; # llndk=202404
    AServiceManager_openDeclaredPassthroughHal; # systemapi llndk=202404
};

LIBBINDER_NDK_PLATFORM {
  global:
    AParcel_getAllowFds;
    extern "C++" {
        AIBinder_fromPlatformBinder*;
        AIBinder_toPlatformBinder*;
        AParcel_viewPlatformParcel*;
    };
  local:
    *;
};
