Date: Mon, 13 Apr 2026 07:33:06 +0000 From: Baptiste Daroussin <bapt@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 9cfd6164a21f - main - devel/android-tools: update to 35.0.2 Message-ID: <69dc9c32.3c52e.3fc9b772@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by bapt: URL: https://cgit.FreeBSD.org/ports/commit/?id=9cfd6164a21f7ef5acf7638981171b5f64a8bb73 commit 9cfd6164a21f7ef5acf7638981171b5f64a8bb73 Author: Baptiste Daroussin <bapt@FreeBSD.org> AuthorDate: 2026-03-22 18:19:33 +0000 Commit: Baptiste Daroussin <bapt@FreeBSD.org> CommitDate: 2026-04-13 07:22:42 +0000 devel/android-tools: update to 35.0.2 Recreate the port from scratch, and base in on the cmakified https://github.com/nmeum/android-tools Why recreating from scratch: android-tools has changed a lot since latest version in the ports tree and it was easier for me to restart the porting. The main highlight is: create a libusb base backed for fastboot which now uses lowlevel usb primitive on other targets. Test by: flashing GrapheneOS (which requires this version as minimum requirement and exercise fastboot extensively) Working on LineageOS, Android and GrapheneOS over adb. Other tools has not been tested. Take maintainership Approved by: nc (maintainer timeout via email and phabricator) Differential Revision: https://reviews.freebsd.org/D56064 --- devel/android-tools/Makefile | 30 +-- devel/android-tools/distinfo | 6 +- devel/android-tools/files/patch-abseil | 26 --- .../files/patch-vendor_CMakeLists.adb.txt | 16 ++ .../files/patch-vendor_CMakeLists.f2fstools.txt | 46 ++++ .../files/patch-vendor_CMakeLists.fastboot.txt | 19 ++ .../files/patch-vendor_CMakeLists.txt | 18 ++ .../patch-vendor_adb_client_file__sync__client.cpp | 37 --- .../files/patch-vendor_adb_client_usb_freebsd.cpp | 66 ++++++ .../files/patch-vendor_adb_client_usb_libusb.cpp | 54 +++++ .../android-tools/files/patch-vendor_adb_sysdeps.h | 29 +++ ...endor_adb_tls_include_adb_tls_tls__connection.h | 10 - .../patch-vendor_boringssl_crypto_x509_t__x509.c | 45 ---- .../patch-vendor_core_fastboot_usb_freebsd.cpp | 257 +++++++++++++++++++++ ...ndor_core_libcutils_include_private_fs_config.h | 23 ++ .../patch-vendor_e2fsprogs_contrib_android_perms.c | 25 ++ .../files/patch-vendor_e2fsprogs_lib_config.h | 29 +++ .../files/patch-vendor_f2fs-tools_fsck_xattr.c | 13 ++ .../files/patch-vendor_f2fs-tools_lib_libf2fs.c | 26 +++ .../files/patch-vendor_libbase_file.cpp | 25 ++ ...ch-vendor_libbase_include_android-base_endian.h | 16 ++ ...h-vendor_libbase_include_android-base_off64_t.h | 12 + .../files/patch-vendor_libbase_logging.cpp | 22 ++ .../files/patch-vendor_libbase_threads.cpp | 20 ++ .../patch-vendor_logging_liblog_logger_write.cpp | 13 ++ ...atch-vendor_selinux_libselinux_src_label_file.h | 19 ++ devel/android-tools/pkg-descr | 5 +- devel/android-tools/pkg-plist | 13 +- 28 files changed, 776 insertions(+), 144 deletions(-) diff --git a/devel/android-tools/Makefile b/devel/android-tools/Makefile index c676cd38125c..b45df797be4b 100644 --- a/devel/android-tools/Makefile +++ b/devel/android-tools/Makefile @@ -1,40 +1,30 @@ PORTNAME= android-tools -PORTVERSION= 31.0.3p2.0 -PORTREVISION= 46 +PORTVERSION= 35.0.2 CATEGORIES= devel -MASTER_SITES= GH +MASTER_SITES= https://github.com/nmeum/android-tools/releases/download/${PORTVERSION}/ -MAINTAINER= nc@FreeBSD.org +MAINTAINER= bapt@FreeBSD.org COMMENT= Android debugging tools -WWW= https://github.com/neelchauhan/freebsd-android-tools +WWW= https://github.com/nmeum/android-tools LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE -BROKEN_aarch64= ld: error: undefined symbol: OPENSSL_cpuid_setup - LIB_DEPENDS= libbrotlicommon.so:archivers/brotli \ - libgmock.so:devel/googletest \ + libfmt.so:devel/libfmt \ liblz4.so:archivers/liblz4 \ libpcre2-8.so:devel/pcre2 \ libprotobuf.so:devel/protobuf \ libzstd.so:archivers/zstd -USES= cmake compiler:c++17-lang go:no_targets localbase:ldflags perl5 python shebangfix - -USE_GITHUB= yes -GH_ACCOUNT= neelchauhan -GH_PROJECT= freebsd-${PORTNAME} -GH_TAGNAME= 271d7a26c8daf4b9fe412d360a2edfaca327efdd +USES= cmake compiler:c++20-lang localbase:ldflags python shebangfix tar:xz -SHEBANG_FILES= vendor/mkbootimg/repack_bootimg.py \ +SHEBANG_FILES= vendor/avb/avbtool.py \ + vendor/libufdt/utils/src/mkdtboimg.py \ vendor/mkbootimg/mkbootimg.py \ + vendor/mkbootimg/repack_bootimg.py \ vendor/mkbootimg/unpack_bootimg.py -MAKE_ENV+= GOFLAGS=-mod=vendor \ - GOPATH=${WRKSRC}/vendor/boringssl/vendor \ - GOPROXY=off - -LDFLAGS+= -labsl_status +CMAKE_ARGS= -DANDROID_TOOLS_PATCH_VENDOR:BOOL=OFF .include <bsd.port.mk> diff --git a/devel/android-tools/distinfo b/devel/android-tools/distinfo index b7d1ef2c124f..950654b67ca5 100644 --- a/devel/android-tools/distinfo +++ b/devel/android-tools/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1659823195 -SHA256 (neelchauhan-freebsd-android-tools-31.0.3p2.0-271d7a26c8daf4b9fe412d360a2edfaca327efdd_GH0.tar.gz) = 12003a3d9b1d476994a8484c489cfb227b2a34391c856389af50249b96618ec8 -SIZE (neelchauhan-freebsd-android-tools-31.0.3p2.0-271d7a26c8daf4b9fe412d360a2edfaca327efdd_GH0.tar.gz) = 40959086 +TIMESTAMP = 1724935617 +SHA256 (android-tools-35.0.2.tar.xz) = d2c3222280315f36d8bfa5c02d7632b47e365bfe2e77e99a3564fb6576f04097 +SIZE (android-tools-35.0.2.tar.xz) = 18847376 diff --git a/devel/android-tools/files/patch-abseil b/devel/android-tools/files/patch-abseil deleted file mode 100644 index be949a6aa119..000000000000 --- a/devel/android-tools/files/patch-abseil +++ /dev/null @@ -1,26 +0,0 @@ ---- vendor/extras/libjsonpb/parse/jsonpb.cpp.orig 2022-06-10 23:11:16 UTC -+++ vendor/extras/libjsonpb/parse/jsonpb.cpp -@@ -49,9 +49,9 @@ ErrorOr<std::string> MessageToJsonString(const Message - - if (!status.ok()) { - #if GOOGLE_PROTOBUF_VERSION < 3016000 -- return MakeError<std::string>(status.error_message().as_string()); -+ return MakeError<std::string>(std::string(status.error_message())); - #else -- return MakeError<std::string>(status.message().as_string()); -+ return MakeError<std::string>(std::string(status.message())); - #endif - } - return ErrorOr<std::string>(std::move(json)); -@@ -66,9 +66,9 @@ ErrorOr<std::monostate> JsonStringToMessage(const std: - auto status = JsonToBinaryString(resolver.get(), GetTypeUrl(*message), content, &binary); - if (!status.ok()) { - #if GOOGLE_PROTOBUF_VERSION < 3016000 -- return MakeError<std::monostate>(status.error_message().as_string()); -+ return MakeError<std::monostate>(std::string(status.error_message())); - #else -- return MakeError<std::monostate>(status.message().as_string()); -+ return MakeError<std::monostate>(std::string(status.message())); - #endif - } - if (!message->ParseFromString(binary)) { diff --git a/devel/android-tools/files/patch-vendor_CMakeLists.adb.txt b/devel/android-tools/files/patch-vendor_CMakeLists.adb.txt new file mode 100644 index 000000000000..4a3e402d73ad --- /dev/null +++ b/devel/android-tools/files/patch-vendor_CMakeLists.adb.txt @@ -0,0 +1,16 @@ +--- vendor/CMakeLists.adb.txt 2024-08-29 19:46:57.000000000 +0200 ++++ vendor/CMakeLists.adb.txt 2026-03-21 19:24:21.380567000 +0100 +@@ -43,9 +43,12 @@ + if(APPLE) + list(APPEND libadb_SOURCES + adb/client/usb_osx.cpp) +-else() ++elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") + list(APPEND libadb_SOURCES + adb/client/usb_linux.cpp) ++elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") ++ list(APPEND libadb_SOURCES ++ adb/client/usb_freebsd.cpp) + endif() + + add_library(libadb STATIC ${libadb_SOURCES}) diff --git a/devel/android-tools/files/patch-vendor_CMakeLists.f2fstools.txt b/devel/android-tools/files/patch-vendor_CMakeLists.f2fstools.txt new file mode 100644 index 000000000000..a003a2fa63c9 --- /dev/null +++ b/devel/android-tools/files/patch-vendor_CMakeLists.f2fstools.txt @@ -0,0 +1,46 @@ +--- vendor/CMakeLists.f2fstools.txt 2024-08-29 19:46:57.000000000 +0200 ++++ vendor/CMakeLists.f2fstools.txt 2026-03-21 18:29:02.406397000 +0100 +@@ -17,8 +17,20 @@ + + target_compile_definitions(libf2fs PUBLIC + ${f2fs_tools_defaults} +- -DWITH_BLKDISCARD) ++ -DWITH_BLKDISCARD ++ -DHAVE_SYS_IOCTL_H) + ++if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") ++ target_compile_definitions(libf2fs PUBLIC -DHAVE_LIMITS_H) ++else() ++ target_compile_definitions(libf2fs PUBLIC ++ -DHAVE_LINUX_LOOP_H ++ -DHAVE_LINUX_MAJOR_H ++ -DHAVE_SYS_SYSMACROS_H ++ -DHAVE_LINUX_HDREG_H ++ -DHAVE_LINUX_LIMITS_H) ++endif() ++ + target_include_directories(libf2fs PUBLIC + core/libsparse/include + f2fs-tools/include) +@@ -59,8 +71,20 @@ + + target_compile_definitions(sload_f2fs PRIVATE + ${f2fs_tools_defaults} +- -DWITH_SLOAD) ++ -DWITH_SLOAD ++ -DHAVE_SYS_IOCTL_H) + ++if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") ++ target_compile_definitions(sload_f2fs PRIVATE -DHAVE_LIMITS_H) ++else() ++ target_compile_definitions(sload_f2fs PRIVATE ++ -DHAVE_LINUX_LOOP_H ++ -DHAVE_LINUX_MAJOR_H ++ -DHAVE_SYS_SYSMACROS_H ++ -DHAVE_LINUX_HDREG_H ++ -DHAVE_LINUX_LIMITS_H) ++endif() ++ + target_include_directories(sload_f2fs PRIVATE + f2fs-tools/include + selinux/libselinux/include diff --git a/devel/android-tools/files/patch-vendor_CMakeLists.fastboot.txt b/devel/android-tools/files/patch-vendor_CMakeLists.fastboot.txt new file mode 100644 index 000000000000..3981e29e64ad --- /dev/null +++ b/devel/android-tools/files/patch-vendor_CMakeLists.fastboot.txt @@ -0,0 +1,19 @@ +--- vendor/CMakeLists.fastboot.txt 2024-08-29 19:46:57.000000000 +0200 ++++ vendor/CMakeLists.fastboot.txt 2026-03-21 19:24:26.243327000 +0100 +@@ -119,6 +119,9 @@ + if(APPLE) + list(APPEND fastboot_SOURCES + core/fastboot/usb_osx.cpp) ++elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") ++ list(APPEND fastboot_SOURCES ++ core/fastboot/usb_freebsd.cpp) + else() + list(APPEND fastboot_SOURCES + core/fastboot/usb_linux.cpp) +@@ -142,4 +145,6 @@ + target_link_libraries(fastboot + "-framework CoreFoundation" + "-framework IOKit") ++elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") ++ target_link_libraries(fastboot PkgConfig::libusb-1.0) + endif() diff --git a/devel/android-tools/files/patch-vendor_CMakeLists.txt b/devel/android-tools/files/patch-vendor_CMakeLists.txt new file mode 100644 index 000000000000..b1c5d6898cee --- /dev/null +++ b/devel/android-tools/files/patch-vendor_CMakeLists.txt @@ -0,0 +1,18 @@ +--- vendor/CMakeLists.txt 2024-08-29 19:46:57.000000000 +0200 ++++ vendor/CMakeLists.txt 2026-03-21 14:09:16.768573000 +0100 +@@ -41,6 +41,15 @@ + # 32-bit glibc platforms this is not the case by default. + add_compile_definitions(_FILE_OFFSET_BITS=64 _LARGEFILE64_SOURCE) + ++# On FreeBSD, _XOPEN_SOURCE (used by some sub-targets) hides BSD extensions ++# like getprogname(). Ensure BSD visibility is preserved. ++# Also provide compat macros for 64-bit functions that don't exist on FreeBSD ++# (off_t is always 64-bit on FreeBSD). ++if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") ++ add_compile_definitions(__BSD_VISIBLE=1) ++ add_compile_definitions(lseek64=lseek ftruncate64=ftruncate mmap64=mmap pread64=pread pwrite64=pwrite off64_t=off_t) ++endif() ++ + set(android-vendored + avb + adb diff --git a/devel/android-tools/files/patch-vendor_adb_client_file__sync__client.cpp b/devel/android-tools/files/patch-vendor_adb_client_file__sync__client.cpp deleted file mode 100644 index 4883dd619897..000000000000 --- a/devel/android-tools/files/patch-vendor_adb_client_file__sync__client.cpp +++ /dev/null @@ -1,37 +0,0 @@ ---- vendor/adb/client/file_sync_client.cpp.orig 2022-06-09 20:52:06 UTC -+++ vendor/adb/client/file_sync_client.cpp -@@ -394,9 +394,16 @@ class SyncConnection { - - void* p = buf.data(); - -+#ifdef __FreeBSD__ -+ // TODO: Delete when 12.x goes EOL -+ p = (char *)memcpy(p, &req, sizeof(SyncRequest)) + sizeof(SyncRequest); -+ p = (char *)memcpy(p, path.data(), path.length()) + path.length(); -+ p = (char *)memcpy(p, &msg.send_v2_setup, sizeof(msg.send_v2_setup)) + sizeof(msg.send_v2_setup); -+#else - p = mempcpy(p, &req, sizeof(SyncRequest)); - p = mempcpy(p, path.data(), path.length()); - p = mempcpy(p, &msg.send_v2_setup, sizeof(msg.send_v2_setup)); -+#endif - - return WriteFdExactly(fd, buf.data(), buf.size()); - } -@@ -441,9 +448,16 @@ class SyncConnection { - - void* p = buf.data(); - -+#ifdef __FreeBSD__ -+ // TODO: Delete when 12.x goes EOL -+ p = (char *)memcpy(p, &req, sizeof(SyncRequest)) + sizeof(SyncRequest); -+ p = (char *)memcpy(p, path.data(), path.length()) + path.length(); -+ p = (char *)memcpy(p, &msg.send_v2_setup, sizeof(msg.send_v2_setup)) + sizeof(msg.send_v2_setup); -+#else - p = mempcpy(p, &req, sizeof(SyncRequest)); - p = mempcpy(p, path.data(), path.length()); -- p = mempcpy(p, &msg.recv_v2_setup, sizeof(msg.recv_v2_setup)); -+ p = mempcpy(p, &msg.send_v2_setup, sizeof(msg.send_v2_setup)); -+#endif - - return WriteFdExactly(fd, buf.data(), buf.size()); - } diff --git a/devel/android-tools/files/patch-vendor_adb_client_usb_freebsd.cpp b/devel/android-tools/files/patch-vendor_adb_client_usb_freebsd.cpp new file mode 100644 index 000000000000..70b7adcea38b --- /dev/null +++ b/devel/android-tools/files/patch-vendor_adb_client_usb_freebsd.cpp @@ -0,0 +1,66 @@ +--- vendor/adb/client/usb_freebsd.cpp 1970-01-01 01:00:00.000000000 +0100 ++++ vendor/adb/client/usb_freebsd.cpp 2026-03-21 19:23:46.144092000 +0100 +@@ -0,0 +1,63 @@ ++/* ++ * Copyright (C) 2026 Baptiste Daroussin <bapt@FreeBSD.org> ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * * Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * * Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in ++ * the documentation and/or other materials provided with the ++ * distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ++ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, ++ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS ++ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED ++ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ */ ++ ++/* ++ * On FreeBSD, the libusb backend (usb_libusb.cpp) is always used for USB ++ * device communication via LibusbConnection. These stub implementations of ++ * the native USB interface satisfy the linker for UsbConnection, which is ++ * only used on Linux and macOS. ++ */ ++ ++#include "client/usb.h" ++ ++void usb_init() { ++} ++ ++void usb_cleanup() { ++} ++ ++int usb_write(usb_handle*, const void*, int) { ++ return -1; ++} ++ ++int usb_read(usb_handle*, void*, int) { ++ return -1; ++} ++ ++int usb_close(usb_handle*) { ++ return -1; ++} ++ ++void usb_reset(usb_handle*) { ++} ++ ++void usb_kick(usb_handle*) { ++} ++ ++size_t usb_get_max_packet_size(usb_handle*) { ++ return 0; ++} diff --git a/devel/android-tools/files/patch-vendor_adb_client_usb_libusb.cpp b/devel/android-tools/files/patch-vendor_adb_client_usb_libusb.cpp new file mode 100644 index 000000000000..948f55ad3ae1 --- /dev/null +++ b/devel/android-tools/files/patch-vendor_adb_client_usb_libusb.cpp @@ -0,0 +1,54 @@ +--- vendor/adb/client/usb_libusb.cpp 2024-08-29 19:46:57.000000000 +0200 ++++ vendor/adb/client/usb_libusb.cpp 2026-03-21 14:00:02.239458000 +0100 +@@ -38,6 +38,8 @@ + + #ifdef ANDROID_TOOLS_USE_BUNDLED_LIBUSB + #include <libusb/libusb.h> ++#elif defined(__FreeBSD__) ++#include <libusb.h> + #else + #include <libusb-1.0/libusb.h> + #endif +@@ -507,8 +509,10 @@ + return 5000; + case LIBUSB_SPEED_SUPER_PLUS: + return 10000; ++#ifdef LIBUSB_SPEED_SUPER_PLUS_X2 + case LIBUSB_SPEED_SUPER_PLUS_X2: + return 20000; ++#endif + case LIBUSB_SPEED_UNKNOWN: + default: + return 0; +@@ -540,6 +544,7 @@ + } + } + ++#ifdef LIBUSB_BT_SUPERSPEED_PLUS_CAPABILITY + static uint64_t ExtractMaxSuperSpeedPlus(libusb_ssplus_usb_device_capability_descriptor* cap) { + // The exponents is one of {bytes, kB, MB, or GB}. We express speed in MB so we use a 0 + // multiplier for value which would result in 0MB anyway. +@@ -552,6 +557,7 @@ + } + return max_speed; + } ++#endif + + void RetrieveSpeeds() { + negotiated_speed_ = ToConnectionSpeed(libusb_get_device_speed(device_.get())); +@@ -574,6 +580,7 @@ + libusb_free_ss_usb_device_capability_descriptor(cap); + } + } break; ++#ifdef LIBUSB_BT_SUPERSPEED_PLUS_CAPABILITY + case LIBUSB_BT_SUPERSPEED_PLUS_CAPABILITY: { + libusb_ssplus_usb_device_capability_descriptor* cap = nullptr; + if (!libusb_get_ssplus_usb_device_capability_descriptor( +@@ -582,6 +589,7 @@ + libusb_free_ssplus_usb_device_capability_descriptor(cap); + } + } break; ++#endif + default: + break; + } diff --git a/devel/android-tools/files/patch-vendor_adb_sysdeps.h b/devel/android-tools/files/patch-vendor_adb_sysdeps.h new file mode 100644 index 000000000000..2b73787a78be --- /dev/null +++ b/devel/android-tools/files/patch-vendor_adb_sysdeps.h @@ -0,0 +1,29 @@ +--- vendor/adb/sysdeps.h 2024-08-29 19:46:57.000000000 +0200 ++++ vendor/adb/sysdeps.h 2026-03-21 13:49:16.038468000 +0100 +@@ -526,7 +526,7 @@ + } + + static inline int adb_pread(borrowed_fd fd, void* buf, size_t len, off64_t offset) { +-#if defined(__APPLE__) ++#if defined(__APPLE__) || defined(__FreeBSD__) + return TEMP_FAILURE_RETRY(pread(fd.get(), buf, len, offset)); + #else + return TEMP_FAILURE_RETRY(pread64(fd.get(), buf, len, offset)); +@@ -548,7 +548,7 @@ + } + + static inline int adb_pwrite(int fd, const void* buf, size_t len, off64_t offset) { +-#if defined(__APPLE__) ++#if defined(__APPLE__) || defined(__FreeBSD__) + return TEMP_FAILURE_RETRY(pwrite(fd, buf, len, offset)); + #else + return TEMP_FAILURE_RETRY(pwrite64(fd, buf, len, offset)); +@@ -563,7 +563,7 @@ + #define pwrite ___xxx_pwrite + + static inline int64_t adb_lseek(borrowed_fd fd, int64_t pos, int where) { +-#if defined(__APPLE__) ++#if defined(__APPLE__) || defined(__FreeBSD__) + return lseek(fd.get(), pos, where); + #else + return lseek64(fd.get(), pos, where); diff --git a/devel/android-tools/files/patch-vendor_adb_tls_include_adb_tls_tls__connection.h b/devel/android-tools/files/patch-vendor_adb_tls_include_adb_tls_tls__connection.h deleted file mode 100644 index afc4ed589316..000000000000 --- a/devel/android-tools/files/patch-vendor_adb_tls_include_adb_tls_tls__connection.h +++ /dev/null @@ -1,10 +0,0 @@ ---- vendor/adb/tls/include/adb/tls/tls_connection.h.orig 2024-02-11 15:40:31 UTC -+++ vendor/adb/tls/include/adb/tls/tls_connection.h -@@ -21,6 +21,7 @@ - - #include <string_view> - #include <vector> -+#include <functional> - - #include <android-base/unique_fd.h> - #include <openssl/ssl.h> diff --git a/devel/android-tools/files/patch-vendor_boringssl_crypto_x509_t__x509.c b/devel/android-tools/files/patch-vendor_boringssl_crypto_x509_t__x509.c deleted file mode 100644 index d860df822689..000000000000 --- a/devel/android-tools/files/patch-vendor_boringssl_crypto_x509_t__x509.c +++ /dev/null @@ -1,45 +0,0 @@ -https://github.com/google/boringssl/commit/af34f6460f0bf99dc267818f02b2936f60a30de7 - -From af34f6460f0bf99dc267818f02b2936f60a30de7 Mon Sep 17 00:00:00 2001 -From: Kent Ross <root.main@gmail.com> -Date: Wed, 30 Mar 2022 14:11:02 -0700 -Subject: [PATCH] Remove unused variable - -This is causing -Werror failures with recent Clang builds. - -Change-Id: I0f82d99ae51d02037f5f614a8fadfb3efc0da2da -Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/52145 -Reviewed-by: Adam Langley <agl@google.com> -Commit-Queue: Adam Langley <agl@google.com> ---- - crypto/x509/t_x509.c | 6 +----- - 1 file changed, 1 insertion(+), 5 deletions(-) - -diff --git a/crypto/x509/t_x509.c b/crypto/x509/t_x509.c -index 4f9d40979a..5e633a9d87 100644 ---- vendor/boringssl/crypto/x509/t_x509.c -+++ vendor/boringssl/crypto/x509/t_x509.c -@@ -322,9 +322,7 @@ int X509_signature_print(BIO *bp, const X509_ALGOR *sigalg, - int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase) - { - char *s, *c, *b; -- int ret = 0, l, i; -- -- l = 80 - 2 - obase; -+ int ret = 0, i; - - b = X509_NAME_oneline(name, NULL, 0); - if (!b) -@@ -351,12 +349,10 @@ int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase) - if (BIO_write(bp, ", ", 2) != 2) - goto err; - } -- l--; - } - if (*s == '\0') - break; - s++; -- l--; - } - - ret = 1; diff --git a/devel/android-tools/files/patch-vendor_core_fastboot_usb_freebsd.cpp b/devel/android-tools/files/patch-vendor_core_fastboot_usb_freebsd.cpp new file mode 100644 index 000000000000..a9e7c0f12d70 --- /dev/null +++ b/devel/android-tools/files/patch-vendor_core_fastboot_usb_freebsd.cpp @@ -0,0 +1,257 @@ +--- vendor/core/fastboot/usb_freebsd.cpp 1970-01-01 01:00:00.000000000 +0100 ++++ vendor/core/fastboot/usb_freebsd.cpp 2026-03-21 19:36:02.025480000 +0100 +@@ -0,0 +1,254 @@ ++/* ++ * Copyright (C) 2026 Baptiste Daroussin <bapt@FreeBSD.org> ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * * Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * * Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in ++ * the documentation and/or other materials provided with the ++ * distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ++ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, ++ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS ++ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED ++ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ */ ++ ++#include <cstring> ++#include <memory> ++#include <thread> ++#include <chrono> ++ ++#include <libusb.h> ++ ++#include "usb.h" ++ ++using namespace std::chrono_literals; ++ ++#define MAX_RETRIES 2 ++#define MAX_BULK_TRANSFER_SIZE (16 * 1024) ++ ++static libusb_context *usb_context = nullptr; ++ ++struct usb_handle { ++ libusb_device_handle *devh; ++ uint8_t ep_in; ++ uint8_t ep_out; ++ uint8_t iface; ++}; ++ ++class FreeBSDUsbTransport : public UsbTransport { ++ public: ++ FreeBSDUsbTransport(std::unique_ptr<usb_handle> handle, uint32_t ms_timeout = 0) ++ : handle_(std::move(handle)), ms_timeout_(ms_timeout) {} ++ ~FreeBSDUsbTransport() override; ++ ++ ssize_t Read(void* data, size_t len) override; ++ ssize_t Write(const void* data, size_t len) override; ++ int Close() override; ++ int Reset() override; ++ ++ private: ++ std::unique_ptr<usb_handle> handle_; ++ const uint32_t ms_timeout_; ++}; ++ ++FreeBSDUsbTransport::~FreeBSDUsbTransport() { ++ Close(); ++} ++ ++ssize_t FreeBSDUsbTransport::Read(void* data, size_t len) { ++ unsigned char *buf = static_cast<unsigned char*>(data); ++ ssize_t total = 0; ++ ++ if (!handle_ || !handle_->devh || handle_->ep_in == 0) { ++ return -1; ++ } ++ ++ while (len > 0) { ++ int xfer = (len > MAX_BULK_TRANSFER_SIZE) ? MAX_BULK_TRANSFER_SIZE : len; ++ int transferred = 0; ++ int retry = 0; ++ int rc; ++ ++ do { ++ rc = libusb_bulk_transfer(handle_->devh, handle_->ep_in, ++ buf, xfer, &transferred, ++ ms_timeout_ ? ms_timeout_ : 0); ++ if (rc == LIBUSB_ERROR_TIMEOUT) { ++ if (++retry > MAX_RETRIES) return -1; ++ std::this_thread::sleep_for(100ms); ++ } else if (rc != 0) { ++ return -1; ++ } ++ } while (rc != 0); ++ ++ total += transferred; ++ len -= transferred; ++ buf += transferred; ++ ++ if (transferred < xfer) break; ++ } ++ ++ return total; ++} ++ ++ssize_t FreeBSDUsbTransport::Write(const void* data, size_t len) { ++ const unsigned char *buf = static_cast<const unsigned char*>(data); ++ ssize_t total = 0; ++ ++ if (!handle_ || !handle_->devh || handle_->ep_out == 0) { ++ return -1; ++ } ++ ++ while (len > 0) { ++ int xfer = (len > MAX_BULK_TRANSFER_SIZE) ? MAX_BULK_TRANSFER_SIZE : len; ++ int transferred = 0; ++ ++ int rc = libusb_bulk_transfer(handle_->devh, handle_->ep_out, ++ const_cast<unsigned char*>(buf), ++ xfer, &transferred, ++ ms_timeout_ ? ms_timeout_ : 0); ++ if (rc != 0) return -1; ++ ++ total += transferred; ++ len -= transferred; ++ buf += transferred; ++ } ++ ++ return total; ++} ++ ++int FreeBSDUsbTransport::Close() { ++ if (handle_ && handle_->devh) { ++ libusb_release_interface(handle_->devh, handle_->iface); ++ libusb_close(handle_->devh); ++ handle_->devh = nullptr; ++ } ++ return 0; ++} ++ ++int FreeBSDUsbTransport::Reset() { ++ if (!handle_ || !handle_->devh) return -1; ++ return libusb_reset_device(handle_->devh); ++} ++ ++static std::unique_ptr<usb_handle> find_usb_device(ifc_match_func callback) { ++ libusb_device **devs; ++ ssize_t cnt = libusb_get_device_list(usb_context, &devs); ++ if (cnt < 0) return nullptr; ++ ++ std::unique_ptr<usb_handle> result; ++ ++ for (ssize_t i = 0; i < cnt && !result; i++) { ++ libusb_device *dev = devs[i]; ++ struct libusb_device_descriptor desc; ++ ++ if (libusb_get_device_descriptor(dev, &desc) != 0) continue; ++ ++ struct libusb_config_descriptor *config; ++ if (libusb_get_active_config_descriptor(dev, &config) != 0) { ++ if (libusb_get_config_descriptor(dev, 0, &config) != 0) continue; ++ } ++ ++ for (int j = 0; j < config->bNumInterfaces && !result; j++) { ++ const struct libusb_interface *iface = &config->interface[j]; ++ for (int k = 0; k < iface->num_altsetting && !result; k++) { ++ const struct libusb_interface_descriptor *altsetting = &iface->altsetting[k]; ++ ++ usb_ifc_info info = {}; ++ info.dev_vendor = desc.idVendor; ++ info.dev_product = desc.idProduct; ++ info.dev_class = desc.bDeviceClass; ++ info.dev_subclass = desc.bDeviceSubClass; ++ info.dev_protocol = desc.bDeviceProtocol; ++ info.ifc_class = altsetting->bInterfaceClass; ++ info.ifc_subclass = altsetting->bInterfaceSubClass; ++ info.ifc_protocol = altsetting->bInterfaceProtocol; ++ info.writable = 1; ++ ++ uint8_t ep_in = 0, ep_out = 0; ++ for (int e = 0; e < altsetting->bNumEndpoints; e++) { ++ const struct libusb_endpoint_descriptor *ep = &altsetting->endpoint[e]; ++ if ((ep->bmAttributes & LIBUSB_TRANSFER_TYPE_MASK) != LIBUSB_TRANSFER_TYPE_BULK) ++ continue; ++ if (ep->bEndpointAddress & LIBUSB_ENDPOINT_IN) { ++ ep_in = ep->bEndpointAddress; ++ } else { ++ ep_out = ep->bEndpointAddress; ++ } ++ } ++ ++ info.has_bulk_in = (ep_in != 0); ++ info.has_bulk_out = (ep_out != 0); ++ ++ snprintf(info.device_path, sizeof(info.device_path), ++ "usb:%d:%d", libusb_get_bus_number(dev), ++ libusb_get_device_address(dev)); ++ ++ /* ++ * Open device once, read serial, then decide whether to ++ * keep it based on callback result. ++ */ ++ libusb_device_handle *devh; ++ int rc = libusb_open(dev, &devh); ++ if (rc != 0) continue; ++ ++ /* Detach kernel driver (ugen) before any operations */ ++ libusb_set_auto_detach_kernel_driver(devh, 1); ++ ++ info.serial_number[0] = '\0'; ++ if (desc.iSerialNumber) { ++ libusb_get_string_descriptor_ascii( ++ devh, desc.iSerialNumber, ++ (unsigned char *)info.serial_number, ++ sizeof(info.serial_number)); ++ } ++ ++ info.interface[0] = '\0'; ++ ++ if (callback(&info) == 0) { ++ rc = libusb_claim_interface(devh, altsetting->bInterfaceNumber); ++ if (rc != 0) { ++ libusb_close(devh); ++ continue; ++ } ++ ++ result = std::make_unique<usb_handle>(); ++ result->devh = devh; ++ result->ep_in = ep_in; ++ result->ep_out = ep_out; ++ result->iface = altsetting->bInterfaceNumber; ++ } else { ++ libusb_close(devh); ++ } ++ } ++ } ++ libusb_free_config_descriptor(config); ++ } ++ ++ libusb_free_device_list(devs, 1); ++ return result; ++} ++ ++std::unique_ptr<UsbTransport> usb_open(ifc_match_func callback, uint32_t timeout_ms) { ++ if (!usb_context) { ++ if (libusb_init(&usb_context) != 0) return nullptr; ++ } ++ ++ auto handle = find_usb_device(callback); ++ if (!handle) return nullptr; ++ ++ return std::make_unique<FreeBSDUsbTransport>(std::move(handle), timeout_ms); ++} diff --git a/devel/android-tools/files/patch-vendor_core_libcutils_include_private_fs_config.h b/devel/android-tools/files/patch-vendor_core_libcutils_include_private_fs_config.h new file mode 100644 index 000000000000..96837297946c --- /dev/null +++ b/devel/android-tools/files/patch-vendor_core_libcutils_include_private_fs_config.h @@ -0,0 +1,23 @@ +--- vendor/core/libcutils/include/private/fs_config.h 2024-08-29 19:46:57.000000000 +0200 ++++ vendor/core/libcutils/include/private/fs_config.h 2026-03-21 13:54:46.886972000 +0100 +@@ -26,7 +26,20 @@ + #include <stdint.h> + #include <unistd.h> + ++#ifdef __linux__ + #include <linux/capability.h> ++#else ++/* Provide Linux capability constants for non-Linux platforms. */ ++#ifndef CAP_SETGID ++#define CAP_SETGID 6 ++#endif ++#ifndef CAP_SETUID ++#define CAP_SETUID 7 ++#endif ++#ifndef CAP_BLOCK_SUSPEND ++#define CAP_BLOCK_SUSPEND 36 ++#endif ++#endif + + /* Rules for directories and files has moved to system/code/libcutils/fs_config.c */ + diff --git a/devel/android-tools/files/patch-vendor_e2fsprogs_contrib_android_perms.c b/devel/android-tools/files/patch-vendor_e2fsprogs_contrib_android_perms.c new file mode 100644 index 000000000000..64014af8eed5 --- /dev/null +++ b/devel/android-tools/files/patch-vendor_e2fsprogs_contrib_android_perms.c @@ -0,0 +1,25 @@ +--- vendor/e2fsprogs/contrib/android/perms.c 2024-08-29 19:46:57.000000000 +0200 ++++ vendor/e2fsprogs/contrib/android/perms.c 2026-03-21 14:11:37.709049000 +0100 +@@ -6,6 +6,22 @@ + #include "support/nls-enable.h" + #include <time.h> + #include <sys/stat.h> ++ ++#ifdef __FreeBSD__ ++#ifndef VFS_CAP_REVISION_2 ++#define VFS_CAP_REVISION_2 0x02000002 ++#endif ++#ifndef VFS_CAP_FLAGS_EFFECTIVE ++#define VFS_CAP_FLAGS_EFFECTIVE 0x000001 ++#endif ++struct vfs_cap_data { ++ __le32 magic_etc; ++ struct { ++ __le32 permitted; ++ __le32 inheritable; ++ } data[2]; ++}; ++#endif + + #ifndef XATTR_SELINUX_SUFFIX + # define XATTR_SELINUX_SUFFIX "selinux" diff --git a/devel/android-tools/files/patch-vendor_e2fsprogs_lib_config.h b/devel/android-tools/files/patch-vendor_e2fsprogs_lib_config.h new file mode 100644 index 000000000000..371734116048 --- /dev/null +++ b/devel/android-tools/files/patch-vendor_e2fsprogs_lib_config.h @@ -0,0 +1,29 @@ +--- vendor/e2fsprogs/lib/config.h 2024-08-29 19:46:57.000000000 +0200 ++++ vendor/e2fsprogs/lib/config.h 2026-03-21 14:07:51.522475000 +0100 +@@ -28,7 +28,7 @@ + #define HAVE_UTIME_H 1 + + #define HAVE_SYS_STAT_H 1 +-#if !defined(__APPLE__) ++#if !defined(__APPLE__) && !defined(__FreeBSD__) + # define HAVE_SYS_SYSMACROS_H 1 + #endif + #define HAVE_SYS_TIME_H 1 +@@ -37,7 +37,7 @@ + #if defined(_WIN32) + # define HAVE_LINUX_TYPES_H 1 + #endif +-#if defined(__APPLE__) || defined(__linux__) ++#if defined(__APPLE__) || defined(__linux__) || defined(__FreeBSD__) + # define HAVE_FCNTL 1 + # define HAVE_FSYNC 1 + # define HAVE_GETPAGESIZE 1 +@@ -54,7 +54,7 @@ + # define HAVE_SYS_SELECT_H 1 + # define HAVE_SYS_WAIT_H 1 + #endif +-#ifdef __APPLE__ ++#if defined(__APPLE__) || defined(__FreeBSD__) + # define HAVE_GETMNTINFO 1 + #endif + #if defined(__linux__) diff --git a/devel/android-tools/files/patch-vendor_f2fs-tools_fsck_xattr.c b/devel/android-tools/files/patch-vendor_f2fs-tools_fsck_xattr.c new file mode 100644 index 000000000000..44c1dd4f0ccf --- /dev/null +++ b/devel/android-tools/files/patch-vendor_f2fs-tools_fsck_xattr.c @@ -0,0 +1,13 @@ +--- vendor/f2fs-tools/fsck/xattr.c 2024-08-29 19:46:57.000000000 +0200 ++++ vendor/f2fs-tools/fsck/xattr.c 2026-03-21 14:11:45.643441000 +0100 +@@ -16,6 +16,10 @@ + #include "fsck.h" + #include "node.h" + #include "xattr.h" ++ ++#ifndef ENODATA ++#define ENODATA ENOATTR ++#endif + + void *read_all_xattrs(struct f2fs_sb_info *sbi, struct f2fs_node *inode, + bool sanity_check) diff --git a/devel/android-tools/files/patch-vendor_f2fs-tools_lib_libf2fs.c b/devel/android-tools/files/patch-vendor_f2fs-tools_lib_libf2fs.c new file mode 100644 index 000000000000..c9a953459fc9 --- /dev/null +++ b/devel/android-tools/files/patch-vendor_f2fs-tools_lib_libf2fs.c @@ -0,0 +1,26 @@ +--- vendor/f2fs-tools/lib/libf2fs.c 2024-08-29 19:46:57.000000000 +0200 ++++ vendor/f2fs-tools/lib/libf2fs.c 2026-03-21 14:06:22.014748000 +0100 +@@ -43,6 +43,9 @@ + #ifdef HAVE_LINUX_LIMITS_H + #include <linux/limits.h> + #endif ++#ifdef HAVE_LIMITS_H ++#include <limits.h> ++#endif + + /* SCSI command for standard inquiry*/ + #define MODELINQUIRY 0x12,0x00,0x00,0x00,0x4A,0x00 +@@ -945,6 +948,13 @@ + #define BLKGETSIZE DKIOCGETBLOCKCOUNT + #define BLKSSZGET DKIOCGETBLOCKCOUNT + #endif /* APPLE_DARWIN */ ++ ++#if defined(__FreeBSD__) ++#include <sys/disk.h> ++#include <sys/ioctl.h> ++#define BLKGETSIZE64 DIOCGMEDIASIZE ++#define BLKSSZGET DIOCGSECTORSIZE ++#endif /* __FreeBSD__ */ + + #ifndef _WIN32 + static int open_check_fs(char *path, int flag) diff --git a/devel/android-tools/files/patch-vendor_libbase_file.cpp b/devel/android-tools/files/patch-vendor_libbase_file.cpp new file mode 100644 index 000000000000..8bcc46af49f1 --- /dev/null +++ b/devel/android-tools/files/patch-vendor_libbase_file.cpp @@ -0,0 +1,25 @@ +--- vendor/libbase/file.cpp 2024-08-29 19:46:57.000000000 +0200 ++++ vendor/libbase/file.cpp 2026-03-21 14:02:01.670927000 +0100 +@@ -35,6 +35,9 @@ + + #if defined(__APPLE__) + #include <mach-o/dyld.h> ++#endif ++#if defined(__FreeBSD__) ++#include <sys/sysctl.h> + #endif + #if defined(_WIN32) + #include <direct.h> *** 200 LINES SKIPPED ***home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69dc9c32.3c52e.3fc9b772>
