MINGW-packages/mingw-w64-android-tools/0001-android-tools-cmake.patch
Biswapriyo Nath 7610ec0de0 android-tools: update to 35.0.2
vendor/boringssl/crypto/curve25519/internal.h hunk was added in upstream.
https://boringssl.googlesource.com/boringssl.git/+/80b08dfe5ef7d9190fa28d8204f2f7e8612134ee%5E%21/

use bundled libusb as explained in release page.
2024-08-30 10:55:47 +05:30

371 lines
11 KiB
Diff

--- a/vendor/CMakeLists.adb.txt
+++ b/vendor/CMakeLists.adb.txt
@@ -31,24 +31,38 @@
adb/pairing_connection/pairing_connection.cpp
adb/services.cpp
adb/socket_spec.cpp
- adb/sysdeps_unix.cpp
adb/sysdeps/errno.cpp
- adb/sysdeps/posix/network.cpp
${ADB_APP_PROCESSES_PROTO_SRCS} ${ADB_APP_PROCESSES_PROTO_HDRS}
${ADB_HOST_PROTO_SRCS} ${ADB_HOST_PROTO_HDRS}
${ADB_KNOWN_HOSTS_PROTO_SRCS} ${ADB_KNOWN_HOSTS_PROTO_HDRS}
${ADB_KEY_TYPE_PROTO_SRCS} ${ADB_KEY_TYPE_PROTO_HDRS}
${ADB_PAIRING_PROTO_SRCS} ${ADB_PAIRING_PROTO_HDRS})
-if(APPLE)
+if(WIN32)
+ list(APPEND libadb_SOURCES
+ adb/client/usb_windows.cpp
+ adb/sysdeps_win32.cpp
+ adb/sysdeps/win32/errno.cpp
+ adb/sysdeps/win32/stat.cpp)
+elseif(APPLE)
list(APPEND libadb_SOURCES
- adb/client/usb_osx.cpp)
+ adb/client/usb_osx.cpp
+ adb/sysdeps_unix.cpp
+ adb/sysdeps/posix/network.cpp)
else()
list(APPEND libadb_SOURCES
- adb/client/usb_linux.cpp)
+ adb/client/usb_linux.cpp
+ adb/sysdeps_unix.cpp
+ adb/sysdeps/posix/network.cpp)
endif()
add_library(libadb STATIC ${libadb_SOURCES})
+if(WIN32)
+ target_compile_definitions(libadb PRIVATE
+ UNICODE _UNICODE _POSIX _POSIX_SOURCE)
+target_include_directories(libadb PUBLIC
+ development/host/windows/usb/api)
+endif()
target_compile_definitions(libadb PRIVATE -D_GNU_SOURCE)
target_compile_definitions(libadb PUBLIC -DADB_HOST=1)
target_include_directories(libadb PUBLIC
@@ -98,6 +112,9 @@
target_compile_definitions(liblog PRIVATE
-DLIBLOG_LOG_TAG=1006 -D_XOPEN_SOURCE=700 -DFAKE_LOG_DEVICE=1)
+if(WIN32)
+ target_compile_definitions(liblog PRIVATE WIN32_LEAN_AND_MEAN)
+endif()
target_include_directories(liblog PUBLIC
core/include
logging/liblog/include
@@ -105,26 +122,35 @@
libbase/include)
set(libcutils_SOURCES
- core/libcutils/android_get_control_file.cpp
- core/libcutils/ashmem-host.cpp
core/libcutils/config_utils.cpp
- core/libcutils/fs.cpp
- core/libcutils/hashmap.cpp
core/libcutils/iosched_policy.cpp
core/libcutils/load_file.cpp
- core/libcutils/multiuser.cpp
core/libcutils/native_handle.cpp
core/libcutils/properties.cpp
core/libcutils/record_stream.cpp
- core/libcutils/socket_inaddr_any_server_unix.cpp
- core/libcutils/socket_local_client_unix.cpp
- core/libcutils/socket_local_server_unix.cpp
- core/libcutils/socket_network_client_unix.cpp
- core/libcutils/sockets_unix.cpp
core/libcutils/sockets.cpp
- core/libcutils/str_parms.cpp
- core/libcutils/strlcpy.c
- core/libcutils/trace-host.cpp)
+ core/libcutils/strlcpy.c)
+
+if (WIN32)
+ list(APPEND libcutils_SOURCES
+ core/libcutils/socket_inaddr_any_server_windows.cpp
+ core/libcutils/socket_network_client_windows.cpp
+ core/libcutils/sockets_windows.cpp)
+else()
+ list(APPEND libcutils_SOURCES
+ core/libcutils/android_get_control_file.cpp
+ core/libcutils/ashmem-host.cpp
+ core/libcutils/fs.cpp
+ core/libcutils/hashmap.cpp
+ core/libcutils/multiuser.cpp
+ core/libcutils/socket_inaddr_any_server_unix.cpp
+ core/libcutils/socket_local_client_unix.cpp
+ core/libcutils/socket_local_server_unix.cpp
+ core/libcutils/socket_network_client_unix.cpp
+ core/libcutils/sockets_unix.cpp
+ core/libcutils/str_parms.cpp
+ core/libcutils/trace-host.cpp)
+endif()
if (NOT APPLE AND NOT WIN32)
list(APPEND libcutils_SOURCES
@@ -159,7 +185,7 @@
target_include_directories(libcrypto PUBLIC
core/libcrypto_utils/include boringssl/include)
-add_executable(adb
+set(adb_SOURCES
adb/adb.cpp
adb/adb_io.cpp
adb/adb_listeners.cpp
@@ -168,7 +194,6 @@
adb/adb_utils.cpp
adb/fdevent/fdevent.cpp
adb/fdevent/fdevent_poll.cpp
- adb/fdevent/fdevent_epoll.cpp
adb/shell_service_protocol.cpp
adb/sockets.cpp
adb/socket_spec.cpp
@@ -179,6 +204,18 @@
adb/types.cpp
${ADB_KEY_TYPE_PROTO_HDRS})
+if(WIN32)
+ list(APPEND adb_SOURCES
+ )
+else()
+ list(APPEND adb_SOURCES
+ adb/fdevent/fdevent_epoll.cpp)
+endif()
+
+add_executable(adb ${adb_SOURCES})
+if(WIN32)
+ target_compile_definitions(adb PRIVATE _GNU_SOURCE _POSIX _POSIX_SOURCE)
+endif()
target_include_directories(adb PRIVATE
core/include libbase/include adb
core/libcrypto_utils/include boringssl/include)
@@ -204,6 +241,11 @@
PkgConfig::libusb-1.0
z
PkgConfig::libzstd)
+if(WIN32)
+ add_dependencies(adb AdbWinApi)
+ target_link_libraries(adb "${ADBWINAPI_LIBRARY}" ws2_32)
+ set_target_properties(adb PROPERTIES LINK_FLAGS "-municode")
+endif()
if(APPLE)
target_link_libraries(adb
--- a/vendor/CMakeLists.fastboot.txt
+++ b/vendor/CMakeLists.fastboot.txt
@@ -14,17 +14,7 @@
libbase/include)
add_library(libutil STATIC
- core/libutils/FileMap.cpp
- core/libutils/JenkinsHash.cpp
- core/libutils/LightRefBase.cpp
- core/libutils/NativeHandle.cpp
- core/libutils/Printer.cpp
- core/libutils/StopWatch.cpp
- core/libutils/SystemClock.cpp
- core/libutils/Threads.cpp
- core/libutils/Timers.cpp
- core/libutils/Tokenizer.cpp
- core/libutils/misc.cpp)
+ core/libutils/FileMap.cpp)
target_include_directories(libutil PUBLIC
core/include
@@ -43,6 +33,7 @@
# Only add common sources from libselinux_defaults and libselinux
# See the file list in selinux/libselinux/Android.bp
+if(NOT WIN32)
add_library(libselinux STATIC
selinux/libselinux/src/booleans.c
selinux/libselinux/src/callbacks.c
@@ -99,6 +90,7 @@
target_include_directories(libsepol PUBLIC
selinux/libsepol/include)
+endif(NOT WIN32)
set(fastboot_SOURCES
core/fastboot/bootimg_utils.cpp
@@ -116,7 +108,10 @@
core/fastboot/vendor_boot_img_utils.cpp
core/fastboot/util.cpp)
-if(APPLE)
+if(WIN32)
+ list(APPEND fastboot_SOURCES
+ core/fastboot/usb_windows.cpp)
+elseif(APPLE)
list(APPEND fastboot_SOURCES
core/fastboot/usb_osx.cpp)
else()
@@ -130,13 +125,24 @@
extras/ext4_utils/include extras/f2fs_utils
core/libziparchive/include mkbootimg/include/bootimg
core/fs_mgr/liblp/include core/fs_mgr/libstorage_literals avb)
+if(WIN32)
+ target_compile_definitions(fastboot PRIVATE WIN32_LEAN_AND_MEAN)
+ target_include_directories(fastboot PRIVATE development/host/windows/usb/api)
+endif()
target_compile_definitions(fastboot PRIVATE
-D_GNU_SOURCE -D_XOPEN_SOURCE=700 -DUSE_F2FS
-DANDROID_MKE2FS_NAME="${ANDROID_MKE2FS_NAME}")
target_link_libraries(fastboot
libsparse libzip libcutils liblog liblp libutil
- libbase libext4 libselinux libsepol libdiagnoseusb crypto
- z PkgConfig::libpcre2-8 Threads::Threads dl)
+ libbase libext4 libdiagnoseusb crypto
+ z PkgConfig::libpcre2-8 Threads::Threads)
+if(WIN32)
+ add_dependencies(fastboot AdbWinApi)
+ target_link_libraries(fastboot "${ADBWINAPI_LIBRARY}")
+else()
+ target_link_libraries(fastboot
+ libselinux libsepol dl)
+endif()
if(APPLE)
target_link_libraries(fastboot
--- a/vendor/CMakeLists.libbase.txt
+++ b/vendor/CMakeLists.libbase.txt
@@ -1,7 +1,6 @@
-add_library(libbase STATIC
- libbase/abi_compatibility.cpp
+set(libbase_SOURCES
+ libbase/abi_compatibility.cpp
libbase/chrono_utils.cpp
- libbase/cmsg.cpp
libbase/file.cpp
libbase/hex.cpp
libbase/logging.cpp
@@ -14,9 +13,22 @@
libbase/stringprintf.cpp
libbase/strings.cpp
libbase/threads.cpp
- libbase/test_utils.cpp
- libbase/errors_unix.cpp)
+ libbase/test_utils.cpp)
+if(WIN32)
+ list(APPEND libbase_SOURCES
+ libbase/errors_windows.cpp
+ libbase/utf8.cpp)
+else()
+ list(APPEND libbase_SOURCES
+ libbase/cmsg.cpp
+ libbase/errors_unix.cpp)
+endif()
+
+add_library(libbase STATIC ${libbase_SOURCES})
+if(WIN32)
+ target_compile_definitions(libbase PUBLIC _POSIX_C_SOURCE)
+endif()
target_include_directories(libbase PUBLIC
libbase/include core/include)
target_link_libraries(libbase PUBLIC fmt::fmt liblog)
--- a/vendor/CMakeLists.mkbootimg.txt
+++ b/vendor/CMakeLists.mkbootimg.txt
@@ -1,7 +1,7 @@
set(MKBOOTIMG_SCRIPTS_DIR ${CMAKE_INSTALL_DATADIR}/android-tools/mkbootimg)
install(PROGRAMS mkbootimg/mkbootimg.py DESTINATION ${MKBOOTIMG_SCRIPTS_DIR})
-add_custom_target(mkbootimg_symlink ALL COMMAND ${CMAKE_COMMAND} -E create_symlink
- ../${MKBOOTIMG_SCRIPTS_DIR}/mkbootimg.py
+add_custom_target(mkbootimg_symlink ALL COMMAND ${CMAKE_COMMAND} -E copy
+ ${CMAKE_CURRENT_SOURCE_DIR}/mkbootimg/mkbootimg.py
${CMAKE_CURRENT_BINARY_DIR}/mkbootimg)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mkbootimg DESTINATION ${CMAKE_INSTALL_BINDIR})
install(FILES mkbootimg/gki/generate_gki_certificate.py DESTINATION ${MKBOOTIMG_SCRIPTS_DIR}/gki)
--- a/vendor/CMakeLists.partition.txt
+++ b/vendor/CMakeLists.partition.txt
@@ -15,6 +15,7 @@
target_include_directories(liblp PUBLIC
core/fs_mgr/liblp/include)
+if(NOT WIN32)
protobuf_generate_cpp(DYNAMIC_PARTITIONS_DEVICE_INFO_PROTO_SRCS DYNAMIC_PARTITIONS_DEVICE_INFO_PROTO_HDRS
extras/partition_tools/dynamic_partitions_device_info.proto)
@@ -54,3 +55,4 @@
extras/partition_tools/lpunpack.cc)
target_link_libraries(lpunpack
libbase liblog liblp libsparse)
+endif(NOT WIN32)
--- a/vendor/CMakeLists.sparse.txt
+++ b/vendor/CMakeLists.sparse.txt
@@ -24,3 +24,6 @@
core/libsparse/append2simg.cpp)
target_link_libraries(append2simg
libsparse z libbase)
+if(WIN32)
+ target_compile_definitions(append2simg PRIVATE _GNU_SOURCE)
+endif()
--- a/vendor/CMakeLists.txt
+++ b/vendor/CMakeLists.txt
@@ -91,7 +91,7 @@
find_package(Protobuf CONFIG)
find_package(Protobuf REQUIRED)
-set(THREADS_PREFER_PTHREAD_FLAG ON)
+#set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
check_symbol_exists(strlcpy "string.h" HAVE_STRLCPY)
@@ -110,24 +110,39 @@
include_directories(${PROTOBUF_INCLUDE_DIRS})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
+if(WIN32)
+ set(ADBWINAPI_LIBRARY "${CMAKE_CURRENT_BINARY_DIR}/AdbWinApi.dll.a")
+ add_custom_command(
+ OUTPUT "${ADBWINAPI_LIBRARY}"
+ COMMAND dlltool -d "${CMAKE_CURRENT_SOURCE_DIR}/AdbWinApi.def" -l "${ADBWINAPI_LIBRARY}"
+ DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/AdbWinApi.def")
+ add_custom_target(AdbWinApi DEPENDS "${ADBWINAPI_LIBRARY}")
+endif(WIN32)
+
include(CMakeLists.libbase.txt)
include(CMakeLists.adb.txt)
include(CMakeLists.sparse.txt)
include(CMakeLists.fastboot.txt)
-include(CMakeLists.f2fstools.txt)
-include(CMakeLists.mke2fs.txt)
include(CMakeLists.partition.txt)
include(CMakeLists.mkbootimg.txt)
include(CMakeLists.libufdt.txt)
include(CMakeLists.avb.txt)
+if(NOT WIN32)
+ include(CMakeLists.f2fstools.txt)
+ include(CMakeLists.mke2fs.txt)
+endif()
# Targets which should be installed by `make install`.
install(TARGETS
- "${ANDROID_MKE2FS_NAME}"
adb
append2simg
fastboot
img2simg
+ simg2img
+ DESTINATION bin)
+if(NOT WIN32)
+install(TARGETS
+ "${ANDROID_MKE2FS_NAME}"
lpadd
lpdump
lpflash
@@ -135,11 +150,11 @@
lpunpack
make_f2fs
sload_f2fs
- simg2img
ext2simg
DESTINATION bin)
+endif()
-if(NOT APPLE)
+if(NOT APPLE AND NOT WIN32)
install(TARGETS
e2fsdroid
DESTINATION bin)