From 446467b370f19aae1cf8a4f385cae6f8b8316265 Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath Date: Tue, 18 Jun 2024 05:01:55 +0000 Subject: [PATCH 1/3] CMake: Remove leftovers after base submodule removal It was removed in 32559b1efec7f522d0b88a475b77ff91fdcd5699 commit --- CMakeLists.txt | 1 - vendor/CMakeLists.adb.txt | 1 - 2 files changed, 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d3525a7..3fc0e7d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,7 +44,6 @@ set(CPACK_SOURCE_GENERATOR "TXZ") set(CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME}-${ANDROID_VERSION}") set(CPACK_SOURCE_IGNORE_FILES "/patches/" "/build/" "/.git/" "/.github/" "/tests/" "/testdata/" "/extras/simpleperf/scripts/" "/extras/simpleperf/demo/" - "/vendor/base/[a-k].*" "/vendor/base/[m-z].*" "without_trace_offcpu.html" "aes_128_gcm.txt" "aes_256_gcm.txt" "/fuzz/" "/wycheproof_testvectors/" diff --git a/vendor/CMakeLists.adb.txt b/vendor/CMakeLists.adb.txt index 5feef00..397ca66 100644 --- a/vendor/CMakeLists.adb.txt +++ b/vendor/CMakeLists.adb.txt @@ -52,7 +52,6 @@ add_library(libadb STATIC ${libadb_SOURCES}) target_compile_definitions(libadb PRIVATE -D_GNU_SOURCE) target_compile_definitions(libadb PUBLIC -DADB_HOST=1) target_include_directories(libadb PUBLIC - base/libs/androidfw/include boringssl/include adb adb/crypto/include From e776a71ca2500f727f2f1ccf3c9ce46997f3954f Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath Date: Tue, 18 Jun 2024 05:59:59 +0000 Subject: [PATCH 2/3] vendor: Remove unused incremental_delivery submodule It was added in c036c4df45f080087858815910b0f1f93a3c7e29 commit and no longer required after removal of base submodule in 32559b1efec7f522d0b88a475b77ff91fdcd5699 commit. --- .gitmodules | 4 -- ...d-prototype-for-opreator-to-iterator.patch | 37 ------------------- vendor/CMakeLists.txt | 1 - vendor/incremental_delivery | 1 - 4 files changed, 43 deletions(-) delete mode 100644 patches/incremental_delivery/0001-Add-prototype-for-opreator-to-iterator.patch delete mode 160000 vendor/incremental_delivery diff --git a/.gitmodules b/.gitmodules index bef01cf..0fed469 100644 --- a/.gitmodules +++ b/.gitmodules @@ -50,10 +50,6 @@ shallow = true path = vendor/logging url = https://android.googlesource.com/platform/system/logging.git -[submodule "vendor/incremental_delivery"] - shallow = true - path = vendor/incremental_delivery - url = https://android.googlesource.com/platform/system/incremental_delivery [submodule "vendor/fmtlib"] shallow = true path = vendor/fmtlib diff --git a/patches/incremental_delivery/0001-Add-prototype-for-opreator-to-iterator.patch b/patches/incremental_delivery/0001-Add-prototype-for-opreator-to-iterator.patch deleted file mode 100644 index 6966452..0000000 --- a/patches/incremental_delivery/0001-Add-prototype-for-opreator-to-iterator.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 8831613cd3cfe9a757909859f9e1e7500fef9ac8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?S=C3=B6ren=20Tempel?= -Date: Sun, 23 May 2021 21:08:49 +0200 -Subject: [PATCH] Add prototype for opreator-- to iterator - -Otherwise, g++ 10.X refuses to compile this code: - - In file included from /usr/include/c++/10.3.1/bits/stl_algobase.h:66, - from /usr/include/c++/10.3.1/memory:63, - from /home/soeren/src/android-tools/vendor/base/libs/androidfw/include/androidfw/LoadedArsc.h:20, - from /home/soeren/src/android-tools/vendor/base/libs/androidfw/LoadedArsc.cpp:19: - /usr/include/c++/10.3.1/bits/stl_iterator_base_funcs.h: In instantiation of 'constexpr void std::__advance(_RandomAccessIterator&, _Distance, std::random_access_iterator_tag) [with _RandomAccessIterator = android::incfs::map_ptr::const_iterator; _Distance = long int]': - /usr/include/c++/10.3.1/bits/stl_iterator_base_funcs.h:206:21: required from 'constexpr void std::advance(_InputIterator&, _Distance) [with _InputIterator = android::incfs::map_ptr::const_iterator; _Distance = long int]' - /usr/include/c++/10.3.1/bits/stl_algobase.h:1321:16: required from 'constexpr _ForwardIterator std::__lower_bound(_ForwardIterator, _ForwardIterator, const _Tp&, _Compare) [with _ForwardIterator = android::incfs::map_ptr::const_iterator; _Tp = short unsigned int; _Compare = __gnu_cxx::__ops::_Iter_comp_val, uint16_t)::&, uint16_t)> >]' - /usr/include/c++/10.3.1/bits/stl_algo.h:2046:32: required from 'constexpr _FIter std::lower_bound(_FIter, _FIter, const _Tp&, _Compare) [with _FIter = android::incfs::map_ptr::const_iterator; _Tp = short unsigned int; _Compare = android::LoadedPackage::GetEntryOffset(android::incfs::verified_map_ptr, uint16_t)::&, uint16_t)>]' - /home/soeren/src/android-tools/vendor/base/libs/androidfw/LoadedArsc.cpp:276:6: required from here - /usr/include/c++/10.3.1/bits/stl_iterator_base_funcs.h:183:2: error: no match for 'operator--' (operand type is 'android::incfs::map_ptr::const_iterator') - 183 | --__i; - | ^~~~~ ---- - incfs/util/include/util/map_ptr.h | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/incfs/util/include/util/map_ptr.h b/incfs/util/include/util/map_ptr.h -index cda80f9..6fd38ee 100644 ---- a/incfs/util/include/util/map_ptr.h -+++ b/incfs/util/include/util/map_ptr.h -@@ -163,6 +163,9 @@ public: - - reference operator*() const { return safe_ptr_; } - -+ /* Prototype needed to make this compile with g++ for some reason */ -+ const const_iterator& operator--(); -+ - const const_iterator& operator++() { - safe_ptr_++; - return *this; diff --git a/vendor/CMakeLists.txt b/vendor/CMakeLists.txt index 3cabf95..78c0e2a 100644 --- a/vendor/CMakeLists.txt +++ b/vendor/CMakeLists.txt @@ -55,7 +55,6 @@ set(android-vendored selinux f2fs-tools e2fsprogs - incremental_delivery fmtlib boringssl) diff --git a/vendor/incremental_delivery b/vendor/incremental_delivery deleted file mode 160000 index ab2cfbf..0000000 --- a/vendor/incremental_delivery +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ab2cfbf949aeaf042d66ca1c931f6f15164103c7 From 85070f51da97cdf1e8f0be791d4f85606785f344 Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath Date: Tue, 18 Jun 2024 07:10:10 +0000 Subject: [PATCH 3/3] vendor: Remove unused native submodule It was added in e8f73d65571801f495f89529c07f5671a7612a18 commit. --- .gitmodules | 4 - ...he-internal-glibc-header-sys-cdefs.h.patch | 1868 ----------------- vendor/CMakeLists.adb.txt | 3 +- vendor/CMakeLists.txt | 1 - vendor/native | 1 - 5 files changed, 1 insertion(+), 1876 deletions(-) delete mode 100644 patches/native/0001-Don-t-use-the-internal-glibc-header-sys-cdefs.h.patch delete mode 160000 vendor/native diff --git a/.gitmodules b/.gitmodules index 0fed469..5d0a1a2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -38,10 +38,6 @@ shallow = true path = vendor/libziparchive url = https://android.googlesource.com/platform/system/libziparchive -[submodule "vendor/native"] - shallow = true - path = vendor/native - url = https://android.googlesource.com/platform/frameworks/native [submodule "vendor/adb"] shallow = true path = vendor/adb diff --git a/patches/native/0001-Don-t-use-the-internal-glibc-header-sys-cdefs.h.patch b/patches/native/0001-Don-t-use-the-internal-glibc-header-sys-cdefs.h.patch deleted file mode 100644 index 164458e..0000000 --- a/patches/native/0001-Don-t-use-the-internal-glibc-header-sys-cdefs.h.patch +++ /dev/null @@ -1,1868 +0,0 @@ -From a1fdf4143c97c562944071d0626baf5234d0c24c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?S=C3=B6ren=20Tempel?= -Date: Sat, 16 Oct 2021 03:09:54 +0200 -Subject: [PATCH] Don't use the internal glibc header sys/cdefs.h - -for file in $(ag -l '__BEGIN_DECLS|sys/cdefs.h'); do - sed -i "${file}" \ - -e 's/__BEGIN_DECLS/#ifdef __cplusplus\nextern "C" {\n#endif/g' \ - -e 's/__END_DECLS/#ifdef __cplusplus\n}\n#endif/g' \ - -e '/#include /d' -done - -https://wiki.musl-libc.org/faq.html#Q:-When-compiling-something-against-musl,-I-get-error-messages-about-%3Ccode%3Esys/cdefs.h%3C/code%3E ---- - docs/Doxyfile | 8 ++++++-- - include/android/asset_manager.h | 1 - - include/android/choreographer.h | 9 ++++++--- - include/android/configuration.h | 1 - - include/android/font.h | 9 ++++++--- - include/android/font_matcher.h | 9 ++++++--- - include/android/hardware_buffer_jni.h | 9 ++++++--- - include/android/input.h | 1 - - include/android/looper.h | 1 - - include/android/multinetwork.h | 9 ++++++--- - include/android/native_window_jni.h | 1 - - include/android/performance_hint.h | 9 ++++++--- - include/android/permission_manager.h | 9 ++++++--- - include/android/sensor.h | 1 - - include/android/sharedmem.h | 1 - - include/android/sharedmem_jni.h | 1 - - include/android/surface_control.h | 9 ++++++--- - include/android/surface_control_jni.h | 9 ++++++--- - include/android/surface_texture.h | 9 ++++++--- - include/android/surface_texture_jni.h | 8 ++++++-- - include/android/system_fonts.h | 9 ++++++--- - include/android/thermal.h | 1 - - include/android/trace.h | 1 - - include/diskusage/dirsize.h | 8 ++++++-- - include/private/performance_hint_private.h | 8 ++++++-- - include/private/surface_control_private.h | 8 ++++++-- - include/private/thermal_private.h | 8 ++++++-- - libs/adbd_auth/include/adbd_auth.h | 9 ++++++--- - .../ndk/include_cpp/android/persistable_bundle_aidl.h | 1 - - libs/binder/ndk/include_ndk/android/binder_ibinder.h | 9 ++++++--- - libs/binder/ndk/include_ndk/android/binder_ibinder_jni.h | 8 ++++++-- - libs/binder/ndk/include_ndk/android/binder_parcel.h | 9 ++++++--- - libs/binder/ndk/include_ndk/android/binder_parcel_jni.h | 8 ++++++-- - libs/binder/ndk/include_ndk/android/binder_status.h | 9 ++++++--- - libs/binder/ndk/include_ndk/android/persistable_bundle.h | 9 ++++++--- - .../include_platform/android/binder_ibinder_platform.h | 8 ++++++-- - .../binder/ndk/include_platform/android/binder_manager.h | 9 ++++++--- - .../include_platform/android/binder_parcel_platform.h | 8 ++++++-- - .../binder/ndk/include_platform/android/binder_process.h | 9 ++++++--- - libs/binder/ndk/include_platform/android/binder_shell.h | 8 ++++++-- - .../ndk/include_platform/android/binder_stability.h | 8 ++++++-- - libs/binder/ndk/parcel_internal.h | 1 - - libs/binder/ndk/persistable_bundle.cpp | 8 ++++++-- - libs/binder/trusty/ndk/include/sys/cdefs.h | 8 ++++++-- - libs/nativebase/include/nativebase/nativebase.h | 9 ++++++--- - libs/nativedisplay/include/apex/choreographer.h | 8 ++++++-- - libs/nativedisplay/include/apex/display.h | 8 ++++++-- - .../nativedisplay/include/surfacetexture/ImageConsumer.h | 1 - - .../include/surfacetexture/SurfaceTexture.h | 1 - - libs/nativewindow/include/android/data_space.h | 9 ++++++--- - libs/nativewindow/include/android/hardware_buffer.h | 9 ++++++--- - libs/nativewindow/include/android/hardware_buffer_aidl.h | 9 ++++++--- - libs/nativewindow/include/android/hdr_metadata.h | 9 ++++++--- - libs/nativewindow/include/android/native_window.h | 1 - - libs/nativewindow/include/android/native_window_aidl.h | 9 ++++++--- - libs/nativewindow/include/apex/window.h | 8 ++++++-- - libs/nativewindow/include/system/window.h | 9 ++++++--- - libs/nativewindow/include/vndk/hardware_buffer.h | 8 ++++++-- - libs/nativewindow/include/vndk/window.h | 8 ++++++-- - libs/vr/libdvr/include/dvr/dvr_buffer.h | 9 ++++++--- - libs/vr/libdvr/include/dvr/dvr_buffer_queue.h | 9 ++++++--- - libs/vr/libdvr/include/dvr/dvr_config.h | 9 ++++++--- - libs/vr/libdvr/include/dvr/dvr_configuration_data.h | 9 ++++++--- - libs/vr/libdvr/include/dvr/dvr_deleter.h | 9 ++++++--- - libs/vr/libdvr/include/dvr/dvr_display_manager.h | 9 ++++++--- - libs/vr/libdvr/include/dvr/dvr_display_types.h | 9 ++++++--- - libs/vr/libdvr/include/dvr/dvr_performance.h | 8 ++++++-- - libs/vr/libdvr/include/dvr/dvr_pose.h | 9 ++++++--- - libs/vr/libdvr/include/dvr/dvr_surface.h | 9 ++++++--- - libs/vr/libdvr/include/dvr/dvr_tracking.h | 9 ++++++--- - libs/vr/libdvr/include/dvr/dvr_tracking_types.h | 9 ++++++--- - libs/vr/libdvr/include/dvr/dvr_vsync.h | 9 ++++++--- - vulkan/include/hardware/hwvulkan.h | 8 ++++++-- - 73 files changed, 348 insertions(+), 168 deletions(-) - -diff --git a/docs/Doxyfile b/docs/Doxyfile -index ea22337..d1e7d31 100644 ---- a/docs/Doxyfile -+++ b/docs/Doxyfile -@@ -1623,8 +1623,12 @@ INCLUDE_FILE_PATTERNS = - - PREDEFINED = \ - "__ANDROID_API__=10000" \ -- "__BEGIN_DECLS=" \ -- "__END_DECLS=" \ -+ "#ifdef __cplusplus -+extern "C" { -+#endif=" \ -+ "#ifdef __cplusplus -+} -+#endif=" \ - "__INTRODUCED_IN(x)=" \ - "__INTRODUCED_IN_32(x)=" \ - "__INTRODUCED_IN_64(x)=" \ -diff --git a/include/android/asset_manager.h b/include/android/asset_manager.h -index 2ac7d4d..8a7517e 100644 ---- a/include/android/asset_manager.h -+++ b/include/android/asset_manager.h -@@ -26,7 +26,6 @@ - #ifndef ANDROID_ASSET_MANAGER_H - #define ANDROID_ASSET_MANAGER_H - --#include - #include - - #ifdef __cplusplus -diff --git a/include/android/choreographer.h b/include/android/choreographer.h -index f999708..06cf96b 100644 ---- a/include/android/choreographer.h -+++ b/include/android/choreographer.h -@@ -49,9 +49,10 @@ - #define ANDROID_CHOREOGRAPHER_H - - #include --#include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - struct AChoreographer; - /** -@@ -279,7 +280,9 @@ int64_t AChoreographerFrameCallbackData_getFrameTimelineExpectedPresentationTime - int64_t AChoreographerFrameCallbackData_getFrameTimelineDeadlineNanos( - const AChoreographerFrameCallbackData* data, size_t index) __INTRODUCED_IN(33); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_CHOREOGRAPHER_H - -diff --git a/include/android/configuration.h b/include/android/configuration.h -index 46c7dfe..b0c6392 100644 ---- a/include/android/configuration.h -+++ b/include/android/configuration.h -@@ -26,7 +26,6 @@ - #ifndef ANDROID_CONFIGURATION_H - #define ANDROID_CONFIGURATION_H - --#include - - #include - -diff --git a/include/android/font.h b/include/android/font.h -index 0225725..ca1113e 100644 ---- a/include/android/font.h -+++ b/include/android/font.h -@@ -32,7 +32,6 @@ - #include - #include - #include --#include - - /****************************************************************** - * -@@ -50,7 +49,9 @@ - * - DO NOT CHANGE THE LAYOUT OR SIZE OF STRUCTURES - */ - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - enum { - /** The minimum value fot the font weight value. */ -@@ -297,7 +298,9 @@ uint32_t AFont_getAxisTag(const AFont* _Nonnull font, uint32_t axisIndex) - float AFont_getAxisValue(const AFont* _Nonnull font, uint32_t axisIndex) - __INTRODUCED_IN(29); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_FONT_H - -diff --git a/include/android/font_matcher.h b/include/android/font_matcher.h -index 60ff95e..fdf047f 100644 ---- a/include/android/font_matcher.h -+++ b/include/android/font_matcher.h -@@ -76,7 +76,6 @@ - #include - #include - #include --#include - - #include - -@@ -96,7 +95,9 @@ - * - DO NOT CHANGE THE LAYOUT OR SIZE OF STRUCTURES - */ - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - enum { - /** A family variant value for the system default variant. */ -@@ -217,7 +218,9 @@ AFont* _Nonnull AFontMatcher_match( - const uint32_t textLength, - uint32_t* _Nullable runLengthOut) __INTRODUCED_IN(29); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_FONT_MATCHER_H - -diff --git a/include/android/hardware_buffer_jni.h b/include/android/hardware_buffer_jni.h -index ae208a6..7975fd4 100644 ---- a/include/android/hardware_buffer_jni.h -+++ b/include/android/hardware_buffer_jni.h -@@ -27,13 +27,14 @@ - #ifndef ANDROID_HARDWARE_BUFFER_JNI_H - #define ANDROID_HARDWARE_BUFFER_JNI_H - --#include - - #include - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /** - * Return the AHardwareBuffer wrapped by a Java HardwareBuffer object. -@@ -68,7 +69,9 @@ AHardwareBuffer* AHardwareBuffer_fromHardwareBuffer(JNIEnv* env, - jobject AHardwareBuffer_toHardwareBuffer(JNIEnv* env, - AHardwareBuffer* hardwareBuffer) __INTRODUCED_IN(26); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_HARDWARE_BUFFER_JNI_H - -diff --git a/include/android/input.h b/include/android/input.h -index 16d86af..0951ec6 100644 ---- a/include/android/input.h -+++ b/include/android/input.h -@@ -26,7 +26,6 @@ - #ifndef _ANDROID_INPUT_H - #define _ANDROID_INPUT_H - --#include - - /****************************************************************** - * -diff --git a/include/android/looper.h b/include/android/looper.h -index e50730d..ea90edd 100644 ---- a/include/android/looper.h -+++ b/include/android/looper.h -@@ -26,7 +26,6 @@ - #ifndef ANDROID_LOOPER_H - #define ANDROID_LOOPER_H - --#include - - #ifdef __cplusplus - extern "C" { -diff --git a/include/android/multinetwork.h b/include/android/multinetwork.h -index ee392fc..9b993a9 100644 ---- a/include/android/multinetwork.h -+++ b/include/android/multinetwork.h -@@ -28,9 +28,10 @@ - - #include - #include --#include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /** - * The corresponding C type for android.net.Network#getNetworkHandle() return -@@ -289,7 +290,9 @@ int android_tag_socket(int sockfd, uint32_t tag) __INTRODUCED_IN(33); - */ - int android_untag_socket(int sockfd) __INTRODUCED_IN(33); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_MULTINETWORK_H - -diff --git a/include/android/native_window_jni.h b/include/android/native_window_jni.h -index 071ec79..38e5cc6 100644 ---- a/include/android/native_window_jni.h -+++ b/include/android/native_window_jni.h -@@ -26,7 +26,6 @@ - #ifndef ANDROID_NATIVE_WINDOW_JNI_H - #define ANDROID_NATIVE_WINDOW_JNI_H - --#include - - #include - -diff --git a/include/android/performance_hint.h b/include/android/performance_hint.h -index 9d2c791..3653589 100644 ---- a/include/android/performance_hint.h -+++ b/include/android/performance_hint.h -@@ -34,7 +34,6 @@ - #ifndef ANDROID_NATIVE_PERFORMANCE_HINT_H - #define ANDROID_NATIVE_PERFORMANCE_HINT_H - --#include - - /****************************************************************** - * -@@ -56,7 +55,9 @@ - #include - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - struct APerformanceHintManager; - struct APerformanceHintSession; -@@ -303,7 +304,9 @@ void AWorkDuration_setActualCpuDurationNanos(AWorkDuration* _Nonnull aWorkDurati - void AWorkDuration_setActualGpuDurationNanos(AWorkDuration* _Nonnull aWorkDuration, - int64_t actualGpuDurationNanos) __INTRODUCED_IN(__ANDROID_API_V__); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_NATIVE_PERFORMANCE_HINT_H - -diff --git a/include/android/permission_manager.h b/include/android/permission_manager.h -index 753b6d1..f815657 100644 ---- a/include/android/permission_manager.h -+++ b/include/android/permission_manager.h -@@ -28,10 +28,11 @@ - #ifndef ANDROID_PERMISSION_MANAGER_H - #define ANDROID_PERMISSION_MANAGER_H - --#include - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /** - * Permission check results. -@@ -93,7 +94,9 @@ int32_t APermissionManager_checkPermission(const char* permission, - uid_t uid, - int32_t* outResult) __INTRODUCED_IN(31); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_PERMISSION_MANAGER_H - -diff --git a/include/android/sensor.h b/include/android/sensor.h -index a618393..577e9cd 100644 ---- a/include/android/sensor.h -+++ b/include/android/sensor.h -@@ -29,7 +29,6 @@ - #ifndef ANDROID_SENSOR_H - #define ANDROID_SENSOR_H - --#include - - /****************************************************************** - * -diff --git a/include/android/sharedmem.h b/include/android/sharedmem.h -index 1d513a6..ca84979 100644 ---- a/include/android/sharedmem.h -+++ b/include/android/sharedmem.h -@@ -28,7 +28,6 @@ - #define ANDROID_SHARED_MEMORY_H - - #include --#include - - /****************************************************************** - * -diff --git a/include/android/sharedmem_jni.h b/include/android/sharedmem_jni.h -index bbac785..5abc245 100644 ---- a/include/android/sharedmem_jni.h -+++ b/include/android/sharedmem_jni.h -@@ -30,7 +30,6 @@ - #include - #include - #include --#include - - /****************************************************************** - * -diff --git a/include/android/surface_control.h b/include/android/surface_control.h -index 23461e2..29ffcbc 100644 ---- a/include/android/surface_control.h -+++ b/include/android/surface_control.h -@@ -26,7 +26,6 @@ - #ifndef ANDROID_SURFACE_CONTROL_H - #define ANDROID_SURFACE_CONTROL_H - --#include - - #include - #include -@@ -34,7 +33,9 @@ - #include - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - struct ASurfaceControl; - -@@ -699,7 +700,9 @@ void ASurfaceTransaction_setEnableBackPressure(ASurfaceTransaction* transaction, - void ASurfaceTransaction_setFrameTimeline(ASurfaceTransaction* transaction, - AVsyncId vsyncId) __INTRODUCED_IN(33); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_SURFACE_CONTROL_H - -diff --git a/include/android/surface_control_jni.h b/include/android/surface_control_jni.h -index 840f6e7..2b4dbd9 100644 ---- a/include/android/surface_control_jni.h -+++ b/include/android/surface_control_jni.h -@@ -27,11 +27,12 @@ - #define ANDROID_SURFACE_CONTROL_JNI_H - - #include --#include - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /** - * Return the ASurfaceControl wrapped by a Java SurfaceControl object. -@@ -62,7 +63,9 @@ ASurfaceControl* _Nonnull ASurfaceControl_fromJava(JNIEnv* _Nonnull env, - ASurfaceTransaction* _Nonnull ASurfaceTransaction_fromJava(JNIEnv* _Nonnull env, - jobject _Nonnull transactionObj) __INTRODUCED_IN(__ANDROID_API_U__); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_SURFACE_CONTROL_JNI_H - /** @} */ -diff --git a/include/android/surface_texture.h b/include/android/surface_texture.h -index 9ae211e..da4ce54 100644 ---- a/include/android/surface_texture.h -+++ b/include/android/surface_texture.h -@@ -43,11 +43,12 @@ - */ - - #include --#include - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - struct ASurfaceTexture; - -@@ -173,7 +174,9 @@ void ASurfaceTexture_getTransformMatrix(ASurfaceTexture* st, float mtx[16]) __IN - */ - int64_t ASurfaceTexture_getTimestamp(ASurfaceTexture* st) __INTRODUCED_IN(28); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif /* ANDROID_NATIVE_SURFACE_TEXTURE_H */ - -diff --git a/include/android/surface_texture_jni.h b/include/android/surface_texture_jni.h -index 8448d8c..f1a7542 100644 ---- a/include/android/surface_texture_jni.h -+++ b/include/android/surface_texture_jni.h -@@ -30,7 +30,9 @@ - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /** - * Get a reference to the native ASurfaceTexture from the corresponding java object. -@@ -50,7 +52,9 @@ __BEGIN_DECLS - */ - ASurfaceTexture* ASurfaceTexture_fromSurfaceTexture(JNIEnv* env, jobject surfacetexture) __INTRODUCED_IN(28); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif /* ANDROID_NATIVE_SURFACE_TEXTURE_JNI_H */ - -diff --git a/include/android/system_fonts.h b/include/android/system_fonts.h -index 94484ea..565fb49 100644 ---- a/include/android/system_fonts.h -+++ b/include/android/system_fonts.h -@@ -65,7 +65,6 @@ - - #include - #include --#include - - #include - -@@ -85,7 +84,9 @@ - * - DO NOT CHANGE THE LAYOUT OR SIZE OF STRUCTURES - */ - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - struct ASystemFontIterator; - /** -@@ -127,7 +128,9 @@ void ASystemFontIterator_close(ASystemFontIterator* _Nullable iterator) __INTROD - */ - AFont* _Nullable ASystemFontIterator_next(ASystemFontIterator* _Nonnull iterator) __INTRODUCED_IN(29); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_SYSTEM_FONTS_H - -diff --git a/include/android/thermal.h b/include/android/thermal.h -index 0b57e93..1ae8add 100644 ---- a/include/android/thermal.h -+++ b/include/android/thermal.h -@@ -26,7 +26,6 @@ - #ifndef _ANDROID_THERMAL_H - #define _ANDROID_THERMAL_H - --#include - - /****************************************************************** - * -diff --git a/include/android/trace.h b/include/android/trace.h -index d11158b..d0d002d 100644 ---- a/include/android/trace.h -+++ b/include/android/trace.h -@@ -34,7 +34,6 @@ - - #include - #include --#include - - #ifdef __cplusplus - extern "C" { -diff --git a/include/diskusage/dirsize.h b/include/diskusage/dirsize.h -index 34236c0..8500bd1 100644 ---- a/include/diskusage/dirsize.h -+++ b/include/diskusage/dirsize.h -@@ -20,11 +20,15 @@ - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - int64_t stat_size(struct stat *s); - int64_t calculate_dir_size(int dfd); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif /* __LIBDISKUSAGE_DIRSIZE_H */ -diff --git a/include/private/performance_hint_private.h b/include/private/performance_hint_private.h -index d50c5f8..262b062 100644 ---- a/include/private/performance_hint_private.h -+++ b/include/private/performance_hint_private.h -@@ -19,7 +19,9 @@ - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /** - * For testing only. -@@ -71,6 +73,8 @@ int APerformanceHint_sendHint(void* session, SessionHint hint); - int APerformanceHint_getThreadIds(void* aPerformanceHintSession, - int32_t* const threadIds, size_t* const size); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_PRIVATE_NATIVE_PERFORMANCE_HINT_PRIVATE_H -diff --git a/include/private/surface_control_private.h b/include/private/surface_control_private.h -index 138926e..b9eede5 100644 ---- a/include/private/surface_control_private.h -+++ b/include/private/surface_control_private.h -@@ -21,7 +21,9 @@ - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - struct ASurfaceControl; - struct ASurfaceControlStats; -@@ -75,6 +77,8 @@ int64_t ASurfaceControlStats_getAcquireTime(ASurfaceControlStats* stats); - */ - uint64_t ASurfaceControlStats_getFrameNumber(ASurfaceControlStats* stats); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif //ANDROID_PRIVATE_NATIVE_SURFACE_CONTROL_H -diff --git a/include/private/thermal_private.h b/include/private/thermal_private.h -index 951d953..a53a93d 100644 ---- a/include/private/thermal_private.h -+++ b/include/private/thermal_private.h -@@ -19,13 +19,17 @@ - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /** - * For testing only. - */ - void AThermal_setIThermalServiceForTesting(void* iThermalService); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_PRIVATE_NATIVE_THERMAL_H -\ No newline at end of file -diff --git a/libs/adbd_auth/include/adbd_auth.h b/libs/adbd_auth/include/adbd_auth.h -index 1dcf540..f5221c2 100644 ---- a/libs/adbd_auth/include/adbd_auth.h -+++ b/libs/adbd_auth/include/adbd_auth.h -@@ -18,14 +18,15 @@ - - #include - #include --#include - #include - - #if !defined(__INTRODUCED_IN) - #define __INTRODUCED_IN(__api_level) /* nothing */ - #endif - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - // The transport type of the device connection. - enum AdbTransportType : int32_t { -@@ -185,4 +186,6 @@ enum AdbdAuthFeature : int32_t { - */ - bool adbd_auth_supports_feature(AdbdAuthFeature feature); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif -diff --git a/libs/binder/ndk/include_cpp/android/persistable_bundle_aidl.h b/libs/binder/ndk/include_cpp/android/persistable_bundle_aidl.h -index 864ff50..5222a01 100644 ---- a/libs/binder/ndk/include_cpp/android/persistable_bundle_aidl.h -+++ b/libs/binder/ndk/include_cpp/android/persistable_bundle_aidl.h -@@ -17,7 +17,6 @@ - - #include - #include --#include - - #include - #include -diff --git a/libs/binder/ndk/include_ndk/android/binder_ibinder.h b/libs/binder/ndk/include_ndk/android/binder_ibinder.h -index b1ab7b0..5ee5393 100644 ---- a/libs/binder/ndk/include_ndk/android/binder_ibinder.h -+++ b/libs/binder/ndk/include_ndk/android/binder_ibinder.h -@@ -28,13 +28,14 @@ - - #include - #include --#include - #include - - #include - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /** - * Flags for AIBinder_transact. -@@ -828,6 +829,8 @@ AIBinder_Weak* AIBinder_Weak_clone(const AIBinder_Weak* weak) __INTRODUCED_IN(31 - */ - bool AIBinder_Weak_lt(const AIBinder_Weak* lhs, const AIBinder_Weak* rhs) __INTRODUCED_IN(31); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - /** @} */ -diff --git a/libs/binder/ndk/include_ndk/android/binder_ibinder_jni.h b/libs/binder/ndk/include_ndk/android/binder_ibinder_jni.h -index 8e288b3..d648139 100644 ---- a/libs/binder/ndk/include_ndk/android/binder_ibinder_jni.h -+++ b/libs/binder/ndk/include_ndk/android/binder_ibinder_jni.h -@@ -30,7 +30,9 @@ - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /** - * Converts an android.os.IBinder object into an AIBinder* object. -@@ -72,6 +74,8 @@ __attribute__((warn_unused_result)) AIBinder* AIBinder_fromJavaBinder(JNIEnv* en - __attribute__((warn_unused_result)) jobject AIBinder_toJavaBinder(JNIEnv* env, AIBinder* binder) - __INTRODUCED_IN(29); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - /** @} */ -diff --git a/libs/binder/ndk/include_ndk/android/binder_parcel.h b/libs/binder/ndk/include_ndk/android/binder_parcel.h -index d833b83..d9d4fc6 100644 ---- a/libs/binder/ndk/include_ndk/android/binder_parcel.h -+++ b/libs/binder/ndk/include_ndk/android/binder_parcel.h -@@ -29,13 +29,14 @@ - #include - #include - #include --#include - #include - - struct AIBinder; - typedef struct AIBinder AIBinder; - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /** - * This object represents a package of data that can be sent between processes. When transacting, an -@@ -1207,6 +1208,8 @@ binder_status_t AParcel_marshal(const AParcel* parcel, uint8_t* buffer, size_t s - binder_status_t AParcel_unmarshal(AParcel* parcel, const uint8_t* buffer, size_t len) - __INTRODUCED_IN(33); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - /** @} */ -diff --git a/libs/binder/ndk/include_ndk/android/binder_parcel_jni.h b/libs/binder/ndk/include_ndk/android/binder_parcel_jni.h -index 384d4f7..e4d22d1 100644 ---- a/libs/binder/ndk/include_ndk/android/binder_parcel_jni.h -+++ b/libs/binder/ndk/include_ndk/android/binder_parcel_jni.h -@@ -30,7 +30,9 @@ - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /** - * Converts an android.os.Parcel object into an AParcel* object. -@@ -49,6 +51,8 @@ __BEGIN_DECLS - __attribute__((warn_unused_result)) AParcel* AParcel_fromJavaParcel(JNIEnv* env, jobject parcel) - __INTRODUCED_IN(30); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - /** @} */ -diff --git a/libs/binder/ndk/include_ndk/android/binder_status.h b/libs/binder/ndk/include_ndk/android/binder_status.h -index 14edf2b..797ce58 100644 ---- a/libs/binder/ndk/include_ndk/android/binder_status.h -+++ b/libs/binder/ndk/include_ndk/android/binder_status.h -@@ -29,14 +29,15 @@ - #include - #include - #include --#include - - #if !defined(__BIONIC__) && defined(BINDER_ENABLE_LIBLOG_ASSERT) - #include - #define __assert(file, line, message) LOG_ALWAYS_FATAL(file ":" #line ": " message) - #endif - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - #ifndef __BIONIC__ - -@@ -310,6 +311,8 @@ void AStatus_deleteDescription(const char* description) __INTRODUCED_IN(30); - */ - void AStatus_delete(AStatus* status) __INTRODUCED_IN(29); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - /** @} */ -diff --git a/libs/binder/ndk/include_ndk/android/persistable_bundle.h b/libs/binder/ndk/include_ndk/android/persistable_bundle.h -index 98c0cb2..924007c 100644 ---- a/libs/binder/ndk/include_ndk/android/persistable_bundle.h -+++ b/libs/binder/ndk/include_ndk/android/persistable_bundle.h -@@ -19,10 +19,11 @@ - #include - #include - #include --#include - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /* - * A mapping from string keys to values of various types. -@@ -939,4 +940,6 @@ int32_t APersistableBundle_getPersistableBundleKeys( - int32_t bufferSizeBytes, APersistableBundle_stringAllocator stringAllocator, - void* _Nullable context) __INTRODUCED_IN(__ANDROID_API_V__); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif -diff --git a/libs/binder/ndk/include_platform/android/binder_ibinder_platform.h b/libs/binder/ndk/include_platform/android/binder_ibinder_platform.h -index 89f21dd..3cd8dcb 100644 ---- a/libs/binder/ndk/include_platform/android/binder_ibinder_platform.h -+++ b/libs/binder/ndk/include_platform/android/binder_ibinder_platform.h -@@ -18,7 +18,9 @@ - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - // platform values for binder_flags_t - enum { -@@ -80,4 +82,6 @@ void AIBinder_setMinSchedulerPolicy(AIBinder* binder, int policy, int priority) - */ - void AIBinder_setInheritRt(AIBinder* binder, bool inheritRt) __INTRODUCED_IN(33); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif -diff --git a/libs/binder/ndk/include_platform/android/binder_manager.h b/libs/binder/ndk/include_platform/android/binder_manager.h -index a905dff..329fc6f 100644 ---- a/libs/binder/ndk/include_platform/android/binder_manager.h -+++ b/libs/binder/ndk/include_platform/android/binder_manager.h -@@ -18,9 +18,10 @@ - - #include - #include --#include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - enum AServiceManager_AddServiceFlag : uint32_t { - /** -@@ -308,4 +309,6 @@ bool AServiceManager_tryUnregister() __INTRODUCED_IN(31); - */ - void AServiceManager_reRegister() __INTRODUCED_IN(31); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif -diff --git a/libs/binder/ndk/include_platform/android/binder_parcel_platform.h b/libs/binder/ndk/include_platform/android/binder_parcel_platform.h -index b24094e..cb6b7d8 100644 ---- a/libs/binder/ndk/include_platform/android/binder_parcel_platform.h -+++ b/libs/binder/ndk/include_platform/android/binder_parcel_platform.h -@@ -18,7 +18,9 @@ - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - #if !defined(__ANDROID_APEX__) && !defined(__ANDROID_VNDK__) - -@@ -44,4 +46,6 @@ bool AParcel_getAllowFds(const AParcel*); - */ - void AParcel_markSensitive(const AParcel* parcel); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif -diff --git a/libs/binder/ndk/include_platform/android/binder_process.h b/libs/binder/ndk/include_platform/android/binder_process.h -index 68528e1..1a8ec4f 100644 ---- a/libs/binder/ndk/include_platform/android/binder_process.h -+++ b/libs/binder/ndk/include_platform/android/binder_process.h -@@ -17,11 +17,12 @@ - #pragma once - - #include --#include - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /** - * This creates a threadpool for incoming binder transactions if it has not already been created, -@@ -94,4 +95,6 @@ __attribute__((weak)) binder_status_t ABinderProcess_setupPolling(int* fd) __INT - */ - __attribute__((weak)) binder_status_t ABinderProcess_handlePolledCommands(void) __INTRODUCED_IN(31); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif -diff --git a/libs/binder/ndk/include_platform/android/binder_shell.h b/libs/binder/ndk/include_platform/android/binder_shell.h -index 07d89e6..5da5a7f 100644 ---- a/libs/binder/ndk/include_platform/android/binder_shell.h -+++ b/libs/binder/ndk/include_platform/android/binder_shell.h -@@ -18,7 +18,9 @@ - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /** - * Function to execute a shell command. -@@ -51,4 +53,6 @@ typedef binder_status_t (*AIBinder_handleShellCommand)(AIBinder* binder, int in, - __attribute__((weak)) void AIBinder_Class_setHandleShellCommand( - AIBinder_Class* clazz, AIBinder_handleShellCommand handleShellCommand) __INTRODUCED_IN(30); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif -diff --git a/libs/binder/ndk/include_platform/android/binder_stability.h b/libs/binder/ndk/include_platform/android/binder_stability.h -index 089c775..f7f7fc7 100644 ---- a/libs/binder/ndk/include_platform/android/binder_stability.h -+++ b/libs/binder/ndk/include_platform/android/binder_stability.h -@@ -18,7 +18,9 @@ - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /** - * Indicates that this transaction is coupled w/ vendor.img -@@ -119,4 +121,6 @@ __attribute__((weak)) - #endif // defined(__ANDROID_MIN_SDK_VERSION__) && __ANDROID_MIN_SDK_VERSION__ < 30 - void AIBinder_markVintfStability(AIBinder* binder); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif -diff --git a/libs/binder/ndk/parcel_internal.h b/libs/binder/ndk/parcel_internal.h -index b4f6358..98d3c8f 100644 ---- a/libs/binder/ndk/parcel_internal.h -+++ b/libs/binder/ndk/parcel_internal.h -@@ -18,7 +18,6 @@ - - #include - --#include - - #include - #include "ibinder_internal.h" -diff --git a/libs/binder/ndk/persistable_bundle.cpp b/libs/binder/ndk/persistable_bundle.cpp -index 9b6877d..e7da1ac 100644 ---- a/libs/binder/ndk/persistable_bundle.cpp -+++ b/libs/binder/ndk/persistable_bundle.cpp -@@ -22,7 +22,9 @@ - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - struct APersistableBundle { - APersistableBundle(const APersistableBundle& pBundle) : mPBundle(pBundle.mPBundle) {} -@@ -313,4 +315,6 @@ int32_t APersistableBundle_getPersistableBundleKeys( - stringAllocator, context); - } - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif -diff --git a/libs/binder/trusty/ndk/include/sys/cdefs.h b/libs/binder/trusty/ndk/include/sys/cdefs.h -index 6a48d2b..6e032d1 100644 ---- a/libs/binder/trusty/ndk/include/sys/cdefs.h -+++ b/libs/binder/trusty/ndk/include/sys/cdefs.h -@@ -18,7 +18,11 @@ - #include - - /* Alias the bionic macros to the ones from lk/compiler.h */ --#define __BEGIN_DECLS __BEGIN_CDECLS --#define __END_DECLS __END_CDECLS -+#define #ifdef __cplusplus -+extern "C" { -+#endif __BEGIN_CDECLS -+#define #ifdef __cplusplus -+} -+#endif __END_CDECLS - - #define __INTRODUCED_IN(x) /* nothing on Trusty */ -diff --git a/libs/nativebase/include/nativebase/nativebase.h b/libs/nativebase/include/nativebase/nativebase.h -index 7ecdfbd..3979b1b 100644 ---- a/libs/nativebase/include/nativebase/nativebase.h -+++ b/libs/nativebase/include/nativebase/nativebase.h -@@ -19,11 +19,12 @@ - #include - #include - #include --#include - #include - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - #ifdef __cplusplus - #define ANDROID_NATIVE_UNSIGNED_CAST(x) static_cast(x) -@@ -107,4 +108,6 @@ typedef struct ANativeWindowBuffer ANativeWindowBuffer; - // Old typedef for backwards compatibility. - typedef ANativeWindowBuffer_t android_native_buffer_t; - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif -diff --git a/libs/nativedisplay/include/apex/choreographer.h b/libs/nativedisplay/include/apex/choreographer.h -index 683abc4..cee6059 100644 ---- a/libs/nativedisplay/include/apex/choreographer.h -+++ b/libs/nativedisplay/include/apex/choreographer.h -@@ -19,7 +19,9 @@ - #include - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /** - * Creates an instance of AChoreographer. -@@ -56,4 +58,6 @@ int AChoreographer_getFd(const AChoreographer* choreographer); - */ - void AChoreographer_handlePendingEvents(AChoreographer* choreographer, void* data); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif -diff --git a/libs/nativedisplay/include/apex/display.h b/libs/nativedisplay/include/apex/display.h -index 0f44902..19f0f35 100644 ---- a/libs/nativedisplay/include/apex/display.h -+++ b/libs/nativedisplay/include/apex/display.h -@@ -23,7 +23,9 @@ - // TODO: the intention of these apis is to be stable - hence they are defined in - // an apex directory. But because they don't yet need to be stable, hold off on - // making them stable until a Mainline module needs them. --// __BEGIN_DECLS -+// #ifdef __cplusplus -+extern "C" { -+#endif - - namespace android { - -@@ -136,4 +138,6 @@ int64_t ADisplayConfig_getCompositorOffsetNanos(ADisplayConfig* config); - int64_t ADisplayConfig_getAppVsyncOffsetNanos(ADisplayConfig* config); - - } // namespace android --// __END_DECLS -+// #ifdef __cplusplus -+} -+#endif -diff --git a/libs/nativedisplay/include/surfacetexture/ImageConsumer.h b/libs/nativedisplay/include/surfacetexture/ImageConsumer.h -index 6fd4b8f..7b0e292 100644 ---- a/libs/nativedisplay/include/surfacetexture/ImageConsumer.h -+++ b/libs/nativedisplay/include/surfacetexture/ImageConsumer.h -@@ -21,7 +21,6 @@ - #include - #include - #include --#include - #include - - namespace android { -diff --git a/libs/nativedisplay/include/surfacetexture/SurfaceTexture.h b/libs/nativedisplay/include/surfacetexture/SurfaceTexture.h -index 099f47d..2cf4060 100644 ---- a/libs/nativedisplay/include/surfacetexture/SurfaceTexture.h -+++ b/libs/nativedisplay/include/surfacetexture/SurfaceTexture.h -@@ -21,7 +21,6 @@ - #include - - #include --#include - #include - #include - #include -diff --git a/libs/nativewindow/include/android/data_space.h b/libs/nativewindow/include/android/data_space.h -index 9f8ae86..626915f 100644 ---- a/libs/nativewindow/include/android/data_space.h -+++ b/libs/nativewindow/include/android/data_space.h -@@ -31,9 +31,10 @@ - #include - #include - --#include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /** - * ADataSpace. -@@ -578,7 +579,9 @@ enum ADataSpace : int32_t { - ADATASPACE_DYNAMIC_DEPTH = 4098 - }; - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_DATA_SPACE_H - -diff --git a/libs/nativewindow/include/android/hardware_buffer.h b/libs/nativewindow/include/android/hardware_buffer.h -index 21798d0..042358a 100644 ---- a/libs/nativewindow/include/android/hardware_buffer.h -+++ b/libs/nativewindow/include/android/hardware_buffer.h -@@ -47,9 +47,10 @@ - - #include - #include --#include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - // clang-format off - -@@ -614,7 +615,9 @@ int AHardwareBuffer_lockAndGetInfo(AHardwareBuffer* _Nonnull buffer, uint64_t us - int AHardwareBuffer_getId(const AHardwareBuffer* _Nonnull buffer, uint64_t* _Nonnull outId) - __INTRODUCED_IN(31); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_HARDWARE_BUFFER_H - -diff --git a/libs/nativewindow/include/android/hardware_buffer_aidl.h b/libs/nativewindow/include/android/hardware_buffer_aidl.h -index 3f77c78..84c8a78 100644 ---- a/libs/nativewindow/include/android/hardware_buffer_aidl.h -+++ b/libs/nativewindow/include/android/hardware_buffer_aidl.h -@@ -32,13 +32,14 @@ - - #include - #include --#include - - #ifdef __cplusplus - #include - #endif - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /** - * Read an AHardwareBuffer from a AParcel. The output buffer will have an -@@ -72,7 +73,9 @@ binder_status_t AHardwareBuffer_readFromParcel(const AParcel* _Nonnull parcel, - binder_status_t AHardwareBuffer_writeToParcel(const AHardwareBuffer* _Nonnull buffer, - AParcel* _Nonnull parcel) __INTRODUCED_IN(34); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - // Only enable the AIDL glue helper if this is C++ - #ifdef __cplusplus -diff --git a/libs/nativewindow/include/android/hdr_metadata.h b/libs/nativewindow/include/android/hdr_metadata.h -index 88772a9..07b48e9 100644 ---- a/libs/nativewindow/include/android/hdr_metadata.h -+++ b/libs/nativewindow/include/android/hdr_metadata.h -@@ -23,9 +23,10 @@ - - #include - --#include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /** - * These structures are used to define the display's capabilities for HDR content. -@@ -69,6 +70,8 @@ struct AHdrMetadata_cta861_3 { - float maxFrameAverageLightLevel; - }; - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_HDR_METADATA_H -diff --git a/libs/nativewindow/include/android/native_window.h b/libs/nativewindow/include/android/native_window.h -index be6623e..122b716 100644 ---- a/libs/nativewindow/include/android/native_window.h -+++ b/libs/nativewindow/include/android/native_window.h -@@ -35,7 +35,6 @@ - - #include - #include --#include - - #include - #include -diff --git a/libs/nativewindow/include/android/native_window_aidl.h b/libs/nativewindow/include/android/native_window_aidl.h -index e496c45..fd152fd 100644 ---- a/libs/nativewindow/include/android/native_window_aidl.h -+++ b/libs/nativewindow/include/android/native_window_aidl.h -@@ -32,7 +32,6 @@ - - #include - #include --#include - - // Only required by the AIDL glue helper - #ifdef __cplusplus -@@ -40,7 +39,9 @@ - #include - #endif // __cplusplus - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /** - * Read an ANativeWindow from a AParcel. The output buffer will have an -@@ -74,7 +75,9 @@ binder_status_t ANativeWindow_readFromParcel(const AParcel* _Nonnull parcel, - binder_status_t ANativeWindow_writeToParcel(ANativeWindow* _Nonnull window, - AParcel* _Nonnull parcel) __INTRODUCED_IN(__ANDROID_API_U__); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - // Only enable the AIDL glue helper if this is C++ - #ifdef __cplusplus -diff --git a/libs/nativewindow/include/apex/window.h b/libs/nativewindow/include/apex/window.h -index 2d1354c..1b2f689 100644 ---- a/libs/nativewindow/include/apex/window.h -+++ b/libs/nativewindow/include/apex/window.h -@@ -22,7 +22,9 @@ - // apex is a superset of the NDK - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /* - * perform bits that can be used with ANativeWindow_perform() -@@ -207,4 +209,6 @@ int64_t ANativeWindow_getLastDequeueStartTime(ANativeWindow* window); - */ - int ANativeWindow_setDequeueTimeout(ANativeWindow* window, int64_t timeout); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif -diff --git a/libs/nativewindow/include/system/window.h b/libs/nativewindow/include/system/window.h -index a98ea86..3fab3e1 100644 ---- a/libs/nativewindow/include/system/window.h -+++ b/libs/nativewindow/include/system/window.h -@@ -37,7 +37,6 @@ - #include - #include - #include --#include - #include - #include - -@@ -53,7 +52,9 @@ - #define __deprecated __attribute__((__deprecated__)) - #endif - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /*****************************************************************************/ - -@@ -1276,4 +1277,6 @@ static inline int ANativeWindow_setQueryInterceptor(ANativeWindow* window, - return window->perform(window, NATIVE_WINDOW_SET_QUERY_INTERCEPTOR, interceptor, data); - } - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif -diff --git a/libs/nativewindow/include/vndk/hardware_buffer.h b/libs/nativewindow/include/vndk/hardware_buffer.h -index 21931bb..ac11524 100644 ---- a/libs/nativewindow/include/vndk/hardware_buffer.h -+++ b/libs/nativewindow/include/vndk/hardware_buffer.h -@@ -22,7 +22,9 @@ - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /** - * Get the native handle from an AHardwareBuffer. -@@ -105,6 +107,8 @@ enum { - AHARDWAREBUFFER_USAGE_CAMERA_MASK = 6UL << 16, - }; - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif /* ANDROID_VNDK_NATIVEWINDOW_AHARDWAREBUFFER_H */ -diff --git a/libs/nativewindow/include/vndk/window.h b/libs/nativewindow/include/vndk/window.h -index 500052c..db1fdd1 100644 ---- a/libs/nativewindow/include/vndk/window.h -+++ b/libs/nativewindow/include/vndk/window.h -@@ -23,7 +23,9 @@ - #include - - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /* - * Convert this ANativeWindowBuffer into a AHardwareBuffer -@@ -328,6 +330,8 @@ int ANativeWindow_setAutoPrerotation(ANativeWindow* window, bool autoPrerotation - - /*****************************************************************************/ - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif /* ANDROID_VNDK_NATIVEWINDOW_ANATIVEWINDOW_H */ -diff --git a/libs/vr/libdvr/include/dvr/dvr_buffer.h b/libs/vr/libdvr/include/dvr/dvr_buffer.h -index 4234844..8a34822 100644 ---- a/libs/vr/libdvr/include/dvr/dvr_buffer.h -+++ b/libs/vr/libdvr/include/dvr/dvr_buffer.h -@@ -3,10 +3,11 @@ - - #include - #include --#include - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - typedef struct DvrWriteBuffer DvrWriteBuffer; - typedef struct DvrReadBuffer DvrReadBuffer; -@@ -53,6 +54,8 @@ int dvrBufferGetAHardwareBuffer(DvrBuffer* buffer, - // Retrieve the shared buffer layout version defined in dvr_shared_buffers.h. - int dvrBufferGlobalLayoutVersionGet(); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_DVR_BUFFER_H_ -diff --git a/libs/vr/libdvr/include/dvr/dvr_buffer_queue.h b/libs/vr/libdvr/include/dvr/dvr_buffer_queue.h -index ac789da..9acf66e 100644 ---- a/libs/vr/libdvr/include/dvr/dvr_buffer_queue.h -+++ b/libs/vr/libdvr/include/dvr/dvr_buffer_queue.h -@@ -1,11 +1,12 @@ - #ifndef ANDROID_DVR_BUFFER_QUEUE_H_ - #define ANDROID_DVR_BUFFER_QUEUE_H_ - --#include - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - typedef struct ANativeWindow ANativeWindow; - -@@ -258,6 +259,8 @@ int dvrReadBufferQueueSetBufferRemovedCallback( - // @return Zero on success, or negative error code. - int dvrReadBufferQueueHandleEvents(DvrReadBufferQueue* read_queue); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_DVR_BUFFER_QUEUE_H_ -diff --git a/libs/vr/libdvr/include/dvr/dvr_config.h b/libs/vr/libdvr/include/dvr/dvr_config.h -index 3d2c066..3b94f1b 100644 ---- a/libs/vr/libdvr/include/dvr/dvr_config.h -+++ b/libs/vr/libdvr/include/dvr/dvr_config.h -@@ -4,9 +4,10 @@ - // This header is shared by VrCore and Android and must be kept in sync. - - #include --#include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - // This is a shared memory buffer for passing config data from VrCore to - // libvrflinger in SurfaceFlinger. -@@ -29,6 +30,8 @@ struct __attribute__((packed, aligned(16))) DvrConfig { - uint8_t pad[8]; - }; - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_DVR_CONFIG_H -diff --git a/libs/vr/libdvr/include/dvr/dvr_configuration_data.h b/libs/vr/libdvr/include/dvr/dvr_configuration_data.h -index 22a509f..efd148e 100644 ---- a/libs/vr/libdvr/include/dvr/dvr_configuration_data.h -+++ b/libs/vr/libdvr/include/dvr/dvr_configuration_data.h -@@ -4,12 +4,13 @@ - #include - #include - #include --#include - - #include - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - // Loads device configuration data of DVR_CONFIGURATION_DATA_*. - // @return 0 on success. Otherwise returns a negative error value. -@@ -19,6 +20,8 @@ int dvrConfigurationDataGet(int config_type, - // Destroy the configuration data returned from dvrGetConfigurationData. - void dvrConfigurationDataDestroy(uint8_t* data); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // DVR_CONFIGURATION_DATA_H_ -diff --git a/libs/vr/libdvr/include/dvr/dvr_deleter.h b/libs/vr/libdvr/include/dvr/dvr_deleter.h -index fe59d1f..5a9d93c 100644 ---- a/libs/vr/libdvr/include/dvr/dvr_deleter.h -+++ b/libs/vr/libdvr/include/dvr/dvr_deleter.h -@@ -1,13 +1,14 @@ - #ifndef ANDROID_DVR_DELETER_H_ - #define ANDROID_DVR_DELETER_H_ - --#include - - #include - - // Header-only C++ helper to delete opaque DVR objects. - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - // Use forward declarations to avoid dependency on other headers. - typedef struct DvrBuffer DvrBuffer; -@@ -32,7 +33,9 @@ void dvrSurfaceDestroy(DvrSurface* surface); - void dvrHwcClientDestroy(DvrHwcClient* client); - void dvrHwcFrameDestroy(DvrHwcFrame* frame); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - // Avoid errors if this header is included in C code. - #if defined(__cplusplus) -diff --git a/libs/vr/libdvr/include/dvr/dvr_display_manager.h b/libs/vr/libdvr/include/dvr/dvr_display_manager.h -index f910d61..29ba986 100644 ---- a/libs/vr/libdvr/include/dvr/dvr_display_manager.h -+++ b/libs/vr/libdvr/include/dvr/dvr_display_manager.h -@@ -4,12 +4,13 @@ - #include - #include - #include --#include - - #include - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - typedef struct DvrBuffer DvrBuffer; - typedef struct DvrDisplayManager DvrDisplayManager; -@@ -128,6 +129,8 @@ ssize_t dvrSurfaceStateGetAttributes(DvrSurfaceState* surface_state, - DvrSurfaceAttribute* attributes, - size_t max_count); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_DVR_DISPLAY_MANAGER_H_ -diff --git a/libs/vr/libdvr/include/dvr/dvr_display_types.h b/libs/vr/libdvr/include/dvr/dvr_display_types.h -index fd69843..6e98383 100644 ---- a/libs/vr/libdvr/include/dvr/dvr_display_types.h -+++ b/libs/vr/libdvr/include/dvr/dvr_display_types.h -@@ -1,9 +1,10 @@ - #ifndef ANDROID_DVR_DISPLAY_TYPES_H_ - #define ANDROID_DVR_DISPLAY_TYPES_H_ - --#include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - // Define types used in pose buffer fields. These types have atomicity - // guarantees that are useful in lock-free shared memory ring buffers. -@@ -60,6 +61,8 @@ enum { - DVR_SURFACE_ATTRIBUTE_FIRST_USER_KEY = 1, - }; - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_DVR_DISPLAY_TYPES_H_ -diff --git a/libs/vr/libdvr/include/dvr/dvr_performance.h b/libs/vr/libdvr/include/dvr/dvr_performance.h -index 5df35ad..540f005 100644 ---- a/libs/vr/libdvr/include/dvr/dvr_performance.h -+++ b/libs/vr/libdvr/include/dvr/dvr_performance.h -@@ -4,7 +4,9 @@ - #include - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /// Sets the scheduler policy for a task. - /// -@@ -20,7 +22,9 @@ __BEGIN_DECLS - /// @returns Returns 0 on success or a negative errno error code on error. - int dvrPerformanceSetSchedulerPolicy(pid_t task_id, const char* scheduler_policy); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_DVR_PERFORMANCE_H_ - -diff --git a/libs/vr/libdvr/include/dvr/dvr_pose.h b/libs/vr/libdvr/include/dvr/dvr_pose.h -index 8752751..5131170 100644 ---- a/libs/vr/libdvr/include/dvr/dvr_pose.h -+++ b/libs/vr/libdvr/include/dvr/dvr_pose.h -@@ -2,9 +2,10 @@ - #define ANDROID_DVR_PUBLIC_POSE_H_ - - #include --#include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - #ifdef __ARM_NEON - #include -@@ -149,6 +150,8 @@ int dvrPoseClientGetDataReader(DvrPoseClient* client, uint64_t data_type, - - // TODO(b/65067592): Move pose api's from pose_client.h to here. - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_DVR_PUBLIC_POSE_H_ -diff --git a/libs/vr/libdvr/include/dvr/dvr_surface.h b/libs/vr/libdvr/include/dvr/dvr_surface.h -index 74a68a1..0e615d2 100644 ---- a/libs/vr/libdvr/include/dvr/dvr_surface.h -+++ b/libs/vr/libdvr/include/dvr/dvr_surface.h -@@ -4,14 +4,15 @@ - #include - #include - #include --#include - - #include - #include - #include - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - // Attribute types. The values are one-hot encoded to support singluar types or - // masks of supported types. -@@ -108,6 +109,8 @@ int dvrGetGlobalBuffer(DvrGlobalBufferKey key, DvrBuffer** out_buffer); - int dvrGetNativeDisplayMetrics(size_t metrics_struct_size, - DvrNativeDisplayMetrics* metrics); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_DVR_SURFACE_H_ -diff --git a/libs/vr/libdvr/include/dvr/dvr_tracking.h b/libs/vr/libdvr/include/dvr/dvr_tracking.h -index 5e388f3..bb4be60 100644 ---- a/libs/vr/libdvr/include/dvr/dvr_tracking.h -+++ b/libs/vr/libdvr/include/dvr/dvr_tracking.h -@@ -2,11 +2,12 @@ - #define ANDROID_DVR_TRACKING_H_ - - #include --#include - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - typedef struct DvrReadBuffer DvrReadBuffer; - typedef struct DvrTrackingCamera DvrTrackingCamera; -@@ -180,6 +181,8 @@ int dvrTrackingFeatureExtractorProcessBuffer( - DvrTrackingFeatureExtractor* extractor, DvrReadBuffer* buffer, - const DvrTrackingBufferMetadata* metadata, bool* out_skipped); - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_DVR_TRACKING_H_ -diff --git a/libs/vr/libdvr/include/dvr/dvr_tracking_types.h b/libs/vr/libdvr/include/dvr/dvr_tracking_types.h -index 81310d2..8ee27bd 100644 ---- a/libs/vr/libdvr/include/dvr/dvr_tracking_types.h -+++ b/libs/vr/libdvr/include/dvr/dvr_tracking_types.h -@@ -2,9 +2,10 @@ - #define ANDROID_DVR_TRACKING_TYPES_H_ - - #include --#include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - typedef struct DvrTrackingBufferMetadata { - // Specifies the source of this image. -@@ -99,6 +100,8 @@ typedef struct DvrTrackingSensorEvent { - float z; - } DvrTrackingSensorEvent; - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_DVR_TRACKING_TYPES_H_ -diff --git a/libs/vr/libdvr/include/dvr/dvr_vsync.h b/libs/vr/libdvr/include/dvr/dvr_vsync.h -index 498bb5c..cd1a3f9 100644 ---- a/libs/vr/libdvr/include/dvr/dvr_vsync.h -+++ b/libs/vr/libdvr/include/dvr/dvr_vsync.h -@@ -2,9 +2,10 @@ - #define ANDROID_DVR_VSYNC_H_ - - #include --#include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - // Represents a vsync sample. The size of this struct is 32 bytes. - typedef struct __attribute__((packed, aligned(16))) DvrVsync { -@@ -27,6 +28,8 @@ typedef struct __attribute__((packed, aligned(16))) DvrVsync { - uint8_t padding[8]; - } DvrVsync; - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_DVR_VSYNC_H_ -diff --git a/vulkan/include/hardware/hwvulkan.h b/vulkan/include/hardware/hwvulkan.h -index 98bc8e3..0d5c4cf 100644 ---- a/vulkan/include/hardware/hwvulkan.h -+++ b/vulkan/include/hardware/hwvulkan.h -@@ -20,7 +20,9 @@ - #include - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - #define HWVULKAN_HARDWARE_MODULE_ID "vulkan" - -@@ -67,6 +69,8 @@ typedef struct hwvulkan_device_t { - PFN_vkGetInstanceProcAddr GetInstanceProcAddr; - } hwvulkan_device_t; - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif // ANDROID_HWVULKAN_H --- -2.44.0 - diff --git a/vendor/CMakeLists.adb.txt b/vendor/CMakeLists.adb.txt index 397ca66..4196bc0 100644 --- a/vendor/CMakeLists.adb.txt +++ b/vendor/CMakeLists.adb.txt @@ -62,8 +62,7 @@ target_include_directories(libadb PUBLIC core/libcrypto_utils/include core/libcutils/include libbase/include - libziparchive/include - native/include) + libziparchive/include) add_library(libadb_crypto_defaults STATIC adb/crypto/key.cpp diff --git a/vendor/CMakeLists.txt b/vendor/CMakeLists.txt index 78c0e2a..2348845 100644 --- a/vendor/CMakeLists.txt +++ b/vendor/CMakeLists.txt @@ -51,7 +51,6 @@ set(android-vendored libziparchive logging mkbootimg - native selinux f2fs-tools e2fsprogs diff --git a/vendor/native b/vendor/native deleted file mode 160000 index 99e12d3..0000000 --- a/vendor/native +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 99e12d339e4fd28198601d7aafd1d16cb587dd9e