├── android-11 └── README.md ├── screenshot ├── build_sdk_toos1.jpg ├── build_sdk_toos2.jpg └── build_sdk_toos3.jpg ├── .gitignore ├── cmake ├── build-tools │ ├── CMakeLists.txt │ ├── dexdump │ │ └── CMakeLists.txt │ ├── zipalign │ │ └── CMakeLists.txt │ ├── split-select │ │ └── CMakeLists.txt │ ├── aapt │ │ └── CMakeLists.txt │ ├── aidl │ │ └── CMakeLists.txt │ └── aapt2 │ │ └── CMakeLists.txt ├── lib │ ├── boringssl │ │ ├── CMakeLists_new.txt │ │ ├── build.sh │ │ └── CMakeLists.txt │ ├── liblz4 │ │ └── CMakeLists.txt │ ├── libdiagnose_usb │ │ └── CMakeLists.txt │ ├── fmtlib │ │ └── CMakeLists.txt │ ├── libcrypto_utils │ │ └── CMakeLists.txt │ ├── libvndksupport │ │ └── CMakeLists.txt │ ├── libzstd │ │ └── CMakeLists.txt │ ├── libbuildversion │ │ └── CMakeLists.txt │ ├── libbrotli │ │ └── CMakeLists.txt │ ├── libartpalette │ │ └── CMakeLists.txt │ ├── libext4_utils │ │ └── CMakeLists.txt │ ├── libjsoncpp │ │ └── CMakeLists.txt │ ├── libpackagelistparser │ │ └── CMakeLists.txt │ ├── libsparse │ │ └── CMakeLists.txt │ ├── expat │ │ └── CMakeLists.txt │ ├── libcpu_features │ │ └── CMakeLists.txt │ ├── liblp │ │ └── CMakeLists.txt │ ├── libincfs │ │ └── CMakeLists.txt │ ├── libziparchive │ │ └── CMakeLists.txt │ ├── libusb │ │ └── CMakeLists.txt │ ├── gtest │ │ └── CMakeLists.txt │ ├── libpng │ │ └── CMakeLists.txt │ ├── libbase │ │ └── CMakeLists.txt │ ├── liblog │ │ └── CMakeLists.txt │ ├── mdnsresponder │ │ └── CMakeLists.txt │ ├── libprocessgroup │ │ └── CMakeLists.txt │ ├── libcxxabi │ │ └── CMakeLists.txt │ ├── libdexfile │ │ └── CMakeLists.txt │ ├── libzopfli │ │ └── CMakeLists.txt │ ├── libutils │ │ └── CMakeLists.txt │ ├── zlib │ │ └── CMakeLists.txt │ ├── libpcre2 │ │ └── CMakeLists.txt │ ├── androidfw │ │ └── CMakeLists.txt │ ├── libartbase │ │ └── CMakeLists.txt │ ├── libcutils │ │ └── CMakeLists.txt │ ├── libcxx │ │ └── CMakeLists.txt │ ├── CMakeLists.txt │ ├── libselinux │ │ └── CMakeLists.txt │ ├── libsepol │ │ └── CMakeLists.txt │ ├── compiler-rt │ │ └── CMakeLists.txt │ └── protobuf │ │ └── CMakeLists.txt ├── platform-tools │ ├── CMakeLists.txt │ ├── e2fsprogs │ │ ├── CMakeLists.txt │ │ ├── libext2_com_err │ │ │ └── CMakeLists.txt │ │ ├── libext2_quota │ │ │ └── CMakeLists.txt │ │ ├── libext2_uuid │ │ │ └── CMakeLists.txt │ │ ├── libext2_blkid │ │ │ └── CMakeLists.txt │ │ ├── mke2fs │ │ │ └── CMakeLists.txt │ │ ├── libext2_e2p │ │ │ └── CMakeLists.txt │ │ ├── e2fsdroid │ │ │ └── CMakeLists.txt │ │ └── libext2fs │ │ │ └── CMakeLists.txt │ ├── hprof-conv │ │ └── CMakeLists.txt │ ├── dmtracedump │ │ └── CMakeLists.txt │ ├── sqlite3 │ │ ├── libicudata │ │ │ └── CMakeLists.txt │ │ ├── libandroidicu │ │ │ └── CMakeLists.txt │ │ ├── libandroidicuinit │ │ │ └── CMakeLists.txt │ │ ├── libicuuc │ │ │ └── CMakeLists.txt │ │ ├── libicui18n │ │ │ └── CMakeLists.txt │ │ └── CMakeLists.txt │ ├── adb │ │ ├── libadb_sysdeps │ │ │ └── CMakeLists.txt │ │ ├── libadb_tls_connection │ │ │ └── CMakeLists.txt │ │ ├── libadb_pairing_auth │ │ │ └── CMakeLists.txt │ │ ├── libadb_crypto │ │ │ └── CMakeLists.txt │ │ ├── libadb_pairing_connection │ │ │ └── CMakeLists.txt │ │ ├── deployagent │ │ │ └── CMakeLists.txt │ │ ├── libfastdeploy_host │ │ │ └── CMakeLists.txt │ │ ├── libadb_protos │ │ │ └── CMakeLists.txt │ │ └── CMakeLists.txt │ ├── etc1tool │ │ └── CMakeLists.txt │ ├── fastboot │ │ └── CMakeLists.txt │ └── f2fs-tools │ │ └── CMakeLists.txt ├── CMakeLists.txt └── modules │ ├── Android.cmake │ ├── CheckCCompilerFlag.cmake │ └── CheckCXXCompilerFlag.cmake ├── patches ├── adb.cpp.patch ├── fastboot.cpp.patch ├── avb_sysdeps.h.patch ├── dex_file.cc.patch ├── utypes.h.patch ├── pairing_auth.h.patch ├── log.h.patch ├── cgrouprc.h.patch ├── pairing_connection.h.patch ├── uconfig_local.h.patch ├── aidl_language_l.ll.patch ├── mem_map.cc.patch ├── xmlparse.c.patch └── instruction_set.h.patch ├── README.md ├── CMakeLists.txt └── LICENSE /android-11/README.md: -------------------------------------------------------------------------------- 1 | Android Open Source Project 2 | -------------------------------------------------------------------------------- /screenshot/build_sdk_toos1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agnostic-apollo/sdk-tools/HEAD/screenshot/build_sdk_toos1.jpg -------------------------------------------------------------------------------- /screenshot/build_sdk_toos2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agnostic-apollo/sdk-tools/HEAD/screenshot/build_sdk_toos2.jpg -------------------------------------------------------------------------------- /screenshot/build_sdk_toos3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/agnostic-apollo/sdk-tools/HEAD/screenshot/build_sdk_toos3.jpg -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | CMakeCache.txt 2 | CMakeFiles 3 | CMakeScripts 4 | Testing 5 | Makefile 6 | cmake_install.cmake 7 | install_manifest.txt 8 | compile_commands.json 9 | CTestTestfile.cmake 10 | build 11 | -------------------------------------------------------------------------------- /cmake/build-tools/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(build-tools) 4 | 5 | add_subdirectory(aapt) 6 | add_subdirectory(aapt2) 7 | add_subdirectory(aidl) 8 | add_subdirectory(zipalign) 9 | add_subdirectory(dexdump) 10 | add_subdirectory(split-select) 11 | 12 | -------------------------------------------------------------------------------- /cmake/lib/boringssl/CMakeLists_new.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(boringssl) 4 | 5 | # because ${AOSP}/external/boringssl has a link error 6 | # so choose the official boringssl to compile 7 | 8 | execute_process( 9 | COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/build.sh 10 | WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} 11 | ) 12 | 13 | -------------------------------------------------------------------------------- /cmake/platform-tools/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(platform-tools) 4 | 5 | add_subdirectory(dmtracedump) 6 | add_subdirectory(hprof-conv) 7 | add_subdirectory(etc1tool) 8 | add_subdirectory(sqlite3) 9 | add_subdirectory(e2fsprogs) 10 | add_subdirectory(f2fs-tools) 11 | add_subdirectory(adb) 12 | add_subdirectory(fastboot) 13 | 14 | -------------------------------------------------------------------------------- /cmake/platform-tools/e2fsprogs/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(e2fsprogs) 4 | 5 | add_subdirectory(libext2_blkid) 6 | add_subdirectory(libext2_e2p) 7 | add_subdirectory(libext2_com_err) 8 | add_subdirectory(libext2fs) 9 | add_subdirectory(libext2_quota) 10 | add_subdirectory(libext2_uuid) 11 | add_subdirectory(mke2fs) 12 | add_subdirectory(e2fsdroid) -------------------------------------------------------------------------------- /cmake/lib/liblz4/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(liblz4) 4 | 5 | set(LZ4 ${AOSP}/external/lz4/lib) 6 | 7 | set(LIBLZ4_SRC_FILES 8 | ${LZ4}/lz4.c 9 | ${LZ4}/lz4hc.c 10 | ${LZ4}/lz4frame.c 11 | ${LZ4}/xxhash.c 12 | ) 13 | 14 | set(CMAKE_C_FLAGS "${GLOBAL_C_FLAGS}") 15 | 16 | add_library(lz4 STATIC ${LIBLZ4_SRC_FILES}) 17 | target_link_libraries(lz4) 18 | -------------------------------------------------------------------------------- /patches/adb.cpp.patch: -------------------------------------------------------------------------------- 1 | --- android-11/system/core/adb/adb.cpp 2020-09-17 21:53:41.883308018 +0800 2 | +++ patches/adb.cpp 2020-09-17 21:52:20.196633214 +0800 3 | @@ -46,7 +46,7 @@ 4 | #include 5 | #include 6 | #include 7 | -#include 8 | +//#include 9 | 10 | #include "adb_auth.h" 11 | #include "adb_io.h" 12 | -------------------------------------------------------------------------------- /cmake/platform-tools/hprof-conv/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(hprof-conv) 4 | 5 | set(HPROF-CONV ${AOSP}/dalvik/tools/hprof-conv) 6 | 7 | set(HPROF-CONV_SRC_FILES 8 | ${HPROF-CONV}/HprofConv.c 9 | ) 10 | 11 | set(CMAKE_C_FLAGS "${GLOBAL_C_FLAGS}") 12 | set(CMAKE_EXE_LINKER_FLAGS "-static") 13 | 14 | add_executable(hprof-conv ${HPROF-CONV_SRC_FILES}) 15 | target_link_libraries(hprof-conv) 16 | -------------------------------------------------------------------------------- /cmake/lib/libdiagnose_usb/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libdiagnose_usb) 4 | 5 | set(DIAGNOSE_USB ${AOSP}/system/core/diagnose_usb) 6 | 7 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -Wextra") 8 | 9 | include_directories( 10 | ${libdiagnose_usb_headers} 11 | ${libbase_headers} 12 | ) 13 | 14 | add_library(diagnose_usb STATIC ${DIAGNOSE_USB}/diagnose_usb.cpp) 15 | target_link_libraries(diagnose_usb) 16 | -------------------------------------------------------------------------------- /patches/fastboot.cpp.patch: -------------------------------------------------------------------------------- 1 | --- android-11/system/core/fastboot/fastboot.cpp 2020-09-17 20:26:38.319224603 +0800 2 | +++ patches/fastboot.cpp 2020-09-17 20:25:40.735885534 +0800 3 | @@ -62,7 +62,7 @@ 4 | #include 5 | #include 6 | #include 7 | -#include 8 | +//#include 9 | #include 10 | #include 11 | 12 | -------------------------------------------------------------------------------- /cmake/platform-tools/dmtracedump/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(dmtracedump) 4 | 5 | set(DMTRACEDUMP ${AOSP}/art/tools/dmtracedump) 6 | 7 | set(DMTRACEDUMP_SRC_FILES 8 | ${DMTRACEDUMP}/tracedump.cc 9 | ) 10 | 11 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS}") 12 | set(CMAKE_EXE_LINKER_FLAGS "-static") 13 | 14 | add_executable(dmtracedump ${DMTRACEDUMP_SRC_FILES}) 15 | target_link_libraries(dmtracedump c++ c++abi) 16 | -------------------------------------------------------------------------------- /cmake/platform-tools/sqlite3/libicudata/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libicudata) 4 | 5 | set(STUBDATA ${AOSP}/external/icu/icu4c/source/stubdata) 6 | 7 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -DANDROID_LINK_SHARED_ICU4C") 8 | 9 | include_directories( 10 | ${STUBDATA}/../common 11 | ${icu_headers} 12 | ) 13 | 14 | add_library(icuuc_stubdata STATIC ${STUBDATA}/stubdata.cpp) 15 | target_link_libraries(icudata) 16 | -------------------------------------------------------------------------------- /patches/avb_sysdeps.h.patch: -------------------------------------------------------------------------------- 1 | --- android-11/external/u-boot/lib/libavb/avb_sysdeps.h 2020-09-17 20:18:07.065840340 +0800 2 | +++ patches/avb_sysdeps.h 2020-09-17 20:17:19.075835559 +0800 3 | @@ -19,7 +19,7 @@ 4 | * like uint8_t, uint64_t, and bool (with |false|, |true| keywords) 5 | * must be present. 6 | */ 7 | -#include 8 | +//#include 9 | 10 | /* If you don't have gcc or clang, these attribute macros may need to 11 | * be adjusted. 12 | -------------------------------------------------------------------------------- /cmake/lib/fmtlib/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(fmtlib) 4 | 5 | set(FMTLIB ${AOSP}/external/fmtlib) 6 | 7 | set(LIBFMT_SRC_FILES ${FMTLIB}/src/format.cc) 8 | 9 | set(CMAKE_CXX_FLAGS " \ 10 | ${GLOBAL_CXX_FLAGS} \ 11 | -fno-exceptions \ 12 | -UNDEBUG \ 13 | ") 14 | 15 | include_directories( 16 | ${fmtlib_headers} 17 | ) 18 | 19 | add_library(fmt STATIC ${LIBFMT_SRC_FILES}) 20 | target_link_libraries(fmt) 21 | -------------------------------------------------------------------------------- /cmake/lib/libcrypto_utils/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libcrypto_utils) 4 | 5 | set(LIBCRYPTO_UTILS ${AOSP}/system/core/libcrypto_utils) 6 | 7 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -Wall -Werror -Wextra") 8 | 9 | include_directories( 10 | ${libcrypto_utils_headers} 11 | ${boringssl_headers} 12 | ) 13 | 14 | add_library(crypto_utils STATIC ${LIBCRYPTO_UTILS}/android_pubkey.cpp) 15 | target_link_libraries(crypto_utils) 16 | -------------------------------------------------------------------------------- /patches/dex_file.cc.patch: -------------------------------------------------------------------------------- 1 | --- android-11/art/libdexfile/dex/dex_file.cc 2020-09-16 22:43:47.357873323 +0800 2 | +++ patches/dex_file.cc 2020-09-16 22:42:26.351198586 +0800 3 | @@ -605,6 +605,12 @@ 4 | } 5 | } 6 | 7 | +// this function is no implements 8 | +std::ostream& operator<<(std::ostream& os, EncodedArrayValueIterator::ValueType code){ 9 | + return os << code; 10 | +} 11 | + 12 | void EncodedArrayValueIterator::Next() { 13 | pos_++; 14 | if (pos_ >= array_size_) { 15 | -------------------------------------------------------------------------------- /patches/utypes.h.patch: -------------------------------------------------------------------------------- 1 | --- android-11/external/icu/icu4c/source/common/unicode/utypes.h 2020-09-18 15:41:03.554095497 +0800 2 | +++ patches/utypes.h 2020-09-18 15:40:13.187423813 +0800 3 | @@ -40,6 +40,11 @@ 4 | #include "unicode/uconfig.h" 5 | #include 6 | 7 | +// undef some macro 8 | +#undef U_HIDE_INTERNAL_API 9 | +#undef U_HIDE_DEPRECATED_API 10 | +#undef U_HIDE_DRAFT_API 11 | + 12 | #if !U_NO_DEFAULT_INCLUDE_UTF_HEADERS 13 | # include "unicode/utf.h" 14 | #endif 15 | -------------------------------------------------------------------------------- /cmake/platform-tools/sqlite3/libandroidicu/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libandroidicu) 4 | 5 | set(ICU ${AOSP}/external/icu) 6 | 7 | include_directories( 8 | ${icu_headers} 9 | ) 10 | 11 | set(CMAKE_CXX_FLAGS " \ 12 | ${GLOBAL_CXX_FLAGS} \ 13 | -DANDROID_LINK_SHARED_ICU4C \ 14 | -DU_SHOW_CPLUSPLUS_API=0 \ 15 | ") 16 | 17 | add_library(androidicu STATIC ${ICU}/libandroidicu/static_shim/shim.cpp) 18 | target_link_libraries(androidicu) 19 | 20 | 21 | -------------------------------------------------------------------------------- /patches/pairing_auth.h.patch: -------------------------------------------------------------------------------- 1 | --- android-11/system/core/adb/pairing_auth/include/adb/pairing/pairing_auth.h 2020-09-23 00:42:47.152474237 +0800 2 | +++ patches/pairing_auth.h 2020-09-23 00:41:32.662466816 +0800 3 | @@ -26,6 +26,12 @@ 4 | 5 | __BEGIN_DECLS 6 | 7 | +// if android-ndk api >= 30 no need to redefine __ANDROID_API__ 8 | +#ifdef __ANDROID_API__ 9 | +#undef __ANDROID_API__ 10 | +#define __ANDROID_API__ 30 11 | +#endif 12 | + 13 | #if !defined(__ANDROID__) || __ANDROID_API__ >= 30 14 | 15 | /** 16 | -------------------------------------------------------------------------------- /cmake/platform-tools/sqlite3/libandroidicuinit/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libandroidicuinit) 4 | 5 | set(ICU ${AOSP}/external/icu) 6 | 7 | include_directories( 8 | ${icu_headers} 9 | ${libbase_headers} 10 | ${liblog_headers} 11 | ) 12 | 13 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -DANDROID_LINK_SHARED_ICU4C") 14 | 15 | add_library(androidicuinit STATIC ${ICU}/libandroidicuinit/IcuRegistration.cpp) 16 | target_link_libraries(androidicuinit) 17 | 18 | 19 | -------------------------------------------------------------------------------- /cmake/lib/libvndksupport/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libvndksupport) 4 | 5 | set(LIBVNDKSUPPORT ${AOSP}/system/core/libvndksupport) 6 | 7 | set(LIBVNDKSUPPORT_SRC_FILES 8 | ${LIBVNDKSUPPORT}/linker.cpp 9 | ) 10 | 11 | include_directories( 12 | ${libvndksupport_headers} 13 | ${liblog_headers} 14 | ) 15 | 16 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS}") 17 | 18 | add_library(vndksupport STATIC ${LIBVNDKSUPPORT_SRC_FILES}) 19 | target_link_libraries(vndksupport) 20 | -------------------------------------------------------------------------------- /cmake/lib/libzstd/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libzstd) 4 | 5 | set(ZSTD ${AOSP}/external/zstd) 6 | 7 | file(GLOB_RECURSE LIBZSTD_SRC_FILES ${ZSTD}/lib/*.c) 8 | 9 | set(CMAKE_C_FLAGS " \ 10 | ${GLOBAL_C_FLAGS} \ -Wall \ 11 | -Werror \ 12 | -Wextra \ 13 | ") 14 | 15 | include_directories( 16 | ${libzstd_headers} 17 | ${ZSTD}/lib/common 18 | ) 19 | 20 | add_library(zstd STATIC ${LIBZSTD_SRC_FILES}) 21 | target_link_libraries(zstd) 22 | -------------------------------------------------------------------------------- /patches/log.h.patch: -------------------------------------------------------------------------------- 1 | --- android-11/system/core/liblog/include/android/log.h 2020-09-15 21:54:26.425627279 +0800 2 | +++ patches/log.h 2020-09-15 21:53:20.642287392 +0800 3 | @@ -217,6 +217,11 @@ 4 | */ 5 | typedef void (*__android_aborter_function)(const char* abort_message); 6 | 7 | +// if android-ndk api >= 30 no need to redefined __ANDROID_API__ 8 | +#ifdef __ANDROID_API__ 9 | +#undef __ANDROID_API__ 10 | +#define __ANDROID_API__ 30 11 | +#endif 12 | 13 | #if !defined(__ANDROID__) || __ANDROID_API__ >= 30 14 | /** 15 | -------------------------------------------------------------------------------- /cmake/lib/libbuildversion/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libbuildversion) 4 | 5 | set(LIBUILDVERSION ${AOSP}/build/soong/cc/libbuildversion) 6 | 7 | 8 | set(LIBUILDVERSION_SRC_FILES 9 | ${LIBUILDVERSION}/libbuildversion.cpp 10 | ) 11 | 12 | include_directories( 13 | ${libbuildversion_headers} 14 | ) 15 | 16 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -fvisibility=hidden") 17 | 18 | add_library(buildversion STATIC ${LIBUILDVERSION_SRC_FILES}) 19 | target_link_libraries(buildversion) 20 | -------------------------------------------------------------------------------- /cmake/lib/libbrotli/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libbrotli) 4 | 5 | set(BROTLI ${AOSP}/external/brotli) 6 | 7 | aux_source_directory(${BROTLI}/c/common LIBBROTLI_SRC_FILES) 8 | 9 | aux_source_directory(${BROTLI}/c/dec LIBBROTLI_SRC_FILES) 10 | 11 | aux_source_directory(${BROTLI}/c/enc LIBBROTLI_SRC_FILES) 12 | 13 | set(CMAKE_C_FLAGS "${GLOBAL_C_FLAGS}") 14 | 15 | include_directories(${libbrotli_headers}) 16 | 17 | add_library(brotli STATIC ${LIBBROTLI_SRC_FILES}) 18 | target_link_libraries(brotli) 19 | -------------------------------------------------------------------------------- /cmake/platform-tools/adb/libadb_sysdeps/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libadb_sysdeps) 4 | 5 | set(SYSDEPS ${AOSP}/packages/modules/adb/sysdeps) 6 | 7 | set(LIBADB_SYSDEPS_SRC_FILES ${SYSDEPS}/env.cpp) 8 | 9 | include_directories( 10 | ${adb_headers} 11 | ${libbase_headers} 12 | ${liblog_headers} 13 | ) 14 | 15 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -Wextra -Wthread-safety") 16 | 17 | add_library(adb_sysdeps STATIC ${LIBADB_SYSDEPS_SRC_FILES}) 18 | target_link_libraries(adb_sysdeps) 19 | -------------------------------------------------------------------------------- /cmake/platform-tools/e2fsprogs/libext2_com_err/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libext2_com_err) 4 | 5 | set(ET ${AOSP}/external/e2fsprogs/lib/et) 6 | 7 | set(LIBEXT2_COM_ERR_SRC_FILES 8 | ${ET}/error_message.c 9 | ${ET}/et_name.c 10 | ${ET}/init_et.c 11 | ${ET}/com_err.c 12 | ${ET}/com_right.c 13 | ) 14 | 15 | include_directories(${ET}/../) 16 | 17 | set(CMAKE_C_FLAGS "${GLOBAL_C_FLAGS}") 18 | 19 | add_library(ext2_com_err STATIC ${LIBEXT2_COM_ERR_SRC_FILES}) 20 | target_link_libraries(ext2_com_err) 21 | -------------------------------------------------------------------------------- /patches/cgrouprc.h.patch: -------------------------------------------------------------------------------- 1 | --- android-11/system/core/libprocessgroup/cgrouprc/include/android/cgrouprc.h 2020-09-16 12:07:41.727246788 +0800 2 | +++ patches/cgrouprc.h 2020-09-16 12:06:26.203905931 +0800 3 | @@ -28,6 +28,12 @@ 4 | struct ACgroupController; 5 | typedef struct ACgroupController ACgroupController; 6 | 7 | +// if android-ndk api >= 29 no need to redefined __ANDROID_API__ 8 | +#ifdef __ANDROID_API__ 9 | +#undef __ANDROID_API__ 10 | +#define __ANDROID_API__ 30 11 | +#endif 12 | + 13 | #if __ANDROID_API__ >= __ANDROID_API_Q__ 14 | 15 | // ACgroupFile 16 | -------------------------------------------------------------------------------- /cmake/lib/libartpalette/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libartpalette) 4 | 5 | set(LIBARTPALETTE ${AOSP}/art/libartpalette) 6 | 7 | set(LIBARTPALETTE_SRC_FILES 8 | ${LIBARTPALETTE}/apex/palette.cc 9 | ${LIBARTPALETTE}/system/palette_fake.cc 10 | ) 11 | 12 | include_directories( 13 | ${libartpalette_headers} 14 | ${libbase_headers} 15 | ${liblog_headers} 16 | ) 17 | 18 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS}") 19 | 20 | add_library(artpalette STATIC ${LIBARTPALETTE_SRC_FILES}) 21 | target_link_libraries(artpalette) 22 | -------------------------------------------------------------------------------- /patches/pairing_connection.h.patch: -------------------------------------------------------------------------------- 1 | --- android-11/system/core/adb/pairing_connection/include/adb/pairing/pairing_connection.h 2020-09-17 23:29:41.290709288 +0800 2 | +++ patches/pairing_connection.h 2020-09-17 23:28:41.730703354 +0800 3 | @@ -37,6 +37,12 @@ 4 | // (see #PeerInfo). 5 | __BEGIN_DECLS 6 | 7 | +// if android-ndk api >= 30 no need to redefine __ANDROID_API__ 8 | +#ifdef __ANDROID_API__ 9 | +#undef __ANDROID_API__ 10 | +#define __ANDROID_API__ 30 11 | +#endif 12 | + 13 | #if !defined(__ANDROID__) || __ANDROID_API__ >= 30 14 | const uint32_t kMaxPeerInfoSize = 8192; 15 | struct PeerInfo { 16 | -------------------------------------------------------------------------------- /cmake/lib/libext4_utils/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libext4_utils) 4 | 5 | set(EXT4_UTILS ${AOSP}/system/extras/ext4_utils) 6 | 7 | set(LIBEXT4_UTILS_SRC_FILES 8 | ${EXT4_UTILS}/ext4_utils.cpp 9 | ${EXT4_UTILS}/wipe.cpp 10 | ${EXT4_UTILS}/ext4_sb.cpp 11 | ) 12 | 13 | include_directories( 14 | ${libext4_utils_headers} 15 | ${libbase_headers} 16 | ) 17 | 18 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -fno-strict-aliasing -DREAL_UUID") 19 | 20 | add_library(ext4_utils STATIC ${LIBEXT4_UTILS_SRC_FILES}) 21 | target_link_libraries(ext4_utils) 22 | -------------------------------------------------------------------------------- /patches/uconfig_local.h.patch: -------------------------------------------------------------------------------- 1 | --- android-11/external/icu/libandroidicu/include/uconfig_local.h 2020-09-18 15:38:23.027412839 +0800 2 | +++ patches/uconfig_local.h 2020-09-18 15:36:30.004068247 +0800 3 | @@ -22,8 +22,10 @@ 4 | #define U_LIB_SUFFIX_C_NAME _android 5 | #define U_HIDE_DRAFT_API 1 6 | #define U_HIDE_DEPRECATED_API 1 7 | -#define U_SHOW_CPLUSPLUS_API 0 8 | -#define U_HIDE_INTERNAL_API 1 9 | + 10 | +// macro modify 11 | +#define U_SHOW_CPLUSPLUS_API 1 12 | +#define U_HIDE_INTERNAL_API 0 13 | 14 | // Set this flag to allow header-only C++ usages 15 | #define LIBANDROIDICU_U_SHOW_CPLUSPLUS_API 1 16 | -------------------------------------------------------------------------------- /cmake/lib/libjsoncpp/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libjsoncpp) 4 | 5 | set(LIBJSONCPP ${AOSP}/external/jsoncpp) 6 | 7 | set(LIBJSONCPP_SRC_FILES 8 | ${LIBJSONCPP}/src/lib_json/json_reader.cpp 9 | ${LIBJSONCPP}/src/lib_json/json_value.cpp 10 | ${LIBJSONCPP}/src/lib_json/json_writer.cpp 11 | ) 12 | 13 | include_directories( 14 | ${libjsoncpp_headers} 15 | ) 16 | 17 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -DJSON_USE_EXCEPTION=0 -Wno-implicit-fallthrough") 18 | 19 | add_library(jsoncpp STATIC ${LIBJSONCPP_SRC_FILES}) 20 | target_link_libraries(jsoncpp) 21 | -------------------------------------------------------------------------------- /cmake/lib/libpackagelistparser/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libpackagelistparser) 4 | 5 | set(LIBPACKAGELISTPARSER ${AOSP}/system/core/libpackagelistparser) 6 | 7 | set(LIBPACKAGELISTPARSER_SRC_FILES 8 | ${LIBPACKAGELISTPARSER}/packagelistparser.cpp 9 | ) 10 | 11 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS}") 12 | 13 | include_directories( 14 | ${libbase_headers} 15 | ${liblog_headers} 16 | ${libpackagelistparser_headers} 17 | ) 18 | 19 | add_library(packagelistparser STATIC ${LIBPACKAGELISTPARSER_SRC_FILES}) 20 | target_link_libraries(packagelistparser) 21 | 22 | 23 | -------------------------------------------------------------------------------- /cmake/platform-tools/adb/libadb_tls_connection/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libadb_tls_connection) 4 | 5 | set(TLS ${AOSP}/packages/modules/adb/tls) 6 | 7 | set(LIBADB_TLS_CONNECTION_SRC_FILES 8 | ${TLS}/adb_ca_list.cpp 9 | ${TLS}/tls_connection.cpp 10 | ) 11 | 12 | include_directories( 13 | ${boringssl_headers} 14 | ${adb_headers} 15 | ${libbase_headers} 16 | ) 17 | 18 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -Wextra -Wthread-safety") 19 | 20 | add_library(adb_tls_connection STATIC ${LIBADB_TLS_CONNECTION_SRC_FILES}) 21 | target_link_libraries(adb_tls_connection) 22 | -------------------------------------------------------------------------------- /patches/aidl_language_l.ll.patch: -------------------------------------------------------------------------------- 1 | --- android-11/system/tools/aidl/aidl_language_l.ll 2020-09-17 15:59:36.912521876 +0800 2 | +++ patches/aidl_language_l.ll 2020-09-18 15:58:27.002514912 +0800 3 | @@ -22,6 +22,13 @@ 4 | #include "parser.h" 5 | #include "aidl_language_y-module.h" 6 | 7 | +// After executing the bison command, please manually add the header file 8 | +// aidl_language_l.cpp error: unknown type name 'YYSTYPE' 9 | +// aidl_language_l.cpp error: unknown type name 'YYLTYPE' 10 | +#include "aidl_language_y.h" 11 | +#include "aidl_language_y.cpp" 12 | + 13 | + 14 | #define YY_USER_ACTION yylloc->columns(yyleng); 15 | %} 16 | 17 | -------------------------------------------------------------------------------- /cmake/platform-tools/adb/libadb_pairing_auth/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libadb_pairing_auth) 4 | 5 | set(PAIRING_AUTH ${AOSP}/packages/modules/adb/pairing_auth) 6 | 7 | set(LIBADB_PAIRING_AUTH_SRC_FILES 8 | ${PAIRING_AUTH}/aes_128_gcm.cpp 9 | ${PAIRING_AUTH}/pairing_auth.cpp 10 | ) 11 | 12 | include_directories( 13 | ${boringssl_headers} 14 | ${libbase_headers} 15 | ${adb_headers} 16 | ) 17 | 18 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -Wextra -Wthread-safety") 19 | 20 | add_library(adb_pairing_auth STATIC ${LIBADB_PAIRING_AUTH_SRC_FILES}) 21 | target_link_libraries(adb_pairing_auth) 22 | -------------------------------------------------------------------------------- /patches/mem_map.cc.patch: -------------------------------------------------------------------------------- 1 | --- android-11/art/libartbase/base/mem_map.cc 2020-09-16 14:50:35.491362353 +0800 2 | +++ patches/mem_map.cc 2020-09-16 14:49:26.071355437 +0800 3 | @@ -45,6 +45,20 @@ 4 | #define MAP_ANONYMOUS MAP_ANON 5 | #endif 6 | 7 | +// from android-11/build/soong/android/config.go 8 | +/* 9 | +func (c *config) LibartImgHostBaseAddress() string { 10 | + return "0x60000000" 11 | +} 12 | + 13 | +func (c *config) LibartImgDeviceBaseAddress() string { 14 | + return "0x70000000" 15 | +} 16 | +*/ 17 | + 18 | +// device base address 19 | +#define ART_BASE_ADDRESS 0x70000000 20 | + 21 | namespace art { 22 | 23 | using android::base::StringPrintf; 24 | -------------------------------------------------------------------------------- /cmake/lib/libsparse/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libsparse) 4 | 5 | set(LIBSPARSE ${AOSP}/system/core/libsparse) 6 | 7 | set(LIBSPARSE_SRC_FILES 8 | ${LIBSPARSE}/backed_block.cpp 9 | ${LIBSPARSE}/output_file.cpp 10 | ${LIBSPARSE}/sparse.cpp 11 | ${LIBSPARSE}/sparse_crc32.cpp 12 | ${LIBSPARSE}/sparse_err.cpp 13 | ${LIBSPARSE}/sparse_read.cpp 14 | ) 15 | 16 | include_directories( 17 | ${libsparse_headers} 18 | ${libbase_headers} 19 | ) 20 | 21 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS}") 22 | 23 | add_library(sparse STATIC ${LIBSPARSE_SRC_FILES}) 24 | target_link_libraries(sparse) 25 | -------------------------------------------------------------------------------- /cmake/lib/expat/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(expat) 4 | 5 | set(EXPAT ${AOSP}/external/expat) 6 | 7 | # libexpat 8 | set(EXPAT_SRC_FILES 9 | ${EXPAT}/lib/xmlparse.c 10 | ${EXPAT}/lib/xmlrole.c 11 | ${EXPAT}/lib/xmltok.c 12 | ) 13 | 14 | 15 | include_directories( 16 | ${expat_headers} 17 | ) 18 | 19 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -Wall -Werror -Wmissing-prototypes -Wstrict-prototypes -Wno-unused-function -Wno-unused-parameter -Wno-missing-field-initializers -DHAVE_EXPAT_CONFIG_H -UWIN32_LEAN_AND_MEAN") 20 | 21 | add_library(expat STATIC ${EXPAT_SRC_FILES}) 22 | target_link_libraries(expat) 23 | 24 | -------------------------------------------------------------------------------- /cmake/platform-tools/adb/libadb_crypto/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libadb_crypto) 4 | 5 | set(CRYPTO ${AOSP}/packages/modules/adb/crypto) 6 | 7 | set(LIBADB_CRYPTO_SRC_FILES 8 | ${CRYPTO}/key.cpp 9 | ${CRYPTO}/rsa_2048_key.cpp 10 | ${CRYPTO}/x509_generator.cpp 11 | ) 12 | 13 | include_directories( 14 | ${boringssl_headers} 15 | ${libbase_headers} 16 | ${protobuf_headers} 17 | ${libcrypto_utils_headers} 18 | ${adb_headers} 19 | ) 20 | 21 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -Wextra -Wthread-safety") 22 | 23 | add_library(adb_crypto STATIC ${LIBADB_CRYPTO_SRC_FILES}) 24 | target_link_libraries(adb_crypto) 25 | -------------------------------------------------------------------------------- /patches/xmlparse.c.patch: -------------------------------------------------------------------------------- 1 | --- android-11/external/expat/lib/xmlparse.c 2020-09-15 21:08:52.186183151 +0800 2 | +++ patches/xmlparse.c 2020-09-15 21:07:57.789511065 +0800 3 | @@ -94,7 +94,8 @@ 4 | #if ! defined(HAVE_GETRANDOM) && ! defined(HAVE_SYSCALL_GETRANDOM) \ 5 | && ! defined(HAVE_ARC4RANDOM_BUF) && ! defined(HAVE_ARC4RANDOM) \ 6 | && ! defined(XML_DEV_URANDOM) && ! defined(_WIN32) \ 7 | - && ! defined(XML_POOR_ENTROPY) 8 | + && ! defined(XML_POOR_ENTROPY) \ 9 | + && ! defined(__ANDROID__) 10 | # error You do not have support for any sources of high quality entropy \ 11 | enabled. For end user security, that is probably not what you want. \ 12 | \ 13 | -------------------------------------------------------------------------------- /cmake/platform-tools/e2fsprogs/libext2_quota/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libext2_quota) 4 | 5 | set(SUPPORT ${AOSP}/external/e2fsprogs/lib/support) 6 | 7 | set(LIBEXT2_QUOTA_SRC_FILES 8 | ${SUPPORT}/dict.c 9 | ${SUPPORT}/mkquota.c 10 | ${SUPPORT}/parse_qtype.c 11 | ${SUPPORT}/plausible.c 12 | ${SUPPORT}/profile.c 13 | ${SUPPORT}/profile_helpers.c 14 | ${SUPPORT}/prof_err.c 15 | ${SUPPORT}/quotaio.c 16 | ${SUPPORT}/quotaio_tree.c 17 | ${SUPPORT}/quotaio_v2.c 18 | ) 19 | 20 | include_directories(${SUPPORT}/../) 21 | 22 | set(CMAKE_C_FLAGS "${GLOBAL_C_FLAGS}") 23 | 24 | add_library(ext2_quota STATIC ${LIBEXT2_QUOTA_SRC_FILES}) 25 | target_link_libraries(ext2_quota) 26 | -------------------------------------------------------------------------------- /cmake/lib/libcpu_features/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libcpu_features) 4 | 5 | set(CPU_FEATURES ${AOSP}/external/cpu_features) 6 | 7 | set(LIBCPU_FEATURES_SRC_FILES 8 | ${CPU_FEATURES}/src/filesystem.c 9 | ${CPU_FEATURES}/src/stack_line_reader.c 10 | ${CPU_FEATURES}/src/string_view.c 11 | ${CPU_FEATURES}/src/hwcaps.c 12 | ${CPU_FEATURES}/src/cpuinfo_aarch64.c 13 | ) 14 | 15 | include_directories( 16 | ${cpu_features_headers} 17 | ) 18 | 19 | set(CMAKE_C_FLAGS "${GLOBAL_C_FLAGS} -DSTACK_LINE_READER_BUFFER_SIZE=1024 -Wno-gnu-designator -DHAVE_DLFCN_H -DHAVE_STRONG_GETAUXVAL") 20 | 21 | add_library(cpu_features STATIC ${LIBCPU_FEATURES_SRC_FILES}) 22 | target_link_libraries(cpu_features) 23 | -------------------------------------------------------------------------------- /cmake/platform-tools/e2fsprogs/libext2_uuid/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libext2_uuid) 4 | 5 | set(EXT2UUID ${AOSP}/external/e2fsprogs/lib/uuid) 6 | 7 | set(LIBEXT2_UUID_SRC_FILES 8 | ${EXT2UUID}/clear.c 9 | ${EXT2UUID}/compare.c 10 | ${EXT2UUID}/copy.c 11 | ${EXT2UUID}/gen_uuid.c 12 | ${EXT2UUID}/isnull.c 13 | ${EXT2UUID}/pack.c 14 | ${EXT2UUID}/parse.c 15 | ${EXT2UUID}/unpack.c 16 | ${EXT2UUID}/unparse.c 17 | ${EXT2UUID}/uuid_time.c 18 | ) 19 | 20 | include_directories(${EXT2UUID}/../) 21 | 22 | set(CMAKE_C_FLAGS "${GLOBAL_C_FLAGS} -Wno-unused-function -Wno-unused-parameter") 23 | 24 | add_library(ext2_uuid STATIC ${LIBEXT2_UUID_SRC_FILES}) 25 | target_link_libraries(ext2_uuid) 26 | -------------------------------------------------------------------------------- /cmake/lib/liblp/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(liblp) 4 | 5 | set(LIBLP ${AOSP}/system/core/fs_mgr/liblp) 6 | 7 | set(LIBLP_SRC_FILES 8 | ${LIBLP}/builder.cpp 9 | ${LIBLP}/images.cpp 10 | ${LIBLP}/partition_opener.cpp 11 | ${LIBLP}/property_fetcher.cpp 12 | ${LIBLP}/reader.cpp 13 | ${LIBLP}/utility.cpp 14 | ${LIBLP}/writer.cpp 15 | ) 16 | 17 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -D_FILE_OFFSET_BITS=64") 18 | 19 | include_directories( 20 | ${liblp_headers} 21 | ${libbase_headers} 22 | ${libsparse_headers} 23 | ${libext4_utils_headers} 24 | ${libcutils_headers} 25 | ${boringssl_headers} 26 | ) 27 | 28 | add_library(lp STATIC ${LIBLP_SRC_FILES}) 29 | target_link_libraries(lp) 30 | -------------------------------------------------------------------------------- /cmake/platform-tools/adb/libadb_pairing_connection/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libadb_pairing_connection) 4 | 5 | set(PAIRING_CONNECTION ${AOSP}/packages/modules/adb/pairing_connection) 6 | 7 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -Wextra -Wthread-safety") 8 | 9 | include_directories( 10 | ${boringssl_headers} 11 | ${libbase_headers} 12 | ${libcutils_headers} 13 | ${protobuf_headers} 14 | ${adb_headers} 15 | ${PAIRING_CONNECTION}/internal 16 | ) 17 | 18 | add_library(adb_pairing_connection STATIC ${PAIRING_CONNECTION}/pairing_connection.cpp) 19 | target_link_libraries(adb_pairing_connection) 20 | 21 | add_library(adb_pairing_server STATIC ${PAIRING_CONNECTION}/pairing_server.cpp) 22 | target_link_libraries(adb_pairing_server) 23 | -------------------------------------------------------------------------------- /cmake/platform-tools/etc1tool/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(etc1tool) 4 | 5 | set(ETC1TOOL ${AOSP}/development/tools/etc1tool) 6 | 7 | set(LIBETC1 ${AOSP}/frameworks/native/opengl/libs/ETC1) 8 | 9 | set(ETC1TOOL_SRC_FILES ${ETC1TOOL}/etc1tool.cpp) 10 | 11 | set(LIBETC1_SRC_FILES ${LIBETC1}/etc1.cpp) 12 | 13 | 14 | include_directories( 15 | ${etc1tool_headers} 16 | ${libpng_headers} 17 | ) 18 | 19 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS}") 20 | set(CMAKE_EXE_LINKER_FLAGS "-static") 21 | 22 | add_library(ETC1 STATIC ${LIBETC1_SRC_FILES}) 23 | target_link_libraries(ETC1) 24 | 25 | add_executable(etc1tool ${ETC1TOOL_SRC_FILES}) 26 | target_link_libraries(etc1tool 27 | expat 28 | png 29 | ETC1 30 | z 31 | c++ 32 | c++abi 33 | -ldl 34 | ) 35 | -------------------------------------------------------------------------------- /cmake/build-tools/dexdump/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(dexdump) 4 | 5 | set(DEXDUMP ${AOSP}/art/dexdump) 6 | 7 | set(DEXDUMP_SRC_FILES 8 | ${DEXDUMP}/dexdump_cfg.cc 9 | ${DEXDUMP}/dexdump_main.cc 10 | ${DEXDUMP}/dexdump.cc 11 | ) 12 | 13 | include_directories( 14 | ${libartbase_headers} 15 | ${libdexfile_headers} 16 | ${libartpalette_headers} 17 | ${liblog_headers} 18 | ${libbase_headers} 19 | ${libziparchive_headers} 20 | ) 21 | 22 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS}") 23 | 24 | set(CMAKE_EXE_LINKER_FLAGS "-static") 25 | 26 | add_executable(dexdump ${DEXDUMP_SRC_FILES}) 27 | target_link_libraries(dexdump 28 | dexfile 29 | artbase 30 | artpalette 31 | ziparchive 32 | base 33 | log 34 | z 35 | c++ 36 | c++abi 37 | m 38 | dl 39 | ) 40 | -------------------------------------------------------------------------------- /cmake/platform-tools/sqlite3/libicuuc/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libicuuc) 4 | 5 | set(LIBICUUC ${AOSP}/external/icu/icu4c/source/common) 6 | 7 | aux_source_directory(${LIBICUUC} LIBICUUC_SRC_FILES) 8 | 9 | set(CMAKE_CXX_FLAGS " \ 10 | ${GLOBAL_CXX_FLAGS} \ 11 | -D_REENTRANT \ 12 | -DU_COMMON_IMPLEMENTATION \ 13 | -O3 \ 14 | -fvisibility=hidden \ 15 | -Wall \ 16 | -Werror \ 17 | -Wno-unused-parameter \ 18 | -Wno-macro-redefined \ 19 | -Wno-missing-field-initializers \ 20 | -Wno-sign-compare \ 21 | -Wno-deprecated-declarations \ 22 | -Wno-ignored-attributes \ 23 | -DPIC \ 24 | -fPIC \ 25 | -frtti \ 26 | ") 27 | 28 | include_directories( 29 | ${LIBICUUC} 30 | ${icu_headers} 31 | ) 32 | 33 | add_library(icuuc STATIC ${LIBICUUC_SRC_FILES}) 34 | target_link_libraries(icuuc) 35 | -------------------------------------------------------------------------------- /cmake/platform-tools/e2fsprogs/libext2_blkid/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libext2_blkid) 4 | 5 | set(BLKID ${AOSP}/external/e2fsprogs/lib/blkid) 6 | 7 | set(LIBEXT2_BLKID_SRC_FILES 8 | ${BLKID}/cache.c 9 | ${BLKID}/dev.c 10 | ${BLKID}/devname.c 11 | ${BLKID}/devno.c 12 | ${BLKID}/getsize.c 13 | ${BLKID}/llseek.c 14 | ${BLKID}/probe.c 15 | ${BLKID}/read.c 16 | ${BLKID}/resolve.c 17 | ${BLKID}/save.c 18 | ${BLKID}/tag.c 19 | ${BLKID}/version.c 20 | ) 21 | 22 | set(CMAKE_C_FLAGS " \ 23 | ${GLOBAL_C_FLAGS} \ 24 | -Wno-error=attributes \ 25 | -Wno-error=pointer-sign \ 26 | -Wno-unused-parameter \ 27 | -fno-strict-aliasing \ 28 | ") 29 | 30 | include_directories(${BLKID}/../) 31 | 32 | add_library(ext2_blkid STATIC ${LIBEXT2_BLKID_SRC_FILES}) 33 | target_link_libraries(ext2_blkid) 34 | -------------------------------------------------------------------------------- /cmake/platform-tools/sqlite3/libicui18n/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libicui18n) 4 | 5 | set(I18N ${AOSP}/external/icu/icu4c/source/i18n) 6 | 7 | aux_source_directory(${I18N} LIBICUI18N_SRC_FILES) 8 | 9 | set(CMAKE_CXX_FLAGS " \ 10 | ${GLOBAL_CXX_FLAGS} \ 11 | -D_REENTRANT \ 12 | -DU_I18N_IMPLEMENTATION \ 13 | -O3 \ 14 | -fvisibility=hidden \ 15 | -Wall \ 16 | -Werror \ 17 | -Wno-unused-parameter \ 18 | -Wno-unused-const-variable \ 19 | -Wno-implicit-int-float-conversion \ 20 | -Wno-unneeded-internal-declaration \ 21 | -Wno-unreachable-code-loop-increment \ 22 | -DANDROID_LINK_SHARED_ICU4C \ 23 | -DPIC \ 24 | -fPIC \ 25 | -frtti \ 26 | ") 27 | 28 | include_directories( 29 | ${I18N} 30 | ${I18N}/../common 31 | ${icu_headers} 32 | ) 33 | 34 | add_library(icui18n STATIC ${LIBICUI18N_SRC_FILES}) 35 | target_link_libraries(icui18n) 36 | -------------------------------------------------------------------------------- /cmake/lib/libincfs/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(incfs) 4 | 5 | set(INCFS ${AOSP}/system/incremental_delivery/incfs) 6 | 7 | 8 | set(LIBINCFS_SRC_FILES 9 | ${INCFS}/incfs_ndk.c 10 | ${INCFS}/incfs.cpp 11 | ${INCFS}/MountRegistry.cpp 12 | ${INCFS}/path.cpp 13 | ) 14 | 15 | set(LIBINCFS_UTILS_SRC_FILES ${INCFS}/util/map_ptr.cpp) 16 | 17 | set(CMAKE_CXX_FLAGS " \ 18 | ${GLOBAL_CXX_FLAGS} \ 19 | -Werror \ 20 | -Wextra \ 21 | -Wno-deprecated-enum-enum-conversion \ 22 | -std=c++2a \ 23 | ") 24 | 25 | include_directories( 26 | ${incfs_headers} 27 | ${libbase_headers} 28 | ${libutils_headers} 29 | ${boringssl_headers} 30 | ${libselinux_headers} 31 | ) 32 | 33 | add_library(incfs STATIC ${LIBINCFS_SRC_FILES}) 34 | target_link_libraries(incfs) 35 | 36 | add_library(incfs_utils STATIC ${LIBINCFS_UTILS_SRC_FILES}) 37 | target_link_libraries(incfs_utils) 38 | -------------------------------------------------------------------------------- /cmake/lib/libziparchive/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libziparchive) 4 | 5 | set(LIBZIPARCHIVE ${AOSP}/system/libziparchive) 6 | 7 | set(LIBZIPARCHIVE_SRC_FILES 8 | ${LIBZIPARCHIVE}/zip_archive.cc 9 | ${LIBZIPARCHIVE}/zip_archive_stream_entry.cc 10 | ${LIBZIPARCHIVE}/zip_cd_entry_map.cc 11 | ${LIBZIPARCHIVE}/zip_writer.cc 12 | ${LIBZIPARCHIVE}/zip_error.cpp 13 | ) 14 | 15 | include_directories( 16 | ${libziparchive_headers} 17 | ${libbase_headers} 18 | ${liblog_headers} 19 | ${libutils_headers} 20 | ${zlib_headers} 21 | ${gtest_headers} 22 | ) 23 | 24 | set(CMAKE_CXX_FLAGS " \ 25 | ${GLOBAL_CXX_FLAGS} \ 26 | -DZLIB_CONST \ 27 | -Werror \ 28 | -Wno-unknown-attributes \ 29 | -D_FILE_OFFSET_BITS=64 \ 30 | -Wno-missing-field-initializers \ 31 | -Wold-style-cast \ 32 | ") 33 | 34 | add_library(ziparchive STATIC ${LIBZIPARCHIVE_SRC_FILES}) 35 | target_link_libraries(ziparchive) 36 | -------------------------------------------------------------------------------- /cmake/lib/libusb/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libusb) 4 | 5 | set(LIBUSB ${AOSP}/external/libusb) 6 | 7 | set(LIBUSB_SRC_FILES 8 | ${LIBUSB}/libusb/core.c 9 | ${LIBUSB}/libusb/descriptor.c 10 | ${LIBUSB}/libusb/hotplug.c 11 | ${LIBUSB}/libusb/io.c 12 | ${LIBUSB}/libusb/sync.c 13 | ${LIBUSB}/libusb/strerror.c 14 | ${LIBUSB}/libusb/os/linux_usbfs.c 15 | ${LIBUSB}/libusb/os/events_posix.c 16 | ${LIBUSB}/libusb/os/threads_posix.c 17 | ${LIBUSB}/libusb/os/linux_netlink.c 18 | ) 19 | 20 | set(CMAKE_C_FLAGS " \ 21 | ${GLOBAL_C_FLAGS} \ 22 | -Wall \ 23 | -Wno-error=sign-compare \ 24 | -Wno-error=switch \ 25 | -Wno-error=unused-function \ 26 | -Wno-unused-parameter \ 27 | -Wno-unused-function \ 28 | ") 29 | 30 | include_directories( 31 | ${libusb_headers} 32 | ${LIBUSB}/libusb 33 | ${LIBUSB}/libusb/os 34 | ${LIBUSB}/linux 35 | ) 36 | 37 | add_library(usb STATIC ${LIBUSB_SRC_FILES}) 38 | target_link_libraries(usb) 39 | -------------------------------------------------------------------------------- /cmake/platform-tools/e2fsprogs/mke2fs/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(mke2fs) 4 | 5 | set(MISC ${AOSP}/external/e2fsprogs/misc) 6 | 7 | set(MKE2FS_SRC_FILES 8 | ${MISC}/mke2fs.c 9 | ${MISC}/util.c 10 | ${MISC}/mk_hugefiles.c 11 | ${MISC}/default_profile.c 12 | ) 13 | 14 | set(CMAKE_C_FLAGS " \ 15 | ${GLOBAL_C_FLAGS} \ 16 | -Wno-error=format-extra-args \ 17 | -Wno-error=format \ 18 | -Wno-error=type-limits \ 19 | -Wno-format-extra-args \ 20 | ") 21 | 22 | include_directories(${MISC}/../lib) 23 | 24 | set(CMAKE_EXE_LINKER_FLAGS "-static") 25 | 26 | add_library(ext2_misc STATIC ${MISC}/create_inode.c) 27 | target_link_libraries(ext2_misc) 28 | 29 | add_executable(mke2fs ${MKE2FS_SRC_FILES}) 30 | target_link_libraries(mke2fs 31 | ext2_misc 32 | ext2_blkid 33 | ext2fs 34 | ext2_uuid 35 | ext2_e2p 36 | ext2_com_err 37 | ext2_quota 38 | sparse 39 | base 40 | z 41 | c++ 42 | c++abi 43 | -ldl 44 | ) 45 | -------------------------------------------------------------------------------- /cmake/lib/gtest/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(gtest) 4 | 5 | set(GOOGLETEST ${AOSP}/external/googletest/googletest) 6 | 7 | set(GOOGLEMOCK ${AOSP}/external/googletest/googlemock) 8 | 9 | set(CMAKE_CXX_FLAGS " \ 10 | ${GLOBAL_CXX_FLAGS} \ 11 | -Wno-unused-private-field \ 12 | -Wno-missing-field-initializers \ 13 | -Wno-sign-compare \ 14 | -Wno-unused-parameter \ 15 | -frtti \ 16 | ") 17 | 18 | include_directories( 19 | ${gtest_headers} 20 | ${GOOGLEMOCK} 21 | ${GOOGLETEST} 22 | ) 23 | 24 | # libgmock 25 | add_library(gmock STATIC ${GOOGLEMOCK}/src/gmock-all.cc) 26 | target_link_libraries(gmock) 27 | 28 | # libgmock_main 29 | add_library(gmock_main STATIC ${GOOGLEMOCK}/src/gmock_main.cc) 30 | target_link_libraries(gmock) 31 | 32 | # libgtest 33 | add_library(gtest STATIC ${GOOGLETEST}/src/gtest-all.cc) 34 | target_link_libraries(gtest) 35 | 36 | # libgtest_main 37 | add_library(gtest_main STATIC ${GOOGLETEST}/src/gtest_main.cc) 38 | target_link_libraries(gtest_main) 39 | 40 | -------------------------------------------------------------------------------- /cmake/platform-tools/e2fsprogs/libext2_e2p/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libext2_e2p) 4 | 5 | set(E2P ${AOSP}/external/e2fsprogs/lib/e2p) 6 | 7 | set(LIBEXT2_E2P_SRC_FILES 8 | ${E2P}/encoding.c 9 | ${E2P}/feature.c 10 | ${E2P}/fgetflags.c 11 | ${E2P}/fsetflags.c 12 | ${E2P}/fgetproject.c 13 | ${E2P}/fsetproject.c 14 | ${E2P}/fgetversion.c 15 | ${E2P}/fsetversion.c 16 | ${E2P}/getflags.c 17 | ${E2P}/getversion.c 18 | ${E2P}/hashstr.c 19 | ${E2P}/iod.c 20 | ${E2P}/ljs.c 21 | ${E2P}/ls.c 22 | ${E2P}/mntopts.c 23 | ${E2P}/parse_num.c 24 | ${E2P}/pe.c 25 | ${E2P}/pf.c 26 | ${E2P}/ps.c 27 | ${E2P}/setflags.c 28 | ${E2P}/setversion.c 29 | ${E2P}/uuid.c 30 | ${E2P}/ostype.c 31 | ${E2P}/percent.c 32 | ) 33 | 34 | include_directories(${E2P}/../) 35 | 36 | set(CMAKE_C_FLAGS "${GLOBAL_C_FLAGS} -Wno-error=attributes -Wno-unused-parameter") 37 | 38 | add_library(ext2_e2p STATIC ${LIBEXT2_E2P_SRC_FILES}) 39 | target_link_libraries(ext2_e2p) 40 | -------------------------------------------------------------------------------- /cmake/lib/libpng/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libpng) 4 | 5 | set(LIBPNG ${AOSP}/external/libpng) 6 | 7 | set(LIBPNG_SRC_FILES 8 | ${LIBPNG}/example.c 9 | ${LIBPNG}/pngtest.c 10 | ${LIBPNG}/png.c 11 | ${LIBPNG}/pngerror.c 12 | ${LIBPNG}/pngget.c 13 | ${LIBPNG}/pngmem.c 14 | ${LIBPNG}/pngpread.c 15 | ${LIBPNG}/pngread.c 16 | ${LIBPNG}/pngrio.c 17 | ${LIBPNG}/pngrtran.c 18 | ${LIBPNG}/pngrutil.c 19 | ${LIBPNG}/pngset.c 20 | ${LIBPNG}/pngtrans.c 21 | ${LIBPNG}/pngwio.c 22 | ${LIBPNG}/pngwrite.c 23 | ${LIBPNG}/pngwtran.c 24 | ${LIBPNG}/pngwutil.c 25 | ${LIBPNG}/arm/arm_init.c 26 | ${LIBPNG}/arm/filter_neon.S 27 | ${LIBPNG}/arm/filter_neon_intrinsics.c 28 | ${LIBPNG}/arm/palette_neon_intrinsics.c 29 | ) 30 | 31 | include_directories( 32 | ${libpng_headers} 33 | ${zlib_headers} 34 | ) 35 | 36 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -Wall -Werror -Wno-unused-parameter") 37 | 38 | add_library(png STATIC ${LIBPNG_SRC_FILES}) 39 | target_link_libraries(png) 40 | -------------------------------------------------------------------------------- /cmake/platform-tools/e2fsprogs/e2fsdroid/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(e2fsdroid) 4 | 5 | set(E2FSDROID ${AOSP}/external/e2fsprogs/contrib/android) 6 | 7 | set(E2FSDROID_SRC_FILES 8 | ${E2FSDROID}/e2fsdroid.c 9 | ${E2FSDROID}/block_range.c 10 | ${E2FSDROID}/fsmap.c 11 | ${E2FSDROID}/block_list.c 12 | ${E2FSDROID}/base_fs.c 13 | ${E2FSDROID}/perms.c 14 | ${E2FSDROID}/basefs_allocator.c 15 | ) 16 | 17 | include_directories( 18 | ${libselinux_headers} 19 | ${libcutils_headers} 20 | ${E2FSDROID}/../../lib 21 | ${E2FSDROID}/../../lib/ext2fs 22 | ${E2FSDROID}/../../misc 23 | ) 24 | 25 | set(CMAKE_C_FLAGS "${GLOBAL_C_FLAGS}") 26 | set(CMAKE_EXE_LINKER_FLAGS "-static") 27 | 28 | add_executable(e2fsdroid ${E2FSDROID_SRC_FILES}) 29 | target_link_libraries(e2fsdroid 30 | ext2_misc 31 | ext2fs 32 | ext2_com_err 33 | selinux 34 | sepol 35 | sparse 36 | pcre2 37 | packagelistparser 38 | cutils 39 | base 40 | log 41 | z 42 | c++ 43 | c++abi 44 | -ldl 45 | ) 46 | -------------------------------------------------------------------------------- /cmake/lib/libbase/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libbase) 4 | 5 | set(LIBBASE ${AOSP}/system/libbase) 6 | 7 | set(LIBBASE_SRC_FILES 8 | ${LIBBASE}/abi_compatibility.cpp 9 | ${LIBBASE}/chrono_utils.cpp 10 | ${LIBBASE}/cmsg.cpp 11 | ${LIBBASE}/file.cpp 12 | ${LIBBASE}/logging.cpp 13 | ${LIBBASE}/mapped_file.cpp 14 | ${LIBBASE}/parsebool.cpp 15 | ${LIBBASE}/parsenetaddress.cpp 16 | ${LIBBASE}/process.cpp 17 | ${LIBBASE}/properties.cpp 18 | ${LIBBASE}/stringprintf.cpp 19 | ${LIBBASE}/strings.cpp 20 | ${LIBBASE}/threads.cpp 21 | ${LIBBASE}/test_utils.cpp 22 | ${LIBBASE}/errors_unix.cpp 23 | ) 24 | 25 | 26 | include_directories( 27 | ${liblog_headers} 28 | ${libbase_headers} 29 | ) 30 | 31 | set(CMAKE_C_FLAGS " \ 32 | -Wall \ 33 | -Werror \ 34 | -Wextra \ 35 | -D_FILE_OFFSET_BITS=64 \ 36 | ") 37 | 38 | set(CMAKE_CXX_FLAGS " \ 39 | ${GLOBAL_CXX_FLAGS} \ 40 | -Wexit-time-destructors \ 41 | ") 42 | 43 | add_library(base STATIC ${LIBBASE_SRC_FILES}) 44 | target_link_libraries(base) 45 | -------------------------------------------------------------------------------- /cmake/lib/liblog/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(liblog) 4 | 5 | set(LOG ${AOSP}/system/logging/liblog) 6 | 7 | # liblog src files 8 | set(LIBLOG_SRC_FILES 9 | ${LOG}/log_event_list.cpp 10 | ${LOG}/log_event_write.cpp 11 | ${LOG}/logger_name.cpp 12 | ${LOG}/logger_read.cpp 13 | ${LOG}/logger_write.cpp 14 | ${LOG}/logprint.cpp 15 | ${LOG}/event_tag_map.cpp 16 | ${LOG}/log_time.cpp 17 | ${LOG}/properties.cpp 18 | ${LOG}/pmsg_reader.cpp 19 | ${LOG}/pmsg_writer.cpp 20 | ${LOG}/logd_reader.cpp 21 | ${LOG}/logd_writer.cpp 22 | ) 23 | 24 | include_directories( 25 | ${liblog_headers} 26 | ${libbase_headers} 27 | ${libutils_headers} 28 | ${libcutils_headers} 29 | ${libsystem_headers} 30 | ) 31 | 32 | set(CMAKE_CXX_FLAGS " \ 33 | ${GLOBAL_CXX_FLAGS} \ 34 | -Wall \ 35 | -Werror \ 36 | -Wextra \ 37 | -Wno-c99-designator \ 38 | -DLIBLOG_LOG_TAG=1006 \ 39 | -DSNET_EVENT_LOG_TAG=1397638484 \ 40 | ") 41 | 42 | add_library(log STATIC ${LIBLOG_SRC_FILES}) 43 | 44 | target_link_libraries(log) 45 | 46 | -------------------------------------------------------------------------------- /cmake/platform-tools/adb/deployagent/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(deployagent) 4 | 5 | find_package(Java REQUIRED) 6 | 7 | include(UseJava) 8 | 9 | set(DEPLOYAGENT ${AOSP}/packages/modules/adb/fastdeploy/deployagent) 10 | 11 | set(DEPLOYAGENT_SRC_FILES 12 | ${DEPLOYAGENT}/src/com/android/fastdeploy/ApkArchive.java 13 | ${DEPLOYAGENT}/src/com/android/fastdeploy/DeployAgent.java 14 | ${DEPLOYAGENT}/src/com/android/fastdeploy/PatchFormatException.java 15 | ${DEPLOYAGENT}/src/com/android/fastdeploy/PatchUtils.java 16 | ${AOSP}/external/protobuf/java/core/src/main/java/com/google/protobuf/ByteOutput.java 17 | ) 18 | 19 | set(CMAKE_JAVA_COMPILER_FLAGS " \ 20 | -encoding UTF-8 \ 21 | -source 1.8 \ 22 | -taeget 1.8 \ 23 | -classpath 24 | ") 25 | 26 | add_jar(deployagent ${DEPLOYAGENT_SRC_FILES}) 27 | 28 | get_target_property(jarFile deployagent JAR_FILE) 29 | get_target_property(classDir deployagent CLASSDIR) 30 | 31 | message(STATUS "Jar file ${jarFile}") 32 | message(STATUS "Class compiled to ${classDir}") 33 | 34 | add_test(NAME TestDeployagent COMMAND ${Java_JAVA_EXECUTABLE} -cp ${jarFile} deployagent) 35 | 36 | -------------------------------------------------------------------------------- /cmake/build-tools/zipalign/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(zipalign) 4 | 5 | set(ZIPALIGN ${AOSP}/build/tools/zipalign) 6 | 7 | set(LIBZIPALIGN_SRC_FILES 8 | ${ZIPALIGN}/ZipAlign.cpp 9 | ${ZIPALIGN}/ZipEntry.cpp 10 | ${ZIPALIGN}/ZipFile.cpp 11 | ) 12 | 13 | set(ZIPALIGN_SRC_FILES 14 | ${ZIPALIGN}/ZipAlignMain.cpp 15 | ) 16 | 17 | include_directories( 18 | ${zlib_headers} 19 | ${libzopfli_headers} 20 | ${libutils_headers} 21 | ${libcutils_headers} 22 | ${androidfw_headers} 23 | ${liblog_headers} 24 | ${libbase_headers} 25 | ${libziparchive_headers} 26 | ${ZIPALIGN}/include 27 | ) 28 | 29 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS}") 30 | 31 | # static linking 32 | set(CMAKE_EXE_LINKER_FLAGS "-static") 33 | 34 | add_library(zipalign_static STATIC ${LIBZIPALIGN_SRC_FILES}) 35 | target_link_libraries(zipalign_static) 36 | 37 | add_executable(zipalign ${ZIPALIGN_SRC_FILES}) 38 | target_link_libraries(zipalign 39 | zipalign_static 40 | utils 41 | cutils 42 | ziparchive 43 | base 44 | zopfli 45 | cpu_features 46 | log 47 | z 48 | c++ 49 | c++abi 50 | m 51 | dl 52 | ) 53 | -------------------------------------------------------------------------------- /cmake/lib/mdnsresponder/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(mdnsresponder) 4 | 5 | set(MDNSRESPONDER ${AOSP}/external/mdnsresponder) 6 | 7 | set(LIBMDNSSD_SRC_FILES 8 | ${MDNSRESPONDER}/mDNSShared/dnssd_clientlib.c 9 | ${MDNSRESPONDER}/mDNSShared/dnssd_clientstub.c 10 | ${MDNSRESPONDER}/mDNSShared/dnssd_ipc.c 11 | ) 12 | 13 | set(CMAKE_C_FLAGS " \ 14 | -O2 \ 15 | -g \ 16 | -fno-strict-aliasing \ 17 | -fwrapv \ 18 | -D_GNU_SOURCE \ 19 | -DHAVE_IPV6 \ 20 | -DNOT_HAVE_SA_LEN \ 21 | -DPLATFORM_NO_RLIMIT \ 22 | -W \ 23 | -Wall \ 24 | -Wextra \ 25 | -Wno-address-of-packed-member \ 26 | -Wno-array-bounds \ 27 | -Wno-pointer-sign \ 28 | -Wno-unused \ 29 | -Wno-unused-const-variable \ 30 | -Wno-unused-parameter \ 31 | -Werror=implicit-function-declaration \ 32 | -DTARGET_OS_LINUX \ 33 | -DHAVE_LINUX \ 34 | -DUSES_NETLINK \ 35 | -Werror \ 36 | ") 37 | 38 | add_definitions(-DMDNS_UDS_SERVERPATH="/dev/socket/mdnsd") 39 | add_definitions(-DMDNS_USERNAME="mdnsr") 40 | add_definitions(-DMDNS_DEBUGMSGS=0) 41 | 42 | add_library(mdnssd STATIC ${LIBMDNSSD_SRC_FILES}) 43 | target_link_libraries(mdnssd) 44 | -------------------------------------------------------------------------------- /cmake/lib/libprocessgroup/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libprocessgroup) 4 | 5 | set(LIBPROCESSGROUP ${AOSP}/system/core/libprocessgroup) 6 | 7 | set(LIBPROCESSGROUP_SRC_FILES 8 | ${LIBPROCESSGROUP}/cgroup_map.cpp 9 | ${LIBPROCESSGROUP}/processgroup.cpp 10 | ${LIBPROCESSGROUP}/sched_policy.cpp 11 | ${LIBPROCESSGROUP}/task_profiles.cpp 12 | ) 13 | 14 | set(LIBCGROUPRC_FORMAT_SRC_FILES 15 | ${LIBPROCESSGROUP}/cgrouprc_format/cgroup_controller.cpp 16 | ) 17 | 18 | set(LIBCGROUPRC_SRC_FILES 19 | ${LIBPROCESSGROUP}/cgrouprc/cgroup_controller.cpp 20 | ${LIBPROCESSGROUP}/cgrouprc/cgroup_file.cpp 21 | ) 22 | 23 | include_directories( 24 | ${libprocessgroup_headers} 25 | ${libcutils_headers} 26 | ${libbase_headers} 27 | ${libjsoncpp_headers} 28 | ) 29 | 30 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -Wexit-time-destructors") 31 | 32 | add_library(cgrouprc_format STATIC ${LIBCGROUPRC_FORMAT_SRC_FILES}) 33 | target_link_libraries(cgrouprc_format) 34 | 35 | add_library(cgrouprc STATIC ${LIBCGROUPRC_SRC_FILES}) 36 | target_link_libraries(cgrouprc) 37 | 38 | add_library(processgroup STATIC ${LIBPROCESSGROUP_SRC_FILES}) 39 | target_link_libraries(processgroup) 40 | 41 | 42 | -------------------------------------------------------------------------------- /cmake/lib/libcxxabi/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libcxxabi) 4 | 5 | set(LIBCXXABI ${AOSP}/external/libcxxabi) 6 | 7 | # libcxxabi src files 8 | set(LIBCXXABI_SRC_FILES 9 | ${LIBCXXABI}/src/abort_message.cpp 10 | ${LIBCXXABI}/src/cxa_aux_runtime.cpp 11 | ${LIBCXXABI}/src/cxa_default_handlers.cpp 12 | ${LIBCXXABI}/src/cxa_demangle.cpp 13 | ${LIBCXXABI}/src/cxa_exception.cpp 14 | ${LIBCXXABI}/src/cxa_exception_storage.cpp 15 | ${LIBCXXABI}/src/cxa_guard.cpp 16 | ${LIBCXXABI}/src/cxa_handlers.cpp 17 | ${LIBCXXABI}/src/cxa_personality.cpp 18 | ${LIBCXXABI}/src/cxa_thread_atexit.cpp 19 | ${LIBCXXABI}/src/cxa_unexpected.cpp 20 | ${LIBCXXABI}/src/cxa_vector.cpp 21 | ${LIBCXXABI}/src/cxa_virtual.cpp 22 | ${LIBCXXABI}/src/fallback_malloc.cpp 23 | ${LIBCXXABI}/src/private_typeinfo.cpp 24 | ${LIBCXXABI}/src/stdlib_exception.cpp 25 | ${LIBCXXABI}/src/stdlib_new_delete.cpp 26 | ${LIBCXXABI}/src/stdlib_stdexcept.cpp 27 | ${LIBCXXABI}/src/stdlib_typeinfo.cpp 28 | ) 29 | 30 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -std=c++14 -frtti -fexceptions -Wextra -Wno-unused-function -Wno-implicit-fallthrough -DHAVE___CXA_THREAD_ATEXIT_IMPL") 31 | 32 | add_library(c++abi ${LIBCXXABI_SRC_FILES}) 33 | 34 | target_link_libraries(c++abi) 35 | -------------------------------------------------------------------------------- /cmake/lib/libdexfile/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libdexfile) 4 | 5 | set(LIBDEXFILE ${AOSP}/art/libdexfile) 6 | 7 | set(LIBDEXFILE_SRC_FILES 8 | ${LIBDEXFILE}/dex/art_dex_file_loader.cc 9 | ${LIBDEXFILE}/dex/compact_dex_file.cc 10 | ${LIBDEXFILE}/dex/compact_offset_table.cc 11 | ${LIBDEXFILE}/dex/descriptors_names.cc 12 | ${LIBDEXFILE}/dex/dex_file.cc 13 | ${LIBDEXFILE}/dex/dex_file_exception_helpers.cc 14 | ${LIBDEXFILE}/dex/dex_file_layout.cc 15 | ${LIBDEXFILE}/dex/dex_file_loader.cc 16 | ${LIBDEXFILE}/dex/dex_file_tracking_registrar.cc 17 | ${LIBDEXFILE}/dex/dex_file_verifier.cc 18 | ${LIBDEXFILE}/dex/dex_instruction.cc 19 | ${LIBDEXFILE}/dex/modifiers.cc 20 | ${LIBDEXFILE}/dex/primitive.cc 21 | ${LIBDEXFILE}/dex/signature.cc 22 | ${LIBDEXFILE}/dex/standard_dex_file.cc 23 | ${LIBDEXFILE}/dex/type_lookup_table.cc 24 | ${LIBDEXFILE}/dex/utf.cc 25 | ) 26 | 27 | include_directories( 28 | ${libbase_headers} 29 | ${liblog_headers} 30 | ${libartbase_headers} 31 | ${libdexfile_headers} 32 | ${libartpalette_headers} 33 | ${libziparchive_headers} 34 | ) 35 | 36 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS}") 37 | 38 | add_library(dexfile STATIC ${LIBDEXFILE_SRC_FILES}) 39 | target_link_libraries(dexfile) 40 | -------------------------------------------------------------------------------- /cmake/lib/libzopfli/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libzopfli) 4 | 5 | set(LIBZOPFLI ${AOSP}/external/zopfli) 6 | 7 | set(LIBZOPFLI_SRC_FILES 8 | ${LIBZOPFLI}/src/zopfli/blocksplitter.c 9 | ${LIBZOPFLI}/src/zopfli/cache.c 10 | ${LIBZOPFLI}/src/zopfli/deflate.c 11 | ${LIBZOPFLI}/src/zopfli/gzip_container.c 12 | ${LIBZOPFLI}/src/zopfli/hash.c 13 | ${LIBZOPFLI}/src/zopfli/katajainen.c 14 | ${LIBZOPFLI}/src/zopfli/lz77.c 15 | ${LIBZOPFLI}/src/zopfli/squeeze.c 16 | ${LIBZOPFLI}/src/zopfli/tree.c 17 | ${LIBZOPFLI}/src/zopfli/util.c 18 | ${LIBZOPFLI}/src/zopfli/zlib_container.c 19 | ${LIBZOPFLI}/src/zopfli/zopfli_lib.c 20 | ) 21 | 22 | set(ZOPFLIPNG_SRC_FILES 23 | ${LIBZOPFLI}/src/zopflipng/lodepng/lodepng.cpp 24 | ${LIBZOPFLI}/src/zopflipng/lodepng/lodepng_util.cpp 25 | ${LIBZOPFLI}/src/zopflipng/zopflipng_lib.cc 26 | ${LIBZOPFLI}/src/zopflipng/zopflipng_bin.cc 27 | ) 28 | 29 | include_directories( 30 | ${libzopfli_headers} 31 | ) 32 | 33 | set(CMAKE_C_FLAGS "${GLOBAL_C_FLAGS} -O2 -Werror -Wno-unused-parameter") 34 | 35 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -O2 -Werror -Wno-unused-parameter") 36 | 37 | add_library(zopfli STATIC ${LIBZOPFLI_SRC_FILES}) 38 | target_link_libraries(zopfli) 39 | 40 | add_library(zopflipng STATIC ${ZOPFLIPNG_SRC_FILES}) 41 | target_link_libraries(zopflipng) 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /cmake/lib/libutils/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libutils) 4 | 5 | set(LIBUTILS ${AOSP}/system/core/libutils) 6 | 7 | set(LIBUTILS_SRC_FILES 8 | ${LIBUTILS}/Errors.cpp 9 | ${LIBUTILS}/FileMap.cpp 10 | ${LIBUTILS}/JenkinsHash.cpp 11 | ${LIBUTILS}/NativeHandle.cpp 12 | ${LIBUTILS}/Printer.cpp 13 | ${LIBUTILS}/RefBase.cpp 14 | ${LIBUTILS}/SharedBuffer.cpp 15 | ${LIBUTILS}/StopWatch.cpp 16 | ${LIBUTILS}/String8.cpp 17 | ${LIBUTILS}/String16.cpp 18 | ${LIBUTILS}/StrongPointer.cpp 19 | ${LIBUTILS}/SystemClock.cpp 20 | ${LIBUTILS}/Threads.cpp 21 | ${LIBUTILS}/Timers.cpp 22 | ${LIBUTILS}/Tokenizer.cpp 23 | ${LIBUTILS}/Unicode.cpp 24 | ${LIBUTILS}/VectorImpl.cpp 25 | ${LIBUTILS}/misc.cpp 26 | ${LIBUTILS}/Trace.cpp 27 | ${LIBUTILS}/Looper.cpp 28 | ) 29 | 30 | include_directories( 31 | ${libutils_headers} 32 | ${liblog_headers} 33 | ${libcutils_headers} 34 | ${libbase_headers} 35 | ${libbacktrace_headers} 36 | ${libsystem_headers} 37 | ${libprocessgroup_headers} 38 | ${libvndksupport_headers} 39 | ) 40 | 41 | set(CMAKE_CXX_FLAGS " \ 42 | ${GLOBAL_CXX_FLAGS} \ 43 | -Wall \ 44 | -Werror \ 45 | -fvisibility=protected \ 46 | ") 47 | 48 | add_library(utilscallstack STATIC ${LIBUTILS}/CallStack.cpp) 49 | target_link_libraries(utilscallstack) 50 | 51 | add_library(utils STATIC ${LIBUTILS_SRC_FILES}) 52 | target_link_libraries(utils) 53 | -------------------------------------------------------------------------------- /cmake/platform-tools/adb/libfastdeploy_host/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libfastdeploy_host) 4 | 5 | set(FASTDEPLOY ${AOSP}/packages/modules/adb/fastdeploy) 6 | 7 | set(LIBFASTDEPLOY_SRC_FILES 8 | ${FASTDEPLOY}/deploypatchgenerator/apk_archive.cpp 9 | ${FASTDEPLOY}/deploypatchgenerator/deploy_patch_generator.cpp 10 | ${FASTDEPLOY}/deploypatchgenerator/patch_utils.cpp 11 | ) 12 | 13 | # check ApkEntry.pb.h 14 | if (EXISTS ${FASTDEPLOY}/proto/packages/modules/adb/fastdeploy/proto/ApkEntry.pb.cc) 15 | list(APPEND LIBFASTDEPLOY_SRC_FILES ${FASTDEPLOY}/proto/packages/modules/adb/fastdeploy/proto/ApkEntry.pb.cc) 16 | else () 17 | # generate ApkEntry.pb.h and ApkEntry.pb.cc 18 | execute_process( 19 | COMMAND ${CMAKE_BINARY_DIR}/cmake/lib/protobuf/aprotoc 20 | packages/modules/adb/fastdeploy/proto/ApkEntry.proto 21 | --cpp_out=packages/modules/adb/fastdeploy/proto 22 | WORKING_DIRECTORY ${AOSP} 23 | ) 24 | endif () 25 | 26 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -Wno-invalid-constexpr") 27 | 28 | include_directories( 29 | ${libziparchive_headers} 30 | ${libbase_headers} 31 | ${libcutils_headers} 32 | ${boringssl_headers} 33 | ${protobuf_headers} 34 | ${FASTDEPLOY}/../ 35 | ${FASTDEPLOY}/proto 36 | ${FASTDEPLOY}/proto/packages/modules/adb 37 | ) 38 | 39 | add_library(fastdeploy_host STATIC ${LIBFASTDEPLOY_SRC_FILES}) 40 | target_link_libraries(fastdeploy_host) 41 | -------------------------------------------------------------------------------- /cmake/lib/zlib/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(zlib) 4 | 5 | set(ZLIB ${AOSP}/external/zlib) 6 | 7 | set(ZLIB_SRC_FILES 8 | ${ZLIB}/adler32_simd.c 9 | ${ZLIB}/cpu_features.c 10 | ${ZLIB}/crc32_simd.c 11 | ${ZLIB}/adler32.c 12 | ${ZLIB}/compress.c 13 | ${ZLIB}/crc32.c 14 | ${ZLIB}/deflate.c 15 | ${ZLIB}/gzclose.c 16 | ${ZLIB}/gzlib.c 17 | ${ZLIB}/gzread.c 18 | ${ZLIB}/gzwrite.c 19 | ${ZLIB}/infback.c 20 | ${ZLIB}/inffast.c 21 | ${ZLIB}/inflate.c 22 | ${ZLIB}/inftrees.c 23 | ${ZLIB}/trees.c 24 | ${ZLIB}/uncompr.c 25 | ${ZLIB}/zutil.c 26 | ) 27 | 28 | # aosp/external/angle/third_party/android_ndk/sources/android/cpufeatures/cpu-features.c 29 | list(APPEND ZLIB_SRC_FILES ${AOSP}/external/angle/third_party/android_ndk/sources/android/cpufeatures/cpu-features.c) 30 | 31 | include_directories( 32 | ${zlib_headers} 33 | ${cpu_features_headers} 34 | ${AOSP}/external/angle/third_party/android_ndk/sources/android/cpufeatures 35 | ) 36 | 37 | set(CMAKE_C_FLAGS " \ 38 | ${GLOBAL_C_FLAGS} \ 39 | -O3 \ 40 | -DHAVE_HIDDEN \ 41 | -DZLIB_CONST \ 42 | -Wall \ 43 | -Werror \ 44 | -Wno-unused-variable \ 45 | -Wno-unused-function \ 46 | -DARMV8_OS_ANDROID \ 47 | -DARMV8_OS_LINUX \ 48 | -DADLER32_SIMD_NEON \ 49 | -DINFLATE_CHUNK_SIMD_NEON \ 50 | -DCRC32_ARMV8_CRC32 \ 51 | -DINFLATE_CHUNK_READ_64LE \ 52 | ") 53 | 54 | add_library(z STATIC ${ZLIB_SRC_FILES}) 55 | target_link_libraries(z) 56 | -------------------------------------------------------------------------------- /cmake/lib/boringssl/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # check git 4 | if [ ! -x "$(command -v git)" ]; then 5 | echo 'Warnning: git is not installed.' 6 | pkg install git 1>&1 7 | fi 8 | 9 | # check ninja 10 | if [ ! -x "$(command -v ninja)" ]; then 11 | echo 'Warnning: ninja is not installed.' 12 | pkg install ninja 1>&1 13 | fi 14 | 15 | # check perl 16 | if [ ! -x "$(command -v perl)" ]; then 17 | echo 'Warnning: perl is not installed.' 18 | pkg install perl 1>&1 19 | fi 20 | 21 | # check go 22 | if [ ! -x "$(command -v go)" ]; then 23 | echo 'Warnning: golang is not installed.' 24 | pkg install golang 1>&1 25 | fi 26 | 27 | # check boringssl 28 | if [ ! -f "boringssl/CMakeLists.txt" ];then 29 | git clone https://github.com/google/boringssl 1>&1 30 | fi 31 | 32 | # check build directory 33 | if [ ! -d "build" ];then 34 | mkdir build && cd build 35 | else 36 | cd build 37 | fi 38 | 39 | # set ndk toolchain 40 | # /path/to/android-ndk-r21d/toolchains/llvm/prebuilt/linux-aarch64 41 | TOOLCHAIN=$HOME/android/android-ndk-r22/toolchains/llvm/prebuilt/linux-aarch64 42 | 43 | # check toolchain 44 | if [ ! -d "$TOOLCHAIN" ];then 45 | echo "The toolchain cannot be found, please set the toolchain path correctly." 46 | exit 1 47 | fi 48 | 49 | cmake -G 'Ninja' \ 50 | -DCMAKE_C_COMPILER=$TOOLCHAIN/bin/aarch64-linux-android30-clang \ 51 | -DCMAKE_CXX_COMPILER=$TOOLCHAIN/bin/aarch64-linux-android30-clang++ \ 52 | -DCMAKE_SYSROOT=$TOOLCHAIN/sysroot \ 53 | -DCMAKE_BUILD_TYPE=Release \ 54 | ../boringssl 1>&1 55 | 56 | ninja -j16 1>&1 57 | 58 | -------------------------------------------------------------------------------- /cmake/lib/libpcre2/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libpcre2) 4 | 5 | set(PCRE ${AOSP}/external/pcre) 6 | 7 | set(LIBPCRE2_SRC_FILES 8 | ${PCRE}/dist2/src/pcre2_auto_possess.c 9 | ${PCRE}/dist2/src/pcre2_compile.c 10 | ${PCRE}/dist2/src/pcre2_config.c 11 | ${PCRE}/dist2/src/pcre2_context.c 12 | ${PCRE}/dist2/src/pcre2_convert.c 13 | ${PCRE}/dist2/src/pcre2_dfa_match.c 14 | ${PCRE}/dist2/src/pcre2_error.c 15 | ${PCRE}/dist2/src/pcre2_extuni.c 16 | ${PCRE}/dist2/src/pcre2_find_bracket.c 17 | ${PCRE}/dist2/src/pcre2_maketables.c 18 | ${PCRE}/dist2/src/pcre2_match.c 19 | ${PCRE}/dist2/src/pcre2_match_data.c 20 | ${PCRE}/dist2/src/pcre2_jit_compile.c 21 | ${PCRE}/dist2/src/pcre2_newline.c 22 | ${PCRE}/dist2/src/pcre2_ord2utf.c 23 | ${PCRE}/dist2/src/pcre2_pattern_info.c 24 | ${PCRE}/dist2/src/pcre2_script_run.c 25 | ${PCRE}/dist2/src/pcre2_serialize.c 26 | ${PCRE}/dist2/src/pcre2_string_utils.c 27 | ${PCRE}/dist2/src/pcre2_study.c 28 | ${PCRE}/dist2/src/pcre2_substitute.c 29 | ${PCRE}/dist2/src/pcre2_substring.c 30 | ${PCRE}/dist2/src/pcre2_tables.c 31 | ${PCRE}/dist2/src/pcre2_ucd.c 32 | ${PCRE}/dist2/src/pcre2_valid_utf.c 33 | ${PCRE}/dist2/src/pcre2_xclass.c 34 | ${PCRE}/dist2/src/pcre2_chartables.c 35 | ) 36 | 37 | set(CMAKE_C_FLAGS "${GLOBAL_C_FLAGS} -DHAVE_CONFIG_H") 38 | 39 | include_directories( 40 | ${libpcre2_headers} 41 | ${PCRE}/include_internal 42 | ) 43 | 44 | add_library(pcre2 STATIC ${LIBPCRE2_SRC_FILES}) 45 | target_link_libraries(pcre2) 46 | -------------------------------------------------------------------------------- /cmake/build-tools/split-select/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(split-select) 4 | 5 | set(SPLIT-SELECT ${AOSP}/frameworks/base/tools/split-select) 6 | 7 | set(LIBSPLIT-SELECT_SRC_FILES 8 | ${SPLIT-SELECT}/Abi.cpp 9 | ${SPLIT-SELECT}/Grouper.cpp 10 | ${SPLIT-SELECT}/Rule.cpp 11 | ${SPLIT-SELECT}/RuleGenerator.cpp 12 | ${SPLIT-SELECT}/SplitDescription.cpp 13 | ${SPLIT-SELECT}/SplitSelector.cpp 14 | ) 15 | 16 | include_directories( 17 | ${aapt_headers} 18 | ${libutils_headers} 19 | ${libcutils_headers} 20 | ${libbase_headers} 21 | ${liblog_headers} 22 | ${androidfw_headers} 23 | ${libsystem_headers} 24 | ${incfs_headers} 25 | ${fmtlib_headers} 26 | ${SPLIT-SELECT}/../ 27 | ) 28 | 29 | 30 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -D_DARWIN_UNLIMITED_STREAMS") 31 | set(CMAKE_EXE_LINKER_FLAGS "-static") 32 | 33 | add_library(split-select_static STATIC ${LIBSPLIT-SELECT_SRC_FILES}) 34 | target_link_libraries(split-select_static) 35 | 36 | add_executable(split-select ${SPLIT-SELECT}/Main.cpp) 37 | target_link_libraries(split-select 38 | split-select_static 39 | aapt_static 40 | androidfw 41 | incfs_utils 42 | incfs 43 | fmt 44 | selinux 45 | pcre2 46 | sepol 47 | packagelistparser 48 | crypto 49 | ssl 50 | utils 51 | processgroup 52 | cgrouprc 53 | cgrouprc_format 54 | jsoncpp 55 | log 56 | cutils 57 | expat 58 | ziparchive 59 | png 60 | base 61 | z 62 | c++ 63 | c++abi 64 | m 65 | dl 66 | ) 67 | 68 | -------------------------------------------------------------------------------- /cmake/lib/androidfw/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(androidfw) 4 | 5 | 6 | set(ANDROIDFW ${AOSP}/frameworks/base/libs/androidfw) 7 | 8 | 9 | set(ANDROIDFW_SRC_FILES 10 | ${ANDROIDFW}/ApkAssets.cpp 11 | ${ANDROIDFW}/Asset.cpp 12 | ${ANDROIDFW}/AssetDir.cpp 13 | ${ANDROIDFW}/AssetManager.cpp 14 | ${ANDROIDFW}/AssetManager2.cpp 15 | ${ANDROIDFW}/AttributeResolution.cpp 16 | ${ANDROIDFW}/ChunkIterator.cpp 17 | ${ANDROIDFW}/ConfigDescription.cpp 18 | ${ANDROIDFW}/Idmap.cpp 19 | ${ANDROIDFW}/LoadedArsc.cpp 20 | ${ANDROIDFW}/Locale.cpp 21 | ${ANDROIDFW}/LocaleData.cpp 22 | ${ANDROIDFW}/misc.cpp 23 | ${ANDROIDFW}/ObbFile.cpp 24 | ${ANDROIDFW}/PosixUtils.cpp 25 | ${ANDROIDFW}/ResourceTypes.cpp 26 | ${ANDROIDFW}/ResourceUtils.cpp 27 | ${ANDROIDFW}/StreamingZipInflater.cpp 28 | ${ANDROIDFW}/TypeWrappers.cpp 29 | ${ANDROIDFW}/Util.cpp 30 | ${ANDROIDFW}/ZipFileRO.cpp 31 | ${ANDROIDFW}/ZipUtils.cpp 32 | ) 33 | 34 | include_directories( 35 | ${androidfw_headers} 36 | ${libbase_headers} 37 | ${libziparchive_headers} 38 | ${libc_headers} 39 | ${libutils_headers} 40 | ${libcutils_headers} 41 | ${liblog_headers} 42 | ${libsystem_headers} 43 | ${native_headers} 44 | ${zlib_headers} 45 | ${incfs_headers} 46 | ${fmtlib_headers} 47 | ) 48 | 49 | set(CMAKE_C_FLAGS "${GLOBAL_CXX_FLAGS} -DSTATIC_ANDROIDFW_FOR_TOOLS") 50 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -DSTATIC_ANDROIDFW_FOR_TOOLS") 51 | 52 | add_library(androidfw STATIC ${ANDROIDFW_SRC_FILES}) 53 | target_link_libraries(androidfw) 54 | -------------------------------------------------------------------------------- /cmake/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(cmake) 4 | 5 | enable_language(ASM) 6 | 7 | set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) 8 | 9 | # set cflags and cxxflags 10 | set(GLOBAL_C_FLAGS " \ 11 | -fPIC \ 12 | -Wall \ 13 | -Wno-unused \ 14 | -Wno-unused-parameter \ 15 | -fcolor-diagnostics \ 16 | ") 17 | 18 | # use libcxx need set -isystem 19 | set(GLOBAL_CXX_FLAGS " \ 20 | -nostdinc++ \ 21 | -Wall \ 22 | -fPIC \ 23 | -fcolor-diagnostics \ 24 | -isystem ${libcxx_headers} \ 25 | -isystem ${libcxxabi_headers} \ 26 | -Wno-unknown-attributes \ 27 | -Wno-defaulted-function-deleted \ 28 | -Wno-unused \ 29 | -Wno-unused-parameter \ 30 | -Wno-unused-command-line-argument \ 31 | ") 32 | 33 | 34 | # check c11 35 | include(CheckCCompilerFlag) 36 | CHECK_C_COMPILER_FLAG("-std=c11" COMPILER_SUPPORTS_C11) 37 | if(COMPILER_SUPPORTS_C11) 38 | set(GLOBAL_C_FLAGS "${GLOBAL_C_FLAGS} -std=c11") 39 | else() 40 | message(FATAL_ERROR "compiler not support c11") 41 | endif() 42 | 43 | 44 | # check c++17 45 | include(CheckCXXCompilerFlag) 46 | CHECK_CXX_COMPILER_FLAG("-std=c++17" COMPILER_SUPPORTS_CXX17) 47 | 48 | if(COMPILER_SUPPORTS_CXX17) 49 | set(GLOBAL_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -std=c++17") 50 | else() 51 | message(FATAL_ERROR "compiler not support c++17") 52 | endif() 53 | 54 | 55 | # default use libcxx and libcxxabi 56 | include_directories( 57 | ${libcxx_headers} 58 | ${libcxxabi_headers} 59 | ) 60 | 61 | # all libraries 62 | add_subdirectory(lib) 63 | 64 | # build tools 65 | add_subdirectory(build-tools) 66 | 67 | # platform tools 68 | add_subdirectory(platform-tools) 69 | -------------------------------------------------------------------------------- /patches/instruction_set.h.patch: -------------------------------------------------------------------------------- 1 | --- android-11/art/libartbase/arch/instruction_set.h 2020-09-16 14:56:08.461395523 +0800 2 | +++ patches/instruction_set.h 2020-09-16 14:54:36.764719721 +0800 3 | @@ -23,6 +23,40 @@ 4 | #include "base/enums.h" 5 | #include "base/macros.h" 6 | 7 | +// from android-11/art/build/art.go 8 | +// We need larger stack overflow guards for ASAN, as the compiled code will hav 9 | +// larger frame sizes. For simplicity, just use global not-target-specific cflags. 10 | +// Note: We increase this for both debug and non-debug, as the overflow gap will 11 | +// be compiled into managed code. We always preopt (and build core images) with 12 | +// the debug version. So make the gap consistent (and adjust for the worst). 13 | + 14 | +/* 15 | +if len(ctx.Config().SanitizeDevice()) > 0 || len(ctx.Config().SanitizeHost()) > 0 { 16 | + cflags = append(cflags, 17 | + "-DART_STACK_OVERFLOW_GAP_arm=8192", 18 | + "-DART_STACK_OVERFLOW_GAP_arm64=16384", 19 | + "-DART_STACK_OVERFLOW_GAP_x86=16384", 20 | + "-DART_STACK_OVERFLOW_GAP_x86_64=20480") 21 | +} else { 22 | + cflags = append(cflags, 23 | + "-DART_STACK_OVERFLOW_GAP_arm=8192", 24 | + "-DART_STACK_OVERFLOW_GAP_arm64=8192", 25 | + "-DART_STACK_OVERFLOW_GAP_x86=8192", 26 | + "-DART_STACK_OVERFLOW_GAP_x86_64=8192") 27 | +} 28 | +*/ 29 | + 30 | +#define ART_STACK_OVERFLOW_GAP_arm 8192 31 | +#define ART_STACK_OVERFLOW_GAP_arm64 16384 32 | +#define ART_STACK_OVERFLOW_GAP_x86 16384 33 | +#define ART_STACK_OVERFLOW_GAP_x86_64 20480 34 | + 35 | +// from android-11/art/build/art.go 36 | +// default frame size limit: 1736 37 | +// device limit: 7400 38 | +// host limit: 6400 39 | +#define ART_FRAME_SIZE_LIMIT 6400 40 | + 41 | namespace art { 42 | 43 | enum class InstructionSet { 44 | -------------------------------------------------------------------------------- /cmake/lib/libartbase/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libartbase) 4 | 5 | set(LIBARTBASE ${AOSP}/art/libartbase) 6 | 7 | set(LIBARTBASE_SRC_FILES 8 | ${LIBARTBASE}/arch/instruction_set.cc 9 | ${LIBARTBASE}/base/allocator.cc 10 | ${LIBARTBASE}/base/arena_allocator.cc 11 | ${LIBARTBASE}/base/arena_bit_vector.cc 12 | ${LIBARTBASE}/base/bit_vector.cc 13 | ${LIBARTBASE}/base/enums.cc 14 | ${LIBARTBASE}/base/file_magic.cc 15 | ${LIBARTBASE}/base/file_utils.cc 16 | ${LIBARTBASE}/base/hex_dump.cc 17 | ${LIBARTBASE}/base/hiddenapi_flags.cc 18 | ${LIBARTBASE}/base/logging.cc 19 | ${LIBARTBASE}/base/malloc_arena_pool.cc 20 | ${LIBARTBASE}/base/membarrier.cc 21 | ${LIBARTBASE}/base/memfd.cc 22 | ${LIBARTBASE}/base/memory_region.cc 23 | ${LIBARTBASE}/base/mem_map.cc 24 | ${LIBARTBASE}/base/os_linux.cc 25 | ${LIBARTBASE}/base/runtime_debug.cc 26 | ${LIBARTBASE}/base/safe_copy.cc 27 | ${LIBARTBASE}/base/scoped_arena_allocator.cc 28 | ${LIBARTBASE}/base/scoped_flock.cc 29 | ${LIBARTBASE}/base/socket_peer_is_trusted.cc 30 | ${LIBARTBASE}/base/time_utils.cc 31 | ${LIBARTBASE}/base/unix_file/fd_file.cc 32 | ${LIBARTBASE}/base/unix_file/random_access_file_utils.cc 33 | ${LIBARTBASE}/base/utils.cc 34 | ${LIBARTBASE}/base/zip_archive.cc 35 | ${LIBARTBASE}/base/mem_map_unix.cc 36 | ${LIBARTBASE}/base/globals_unix.cc 37 | ) 38 | 39 | # put in target when fuchsia supported by soong 40 | # ${LIBARTBASE}/base/mem_map_fuchsia.cc 41 | 42 | include_directories( 43 | ${libartbase_headers} 44 | ${libbase_headers} 45 | ${liblog_headers} 46 | ${libziparchive_headers} 47 | ) 48 | 49 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -DBUILDING_LIBART=1") 50 | 51 | add_library(artbase STATIC ${LIBARTBASE_SRC_FILES}) 52 | target_link_libraries(artbase) 53 | -------------------------------------------------------------------------------- /cmake/lib/libcutils/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libcutils) 4 | 5 | set(LIBCUTILS ${AOSP}/system/core/libcutils) 6 | 7 | set(LIBCUTILS_SRC_FILES 8 | ${LIBCUTILS}/fs.cpp 9 | ${LIBCUTILS}/hashmap.cpp 10 | ${LIBCUTILS}/multiuser.cpp 11 | ${LIBCUTILS}/str_parms.cpp 12 | ${LIBCUTILS}/config_utils.cpp 13 | ${LIBCUTILS}/canned_fs_config.cpp 14 | ${LIBCUTILS}/iosched_policy.cpp 15 | ${LIBCUTILS}/load_file.cpp 16 | ${LIBCUTILS}/native_handle.cpp 17 | ${LIBCUTILS}/properties.cpp 18 | ${LIBCUTILS}/record_stream.cpp 19 | ${LIBCUTILS}/strlcpy.c 20 | ${LIBCUTILS}/threads.cpp 21 | ${LIBCUTILS}/android_reboot.cpp 22 | ${LIBCUTILS}/ashmem-dev.cpp 23 | ${LIBCUTILS}/fs_config.cpp 24 | ${LIBCUTILS}/klog.cpp 25 | ${LIBCUTILS}/partition_utils.cpp 26 | ${LIBCUTILS}/qtaguid.cpp 27 | ${LIBCUTILS}/trace-dev.cpp 28 | ${LIBCUTILS}/uevent.cpp 29 | ) 30 | 31 | set(LIBCUTILS_SOCKETS_SRC_FILES 32 | ${LIBCUTILS}/sockets.cpp 33 | ${LIBCUTILS}/android_get_control_file.cpp 34 | ${LIBCUTILS}/socket_inaddr_any_server_unix.cpp 35 | ${LIBCUTILS}/socket_local_client_unix.cpp 36 | ${LIBCUTILS}/socket_local_server_unix.cpp 37 | ${LIBCUTILS}/socket_network_client_unix.cpp 38 | ${LIBCUTILS}/sockets_unix.cpp 39 | ) 40 | 41 | include_directories( 42 | ${libcutils_headers} 43 | ${liblog_headers} 44 | ${libbase_headers} 45 | ${libutils_headers} 46 | ${libprocessgroup_headers} 47 | ) 48 | 49 | set(CMAKE_CXX_FLAGS " \ 50 | ${GLOBAL_CXX_FLAGS} \ 51 | -Wall \ 52 | -Werror \ 53 | -Wextra \ 54 | -D_GNU_SOURCE \ 55 | ") 56 | 57 | add_library(cutils_sockets STATIC ${LIBCUTILS_SOCKETS_SRC_FILES}) 58 | target_link_libraries(cutils_sockets) 59 | 60 | add_library(cutils STATIC ${LIBCUTILS_SRC_FILES}) 61 | target_link_libraries(cutils) 62 | -------------------------------------------------------------------------------- /cmake/platform-tools/fastboot/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(fastboot) 4 | 5 | set(FASTBOOT ${AOSP}/system/core/fastboot) 6 | 7 | set(LIBFASTBOOT_SRC_FILES 8 | ${FASTBOOT}/bootimg_utils.cpp 9 | ${FASTBOOT}/fastboot.cpp 10 | ${FASTBOOT}/fs.cpp 11 | ${FASTBOOT}/socket.cpp 12 | ${FASTBOOT}/tcp.cpp 13 | ${FASTBOOT}/udp.cpp 14 | ${FASTBOOT}/util.cpp 15 | ${FASTBOOT}/fastboot_driver.cpp 16 | ${FASTBOOT}/usb_linux.cpp 17 | ) 18 | 19 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -Wextra -Wunreachable-code") 20 | set(CMAKE_EXE_LINKER_FLAGS "-static") 21 | 22 | include_directories( 23 | ${libbase_headers} 24 | ${libcutils_headers} 25 | ${libsparse_headers} 26 | ${liblp_headers} 27 | ${libbuildversion_headers} 28 | ${libziparchive_headers} 29 | ${libdiagnose_usb_headers} 30 | ${gtest_headers} 31 | ${libavb_headers} 32 | ${AOSP}/system/tools/mkbootimg/include/bootimg 33 | ) 34 | 35 | link_directories( 36 | ${CMAKE_SOURCE_DIR}/cmake/platform-tools/lib/boringssl/build/crypto 37 | ${CMAKE_SOURCE_DIR}/cmake/platform-tools/lib/boringssl/build/ssl 38 | ) 39 | 40 | # system/core/fastboot/fastboot.cpp 41 | # comment platform_tools_version.h 42 | add_definitions(-DPLATFORM_TOOLS_VERSION="30.0.3") 43 | 44 | add_library(fastboot_host STATIC ${LIBFASTBOOT_SRC_FILES}) 45 | target_link_libraries(fastboot_host) 46 | 47 | add_executable(fastboot ${FASTBOOT}/main.cpp) 48 | target_link_libraries(fastboot 49 | fastboot_host 50 | ziparchive 51 | buildversion 52 | lp 53 | sparse 54 | crypto_utils 55 | ext4_utils 56 | utils 57 | log 58 | diagnose_usb 59 | base 60 | cutils 61 | cutils_sockets 62 | gtest 63 | crypto 64 | z 65 | c++ 66 | c++abi 67 | dl 68 | ) 69 | -------------------------------------------------------------------------------- /cmake/lib/libcxx/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libcxx) 4 | 5 | set(LIBCXX ${AOSP}/external/libcxx) 6 | 7 | # libcxx src files 8 | set(LIBCXX_SRC_FILES 9 | ${LIBCXX}/src/algorithm.cpp 10 | ${LIBCXX}/src/any.cpp 11 | ${LIBCXX}/src/bind.cpp 12 | ${LIBCXX}/src/charconv.cpp 13 | ${LIBCXX}/src/chrono.cpp 14 | ${LIBCXX}/src/condition_variable.cpp 15 | ${LIBCXX}/src/debug.cpp 16 | ${LIBCXX}/src/exception.cpp 17 | ${LIBCXX}/src/future.cpp 18 | ${LIBCXX}/src/hash.cpp 19 | ${LIBCXX}/src/ios.cpp 20 | ${LIBCXX}/src/iostream.cpp 21 | ${LIBCXX}/src/locale.cpp 22 | ${LIBCXX}/src/memory.cpp 23 | ${LIBCXX}/src/mutex.cpp 24 | ${LIBCXX}/src/new.cpp 25 | ${LIBCXX}/src/optional.cpp 26 | ${LIBCXX}/src/random.cpp 27 | ${LIBCXX}/src/regex.cpp 28 | ${LIBCXX}/src/shared_mutex.cpp 29 | ${LIBCXX}/src/stdexcept.cpp 30 | ${LIBCXX}/src/string.cpp 31 | ${LIBCXX}/src/strstream.cpp 32 | ${LIBCXX}/src/system_error.cpp 33 | ${LIBCXX}/src/thread.cpp 34 | ${LIBCXX}/src/typeinfo.cpp 35 | ${LIBCXX}/src/utility.cpp 36 | ${LIBCXX}/src/valarray.cpp 37 | ${LIBCXX}/src/variant.cpp 38 | ${LIBCXX}/src/vector.cpp 39 | ) 40 | 41 | 42 | 43 | # libc++experimental 44 | set(C++_EXPERIMENTAL_SRC_FILES 45 | ${LIBCXX}/src/experimental/memory_resource.cpp 46 | ) 47 | 48 | 49 | # libc++fs 50 | set(LIBC++FS_SRC_FILES 51 | ${LIBCXX}/src/filesystem/directory_iterator.cpp 52 | ${LIBCXX}/src/filesystem/operations.cpp 53 | ) 54 | 55 | 56 | set(TEST_SRC_FILES 57 | ${LIBCXX}/libcxx_test_template.cpp 58 | ) 59 | 60 | 61 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -frtti -fexceptions -DLIBCXX_BUILDING_LIBCXXABI -D_LIBCPP_BUILDING_LIBRARY") 62 | 63 | add_library(c++experimental ${C++_EXPERIMENTAL_SRC_FILES}) 64 | target_link_libraries(c++experimental) 65 | 66 | add_library(c++fs ${LIBC++FS_SRC_FILES}) 67 | target_link_libraries(c++fs) 68 | 69 | add_library(c++ STATIC ${LIBCXX_SRC_FILES}) 70 | target_link_libraries(c++) 71 | 72 | 73 | add_executable(libcxx_test_template ${TEST_SRC_FILES}) 74 | target_link_libraries(libcxx_test_template c++experimental c++fs c++) 75 | -------------------------------------------------------------------------------- /cmake/modules/Android.cmake: -------------------------------------------------------------------------------- 1 | # Android.cmake 2 | # check android toolchain api level __ANDROID_API__ 3 | # defined in toolchain/sysroot/usr/include/android/api-level.h 4 | # building library needs api >= 26 5 | 6 | include_guard(GLOBAL) 7 | 8 | function(check_android_api api_level) 9 | if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Android") 10 | message(STATUS "build host is Android.") 11 | endif() 12 | 13 | # get toolchain path 14 | string(REGEX REPLACE "(.+)\\/bin/.*" "\\1" 15 | NDK_TOOLCHAIN 16 | ${CMAKE_C_COMPILER} 17 | ) 18 | 19 | message(STATUS "toolchain path: ${NDK_TOOLCHAIN}") 20 | 21 | # Try to read the API level from the toolchain launcher. 22 | if(EXISTS "${NDK_TOOLCHAIN}/bin/clang") 23 | set(ANDROID_API_LEVEL_REGEX "__ANDROID_API__=([0-9]+)") 24 | 25 | file(STRINGS "${NDK_TOOLCHAIN}/bin/clang" 26 | STANDALONE_TOOLCHAIN_BIN_CLANG 27 | REGEX "${ANDROID_API_LEVEL_REGEX}" 28 | LIMIT_COUNT 1 29 | LIMIT_INPUT 65536 30 | ) 31 | 32 | if(STANDALONE_TOOLCHAIN_BIN_CLANG MATCHES "${ANDROID_API_LEVEL_REGEX}") 33 | set(${api_level} "${CMAKE_MATCH_1}") 34 | endif() 35 | 36 | unset(STANDALONE_TOOLCHAIN_BIN_CLANG) 37 | unset(ANDROID_API_LEVEL_REGEX) 38 | endif() 39 | 40 | # Try to read the API level from the api-level.h 41 | if(NOT ${api_level}) 42 | # The compiler launcher does not know __ANDROID_API__. Assume this 43 | # is not unified headers and look for it in the api-level.h header. 44 | set(API_LEVEL_H_REGEX "^[\t ]*#[\t ]*define[\t ]+__ANDROID_API__[\t ]+([0-9]+)") 45 | 46 | # api-level.h location 47 | set(HEADER_FILE_PATH "${NDK_TOOLCHAIN}/sysroot/usr/include/android/api-level.h") 48 | if(NOT EXISTS ${HEADER_FILE_PATH}) 49 | set(HEADER_FILE_PATH "${NDK_TOOLCHAIN}/include/android/api-level.h") 50 | endif() 51 | 52 | file(STRINGS "${HEADER_FILE_PATH}" 53 | API_LEVEL_H_CONTENT 54 | REGEX "${API_LEVEL_H_REGEX}" 55 | ) 56 | 57 | if(API_LEVEL_H_CONTENT MATCHES "${API_LEVEL_H_REGEX}") 58 | set(${api_level} "${CMAKE_MATCH_1}") 59 | endif() 60 | set(${api_level} "${${api_level}}" PARENT_SCOPE) 61 | endif() 62 | 63 | endfunction() 64 | 65 | -------------------------------------------------------------------------------- /cmake/lib/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(lib) 4 | 5 | set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) 6 | 7 | # check host arch 8 | execute_process(COMMAND uname -m 9 | COMMAND tr -d '\n' 10 | OUTPUT_VARIABLE 11 | HOST_ARCH 12 | ) 13 | 14 | # only support aarch64(arm64-v8a) 15 | if(HOST_ARCH STREQUAL "aarch64") 16 | message(STATUS "host arch: ${HOST_ARCH}") 17 | else() 18 | message(FATAL_ERROR "not support host arch: ${HOST_ARCH}") 19 | endif() 20 | 21 | 22 | # load the Android.cmake 23 | include(Android) 24 | 25 | # check android api level 26 | check_android_api(ANDROID_API_LEVEL) 27 | 28 | if(ANDROID_API_LEVEL) 29 | message(STATUS "Found __ANDROID_API__=${ANDROID_API_LEVEL}") 30 | if(ANDROID_API_LEVEL LESS "26") 31 | message(WARNING "Current API is less than 26, compilation may fail.") 32 | endif() 33 | else() 34 | message(WARNING "Can't find __ANDROID_API__ definition, please set the path of toolchain correctly.") 35 | endif() 36 | 37 | 38 | # add subprojects 39 | add_subdirectory(libcxx) 40 | add_subdirectory(libcxxabi) 41 | add_subdirectory(zlib) 42 | add_subdirectory(expat) 43 | add_subdirectory(libzopfli) 44 | add_subdirectory(libjsoncpp) 45 | add_subdirectory(liblog) 46 | add_subdirectory(libpng) 47 | add_subdirectory(libutils) 48 | add_subdirectory(libcutils) 49 | add_subdirectory(libbase) 50 | add_subdirectory(libziparchive) 51 | add_subdirectory(libvndksupport) 52 | add_subdirectory(libprocessgroup) 53 | add_subdirectory(libbuildversion) 54 | add_subdirectory(libcpu_features) 55 | add_subdirectory(androidfw) 56 | add_subdirectory(compiler-rt) 57 | add_subdirectory(protobuf) 58 | add_subdirectory(libincfs) 59 | add_subdirectory(fmtlib) 60 | add_subdirectory(libartpalette) 61 | add_subdirectory(libartbase) 62 | add_subdirectory(libdexfile) 63 | add_subdirectory(gtest) 64 | add_subdirectory(libsparse) 65 | add_subdirectory(libselinux) 66 | add_subdirectory(libsepol) 67 | add_subdirectory(libpackagelistparser) 68 | add_subdirectory(libpcre2) 69 | add_subdirectory(boringssl) 70 | add_subdirectory(libdiagnose_usb) 71 | add_subdirectory(libcrypto_utils) 72 | add_subdirectory(libusb) 73 | add_subdirectory(libbrotli) 74 | add_subdirectory(liblz4) 75 | add_subdirectory(libext4_utils) 76 | add_subdirectory(liblp) 77 | add_subdirectory(libzstd) 78 | add_subdirectory(mdnsresponder) 79 | -------------------------------------------------------------------------------- /cmake/modules/CheckCCompilerFlag.cmake: -------------------------------------------------------------------------------- 1 | # Distributed under the OSI-approved BSD 3-Clause License. See accompanying 2 | # file Copyright.txt or https://cmake.org/licensing for details. 3 | 4 | #[=======================================================================[.rst: 5 | CheckCCompilerFlag 6 | ------------------ 7 | 8 | Check whether the C compiler supports a given flag. 9 | 10 | .. command:: check_c_compiler_flag 11 | 12 | .. code-block:: cmake 13 | 14 | check_c_compiler_flag( ) 15 | 16 | Check that the ```` is accepted by the compiler without 17 | a diagnostic. Stores the result in an internal cache entry 18 | named ````. 19 | 20 | This command temporarily sets the ``CMAKE_REQUIRED_DEFINITIONS`` variable 21 | and calls the ``check_c_source_compiles`` macro from the 22 | :module:`CheckCSourceCompiles` module. See documentation of that 23 | module for a listing of variables that can otherwise modify the build. 24 | 25 | A positive result from this check indicates only that the compiler did not 26 | issue a diagnostic message when given the flag. Whether the flag has any 27 | effect or even a specific one is beyond the scope of this module. 28 | 29 | .. note:: 30 | Since the :command:`try_compile` command forwards flags from variables 31 | like :variable:`CMAKE_C_FLAGS _FLAGS>`, unknown flags 32 | in such variables may cause a false negative for this check. 33 | #]=======================================================================] 34 | 35 | include_guard(GLOBAL) 36 | include(CheckCSourceCompiles) 37 | include(CMakeCheckCompilerFlagCommonPatterns) 38 | 39 | function(check_c_compiler_flag _flag _var) 40 | set(CMAKE_REQUIRED_DEFINITIONS "${_flag}") 41 | 42 | # Normalize locale during test compilation. 43 | set(_locale_vars LC_ALL LC_MESSAGES LANG) 44 | foreach(v IN LISTS _locale_vars) 45 | set(_locale_vars_saved_${v} "$ENV{${v}}") 46 | set(ENV{${v}} C) 47 | endforeach() 48 | check_compiler_flag_common_patterns(_common_patterns) 49 | check_c_source_compiles("int main(void) { return 0; }" ${_var} 50 | # Some compilers do not fail with a bad flag 51 | FAIL_REGEX "command line option .* is valid for .* but not for C" # GNU 52 | ${_common_patterns} 53 | ) 54 | foreach(v IN LISTS _locale_vars) 55 | set(ENV{${v}} ${_locale_vars_saved_${v}}) 56 | endforeach() 57 | set(${_var} "${${_var}}" PARENT_SCOPE) 58 | endfunction() 59 | -------------------------------------------------------------------------------- /cmake/modules/CheckCXXCompilerFlag.cmake: -------------------------------------------------------------------------------- 1 | # Distributed under the OSI-approved BSD 3-Clause License. See accompanying 2 | # file Copyright.txt or https://cmake.org/licensing for details. 3 | 4 | #[=======================================================================[.rst: 5 | CheckCXXCompilerFlag 6 | ------------------------ 7 | 8 | Check whether the CXX compiler supports a given flag. 9 | 10 | .. command:: check_cxx_compiler_flag 11 | 12 | .. code-block:: cmake 13 | 14 | check_cxx_compiler_flag( ) 15 | 16 | Check that the ```` is accepted by the compiler without 17 | a diagnostic. Stores the result in an internal cache entry 18 | named ````. 19 | 20 | This command temporarily sets the ``CMAKE_REQUIRED_DEFINITIONS`` variable 21 | and calls the ``check_cxx_source_compiles`` macro from the 22 | :module:`CheckCXXSourceCompiles` module. See documentation of that 23 | module for a listing of variables that can otherwise modify the build. 24 | 25 | A positive result from this check indicates only that the compiler did not 26 | issue a diagnostic message when given the flag. Whether the flag has any 27 | effect or even a specific one is beyond the scope of this module. 28 | 29 | .. note:: 30 | Since the :command:`try_compile` command forwards flags from variables 31 | like :variable:`CMAKE_CXX_FLAGS _FLAGS>`, unknown flags 32 | in such variables may cause a false negative for this check. 33 | #]=======================================================================] 34 | 35 | include_guard(GLOBAL) 36 | include(CheckCXXSourceCompiles) 37 | include(CMakeCheckCompilerFlagCommonPatterns) 38 | 39 | function(check_cxx_compiler_flag _flag _var) 40 | set(CMAKE_REQUIRED_DEFINITIONS "${_flag}") 41 | 42 | # Normalize locale during test compilation. 43 | set(_locale_vars LC_ALL LC_MESSAGES LANG) 44 | foreach(v IN LISTS _locale_vars) 45 | set(_locale_vars_saved_${v} "$ENV{${v}}") 46 | set(ENV{${v}} C) 47 | endforeach() 48 | check_compiler_flag_common_patterns(_common_patterns) 49 | check_cxx_source_compiles("int main() { return 0; }" ${_var} 50 | # Some compilers do not fail with a bad flag 51 | FAIL_REGEX "command line option .* is valid for .* but not for C\\\\+\\\\+" # GNU 52 | ${_common_patterns} 53 | ) 54 | foreach(v IN LISTS _locale_vars) 55 | set(ENV{${v}} ${_locale_vars_saved_${v}}) 56 | endforeach() 57 | set(${_var} "${${_var}}" PARENT_SCOPE) 58 | endfunction() 59 | -------------------------------------------------------------------------------- /cmake/build-tools/aapt/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(aapt) 4 | 5 | set(AAPT ${AOSP}/frameworks/base/tools/aapt) 6 | 7 | # libaapt_static 8 | set(LIBAAPT_STATIC_SRC_FILES 9 | ${AAPT}/AaptAssets.cpp 10 | ${AAPT}/AaptConfig.cpp 11 | ${AAPT}/AaptUtil.cpp 12 | ${AAPT}/AaptXml.cpp 13 | ${AAPT}/ApkBuilder.cpp 14 | ${AAPT}/Command.cpp 15 | ${AAPT}/CrunchCache.cpp 16 | ${AAPT}/FileFinder.cpp 17 | ${AAPT}/Images.cpp 18 | ${AAPT}/Package.cpp 19 | ${AAPT}/pseudolocalize.cpp 20 | ${AAPT}/Resource.cpp 21 | ${AAPT}/ResourceFilter.cpp 22 | ${AAPT}/ResourceIdCache.cpp 23 | ${AAPT}/ResourceTable.cpp 24 | ${AAPT}/SourcePos.cpp 25 | ${AAPT}/StringPool.cpp 26 | ${AAPT}/WorkQueue.cpp 27 | ${AAPT}/XMLNode.cpp 28 | ${AAPT}/ZipEntry.cpp 29 | ${AAPT}/ZipFile.cpp 30 | ) 31 | 32 | # aapt 33 | set(AAPT_SRC_FILES ${AAPT}/Main.cpp) 34 | 35 | include_directories( 36 | ${aapt_headers} 37 | ${androidfw_headers} 38 | ${libpng_headers} 39 | ${libutils_headers} 40 | ${liblog_headers} 41 | ${libcutils_headers} 42 | ${expat_headers} 43 | ${libziparchive_headers} 44 | ${libbase_headers} 45 | ${zlib_headers} 46 | ${libsystem_headers} 47 | ${libbuildversion_headers} 48 | ${native_headers} 49 | ${incfs_headers} 50 | ${fmtlib_headers} 51 | ) 52 | 53 | set(CMAKE_CXX_FLAGS " \ 54 | ${GLOBAL_CXX_FLAGS} \ 55 | -Wno-format-y2k \ 56 | -DSTATIC_ANDROIDFW_FOR_TOOLS \ 57 | -Wno-error=implicit-fallthrough \ 58 | ") 59 | 60 | # libcrypto and libssl 61 | include_directories( 62 | ${CMAKE_SOURCE_DIR}/cmake/lib/boringssl/build/crypto 63 | ${CMAKE_SOURCE_DIR}/cmake/lib/boringssl/build/ssl 64 | ) 65 | 66 | # static linking 67 | set(CMAKE_EXE_LINKER_FLAGS "-static") 68 | 69 | add_library(aapt_static STATIC ${LIBAAPT_STATIC_SRC_FILES}) 70 | target_link_libraries(aapt_static) 71 | 72 | add_executable(aapt ${AAPT_SRC_FILES}) 73 | target_link_libraries(aapt 74 | aapt_static 75 | png 76 | androidfw 77 | incfs_utils 78 | incfs 79 | fmt 80 | selinux 81 | pcre2 82 | sepol 83 | packagelistparser 84 | crypto 85 | ssl 86 | utils 87 | processgroup 88 | cgrouprc 89 | cgrouprc_format 90 | jsoncpp 91 | log 92 | cutils 93 | expat 94 | ziparchive 95 | base 96 | buildversion 97 | z 98 | c++ 99 | c++abi 100 | m 101 | dl 102 | ) 103 | -------------------------------------------------------------------------------- /cmake/platform-tools/sqlite3/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(sqlite3) 4 | 5 | add_subdirectory(libandroidicu) 6 | add_subdirectory(libandroidicuinit) 7 | add_subdirectory(libicuuc) 8 | add_subdirectory(libicui18n) 9 | add_subdirectory(libicudata) 10 | 11 | 12 | set(SQLITE ${AOSP}/external/sqlite) 13 | 14 | # libsqlite3_android 15 | set(LIBSQLITE3_ANDROID_SRC_FILES 16 | ${SQLITE}/android/PhoneNumberUtils.cpp 17 | ${SQLITE}/android/OldPhoneNumberUtils.cpp 18 | ${SQLITE}/android/sqlite3_android.cpp 19 | ) 20 | 21 | 22 | set(CMAKE_CXX_FLAGS " \ 23 | ${GLOBAL_CXX_FLAGS} \ 24 | -Wno-unused-function \ 25 | -Wno-unused-variable \ 26 | -DSQLITE_ENABLE_ICU \ 27 | -DPIC \ 28 | -fPIC \ 29 | ") 30 | 31 | set(CMAKE_C_FLAGS " \ 32 | ${GLOBAL_C_FLAGS} \ 33 | -DSQLITE_ENABLE_ICU \ 34 | -DNDEBUG=1 \ 35 | -DHAVE_USLEEP=1 \ 36 | -DSQLITE_HAVE_ISNAN \ 37 | -DSQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576 \ 38 | -DSQLITE_THREADSAFE=2 \ 39 | -DSQLITE_TEMP_STORE=3 \ 40 | -DSQLITE_POWERSAFE_OVERWRITE=1 \ 41 | -DSQLITE_DEFAULT_FILE_FORMAT=4 \ 42 | -DSQLITE_DEFAULT_AUTOVACUUM=1 \ 43 | -DSQLITE_ENABLE_MEMORY_MANAGEMENT=1 \ 44 | -DSQLITE_ENABLE_FTS3 \ 45 | -DSQLITE_ENABLE_FTS3_BACKWARDS \ 46 | -DSQLITE_ENABLE_FTS4 \ 47 | -DSQLITE_OMIT_BUILTIN_TEST \ 48 | -DSQLITE_OMIT_COMPILEOPTION_DIAGS \ 49 | -DSQLITE_OMIT_LOAD_EXTENSION \ 50 | -DSQLITE_DEFAULT_FILE_PERMISSIONS=0600 \ 51 | -DSQLITE_SECURE_DELETE \ 52 | -DSQLITE_ENABLE_BATCH_ATOMIC_WRITE \ 53 | -DBIONIC_IOCTL_NO_SIGNEDNESS_OVERLOAD \ 54 | -Wno-unused-parameter \ 55 | -DUSE_PREAD64 \ 56 | -Dfdatasync=fdatasync \ 57 | -DHAVE_MALLOC_H=1 \ 58 | -DHAVE_MALLOC_USABLE_SIZE \ 59 | -DPIC \ 60 | -fPIC \ 61 | ") 62 | 63 | include_directories( 64 | ${sqlite_headers} 65 | ${icu_headers} 66 | ${liblog_headers} 67 | ) 68 | 69 | link_directories( 70 | ${CMAKE_SOURCE_DIR}/cmake/platform-tools/sqlite3/libicuuc 71 | ${CMAKE_SOURCE_DIR}/cmake/platform-tools/sqlite3/libicudata 72 | ${CMAKE_SOURCE_DIR}/cmake/platform-tools/sqlite3/libicui18n 73 | ) 74 | 75 | set(CMAKE_EXE_LINKER_FLAGS "-static") 76 | 77 | add_library(sqlite3_android STATIC ${LIBSQLITE3_ANDROID_SRC_FILES}) 78 | target_link_libraries(sqlite3_android) 79 | 80 | add_library(sqlite STATIC ${SQLITE}/dist/sqlite3.c) 81 | target_link_libraries(sqlite) 82 | 83 | add_executable(sqlite3 ${SQLITE}/dist/shell.c) 84 | target_link_libraries(sqlite3 85 | sqlite 86 | sqlite3_android 87 | androidicu 88 | androidicuinit 89 | icui18n 90 | icuuc 91 | icudata 92 | base 93 | log 94 | utils 95 | c++ 96 | c++abi 97 | -ldl 98 | ) 99 | 100 | -------------------------------------------------------------------------------- /cmake/platform-tools/f2fs-tools/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(f2fs-tools) 4 | 5 | set(F2FS-TOOLS ${AOSP}/external/f2fs-tools) 6 | 7 | set(LIBF2FS_FMT_SRC_FILES 8 | ${F2FS-TOOLS}/lib/libf2fs.c 9 | ${F2FS-TOOLS}/mkfs/f2fs_format.c 10 | ${F2FS-TOOLS}/mkfs/f2fs_format_utils.c 11 | ${F2FS-TOOLS}/lib/libf2fs_zoned.c 12 | ${F2FS-TOOLS}/lib/nls_utf8.c 13 | ) 14 | 15 | set(MAKE_F2FS_SRC_FILES 16 | ${F2FS-TOOLS}/lib/libf2fs_io.c 17 | ${F2FS-TOOLS}/mkfs/f2fs_format_main.c 18 | ) 19 | 20 | set(FSCK_SRC_FILES 21 | ${F2FS-TOOLS}/fsck/dir.c 22 | ${F2FS-TOOLS}/fsck/dict.c 23 | ${F2FS-TOOLS}/fsck/compress.c 24 | ${F2FS-TOOLS}/fsck/mkquota.c 25 | ${F2FS-TOOLS}/fsck/quotaio.c 26 | ${F2FS-TOOLS}/fsck/quotaio_tree.c 27 | ${F2FS-TOOLS}/fsck/quotaio_v2.c 28 | ${F2FS-TOOLS}/fsck/node.c 29 | ${F2FS-TOOLS}/fsck/segment.c 30 | ${F2FS-TOOLS}/fsck/xattr.c 31 | ${F2FS-TOOLS}/fsck/main.c 32 | ${F2FS-TOOLS}/fsck/mount.c 33 | ${F2FS-TOOLS}/lib/libf2fs.c 34 | ${F2FS-TOOLS}/lib/libf2fs_io.c 35 | ${F2FS-TOOLS}/lib/nls_utf8.c 36 | ${F2FS-TOOLS}/fsck/dump.c 37 | ) 38 | 39 | set(F2FS_SLOAD_SRC_FILES 40 | ${FSCK_SRC_FILES} 41 | ${F2FS-TOOLS}/fsck/fsck.c 42 | ${F2FS-TOOLS}/fsck/sload.c 43 | ) 44 | 45 | set(CMAKE_C_FLAGS " \ 46 | -DF2FS_MAJOR_VERSION=1 \ 47 | -DF2FS_MINOR_VERSION=13 \ 48 | -DWITH_ANDROID \ 49 | -DWITH_BLKDISCARD \ 50 | -DWITH_SLOAD \ 51 | -Wall \ 52 | -Wno-format \ 53 | -Wno-macro-redefined \ 54 | -Wno-missing-field-initializers \ 55 | -Wno-pointer-arith \ 56 | -Wno-sign-compare \ 57 | -Wno-unused-function \ 58 | -Wno-string-plus-int \ 59 | ") 60 | 61 | add_definitions(-DF2FS_TOOLS_VERSION="1.13.0") 62 | add_definitions(-DF2FS_TOOLS_DATE="2020-06-05") 63 | 64 | set(CMAKE_EXE_LINKER_FLAGS "-static") 65 | 66 | include_directories( 67 | ${f2fs_headers} 68 | ${e2fsprogs_headers} 69 | ${libsparse_headers} 70 | ${libselinux_headers} 71 | ${libcutils_headers} 72 | ${liblz4_headers} 73 | ) 74 | 75 | add_library(f2fs_fmt STATIC ${LIBF2FS_FMT_SRC_FILES}) 76 | target_link_libraries(f2fs_fmt) 77 | 78 | add_executable(make_f2fs ${MAKE_F2FS_SRC_FILES}) 79 | target_link_libraries(make_f2fs 80 | f2fs_fmt 81 | ext2_uuid 82 | lz4 83 | sparse 84 | base 85 | z 86 | c++ 87 | c++abi 88 | dl 89 | ) 90 | 91 | add_executable(f2fs_sload ${F2FS_SLOAD_SRC_FILES}) 92 | target_link_libraries(f2fs_sload 93 | ext2_uuid 94 | lz4 95 | selinux 96 | sepol 97 | sparse 98 | pcre2 99 | packagelistparser 100 | cutils 101 | base 102 | log 103 | z 104 | c++ 105 | c++abi 106 | dl 107 | ) 108 | -------------------------------------------------------------------------------- /cmake/platform-tools/adb/libadb_protos/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libadb_protos) 4 | 5 | set(PROTO ${AOSP}/packages/modules/adb/proto) 6 | 7 | set(LIBADB_PROTOS_SRC_FILES "") 8 | 9 | # check key_type.pb.cc 10 | if (EXISTS ${PROTO}/packages/modules/adb/proto/key_type.pb.cc) 11 | list(APPEND LIBADB_PROTOS_SRC_FILES ${PROTO}/packages/modules/adb/proto/key_type.pb.cc) 12 | else () 13 | # generate key_type.pb.h and key_type.pb.cc 14 | execute_process( 15 | COMMAND ${CMAKE_BINARY_DIR}/cmake/lib/protobuf/aprotoc 16 | packages/modules/adb/proto/key_type.proto 17 | --cpp_out=packages/modules/adb/proto 18 | WORKING_DIRECTORY ${AOSP} 19 | ) 20 | endif () 21 | 22 | # check adb_known_hosts.pb.cc 23 | if (EXISTS ${PROTO}/packages/modules/adb/proto/adb_known_hosts.pb.cc) 24 | list(APPEND LIBADB_PROTOS_SRC_FILES ${PROTO}/packages/modules/adb/proto/adb_known_hosts.pb.cc) 25 | else () 26 | # generate adb_known_hosts.pb.h and adb_known_hosts.pb.cc 27 | execute_process( 28 | COMMAND ${CMAKE_BINARY_DIR}/cmake/lib/protobuf/aprotoc 29 | packages/modules/adb/proto/adb_known_hosts.proto 30 | --cpp_out=packages/modules/adb/proto 31 | WORKING_DIRECTORY ${AOSP} 32 | ) 33 | endif () 34 | 35 | # check app_processes.pb.cc 36 | if (EXISTS ${PROTO}/packages/modules/adb/proto/app_processes.pb.cc) 37 | list(APPEND LIBADB_PROTOS_SRC_FILES ${PROTO}/packages/modules/adb/proto/app_processes.pb.cc) 38 | else () 39 | # generate app_processes.pb.h and app_processes.pb.cc 40 | execute_process( 41 | COMMAND ${CMAKE_BINARY_DIR}/cmake/lib/protobuf/aprotoc 42 | packages/modules/adb/proto/app_processes.proto 43 | --cpp_out=packages/modules/adb/proto 44 | WORKING_DIRECTORY ${AOSP} 45 | ) 46 | endif () 47 | 48 | # check pairing.pb.cc 49 | if (EXISTS ${PROTO}/packages/modules/adb/proto/pairing.pb.cc) 50 | list(APPEND LIBADB_PROTOS_SRC_FILES ${PROTO}/packages/modules/adb/proto/pairing.pb.cc) 51 | else () 52 | # generate pairing.pb.h and pairing.pb.cc 53 | execute_process( 54 | COMMAND ${CMAKE_BINARY_DIR}/cmake/lib/protobuf/aprotoc 55 | packages/modules/adb/proto/pairing.proto 56 | --cpp_out=packages/modules/adb/proto 57 | WORKING_DIRECTORY ${AOSP} 58 | ) 59 | endif () 60 | 61 | include_directories( 62 | ${PROTO} 63 | ${protobuf_headers} 64 | ) 65 | 66 | set(CMAKE_CXX_FLAGS " \ 67 | ${GLOBAL_CXX_FLAGS} \ 68 | -Wall \ 69 | -Werror \ 70 | -Wextra \ 71 | -Wthread-safety \ 72 | ") 73 | 74 | add_library(adb_protos STATIC ${LIBADB_PROTOS_SRC_FILES}) 75 | target_link_libraries(adb_protos) 76 | -------------------------------------------------------------------------------- /cmake/platform-tools/e2fsprogs/libext2fs/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libext2fs) 4 | 5 | set(EXT2FS ${AOSP}/external/e2fsprogs/lib/ext2fs) 6 | 7 | set(LIBEXT2FS_SRC_FILES 8 | ${EXT2FS}/ext2_err.c 9 | ${EXT2FS}/alloc.c 10 | ${EXT2FS}/alloc_sb.c 11 | ${EXT2FS}/alloc_stats.c 12 | ${EXT2FS}/alloc_tables.c 13 | ${EXT2FS}/atexit.c 14 | ${EXT2FS}/badblocks.c 15 | ${EXT2FS}/bb_inode.c 16 | ${EXT2FS}/bitmaps.c 17 | ${EXT2FS}/bitops.c 18 | ${EXT2FS}/blkmap64_ba.c 19 | ${EXT2FS}/blkmap64_rb.c 20 | ${EXT2FS}/blknum.c 21 | ${EXT2FS}/block.c 22 | ${EXT2FS}/bmap.c 23 | ${EXT2FS}/check_desc.c 24 | ${EXT2FS}/crc16.c 25 | ${EXT2FS}/crc32c.c 26 | ${EXT2FS}/csum.c 27 | ${EXT2FS}/closefs.c 28 | ${EXT2FS}/dblist.c 29 | ${EXT2FS}/dblist_dir.c 30 | ${EXT2FS}/digest_encode.c 31 | ${EXT2FS}/dirblock.c 32 | ${EXT2FS}/dirhash.c 33 | ${EXT2FS}/dir_iterate.c 34 | ${EXT2FS}/dupfs.c 35 | ${EXT2FS}/expanddir.c 36 | ${EXT2FS}/ext_attr.c 37 | ${EXT2FS}/extent.c 38 | ${EXT2FS}/fallocate.c 39 | ${EXT2FS}/fileio.c 40 | ${EXT2FS}/finddev.c 41 | ${EXT2FS}/flushb.c 42 | ${EXT2FS}/freefs.c 43 | ${EXT2FS}/gen_bitmap.c 44 | ${EXT2FS}/gen_bitmap64.c 45 | ${EXT2FS}/get_num_dirs.c 46 | ${EXT2FS}/get_pathname.c 47 | ${EXT2FS}/getsize.c 48 | ${EXT2FS}/getsectsize.c 49 | ${EXT2FS}/hashmap.c 50 | ${EXT2FS}/i_block.c 51 | ${EXT2FS}/icount.c 52 | ${EXT2FS}/imager.c 53 | ${EXT2FS}/ind_block.c 54 | ${EXT2FS}/initialize.c 55 | ${EXT2FS}/inline.c 56 | ${EXT2FS}/inline_data.c 57 | ${EXT2FS}/inode.c 58 | ${EXT2FS}/io_manager.c 59 | ${EXT2FS}/ismounted.c 60 | ${EXT2FS}/link.c 61 | ${EXT2FS}/llseek.c 62 | ${EXT2FS}/lookup.c 63 | ${EXT2FS}/mmp.c 64 | ${EXT2FS}/mkdir.c 65 | ${EXT2FS}/mkjournal.c 66 | ${EXT2FS}/namei.c 67 | ${EXT2FS}/native.c 68 | ${EXT2FS}/newdir.c 69 | ${EXT2FS}/nls_utf8.c 70 | ${EXT2FS}/openfs.c 71 | ${EXT2FS}/progress.c 72 | ${EXT2FS}/punch.c 73 | ${EXT2FS}/qcow2.c 74 | ${EXT2FS}/rbtree.c 75 | ${EXT2FS}/read_bb.c 76 | ${EXT2FS}/read_bb_file.c 77 | ${EXT2FS}/res_gdt.c 78 | ${EXT2FS}/rw_bitmaps.c 79 | ${EXT2FS}/sha256.c 80 | ${EXT2FS}/sha512.c 81 | ${EXT2FS}/swapfs.c 82 | ${EXT2FS}/symlink.c 83 | ${EXT2FS}/undo_io.c 84 | ${EXT2FS}/unix_io.c 85 | ${EXT2FS}/sparse_io.c 86 | ${EXT2FS}/unlink.c 87 | ${EXT2FS}/valid_blk.c 88 | ${EXT2FS}/version.c 89 | ${EXT2FS}/test_io.c 90 | ) 91 | 92 | include_directories( 93 | ${EXT2FS}/../ 94 | ${libsparse_headers} 95 | ) 96 | 97 | set(CMAKE_C_FLAGS "${GLOBAL_C_FLAGS} -Wno-unused-parameter") 98 | 99 | add_library(ext2fs STATIC ${LIBEXT2FS_SRC_FILES}) 100 | target_link_libraries(ext2fs) 101 | -------------------------------------------------------------------------------- /cmake/lib/libselinux/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libselinux) 4 | 5 | set(LIBSELINUX ${AOSP}/external/selinux/libselinux) 6 | 7 | set(LIBSELINUX_SRC_FILES 8 | ${LIBSELINUX}/src/booleans.c 9 | ${LIBSELINUX}/src/callbacks.c 10 | ${LIBSELINUX}/src/freecon.c 11 | ${LIBSELINUX}/src/label_backends_android.c 12 | ${LIBSELINUX}/src/label.c 13 | ${LIBSELINUX}/src/label_support.c 14 | ${LIBSELINUX}/src/matchpathcon.c 15 | ${LIBSELINUX}/src/setrans_client.c 16 | ${LIBSELINUX}/src/sha1.c 17 | ${LIBSELINUX}/src/android/android.c 18 | ${LIBSELINUX}/src/avc.c 19 | ${LIBSELINUX}/src/avc_internal.c 20 | ${LIBSELINUX}/src/avc_sidtab.c 21 | ${LIBSELINUX}/src/canonicalize_context.c 22 | ${LIBSELINUX}/src/checkAccess.c 23 | ${LIBSELINUX}/src/check_context.c 24 | ${LIBSELINUX}/src/compute_av.c 25 | ${LIBSELINUX}/src/compute_create.c 26 | ${LIBSELINUX}/src/compute_member.c 27 | ${LIBSELINUX}/src/context.c 28 | ${LIBSELINUX}/src/deny_unknown.c 29 | ${LIBSELINUX}/src/disable.c 30 | ${LIBSELINUX}/src/enabled.c 31 | ${LIBSELINUX}/src/fgetfilecon.c 32 | ${LIBSELINUX}/src/fsetfilecon.c 33 | ${LIBSELINUX}/src/getenforce.c 34 | ${LIBSELINUX}/src/getfilecon.c 35 | ${LIBSELINUX}/src/get_initial_context.c 36 | ${LIBSELINUX}/src/getpeercon.c 37 | ${LIBSELINUX}/src/init.c 38 | ${LIBSELINUX}/src/lgetfilecon.c 39 | ${LIBSELINUX}/src/load_policy.c 40 | ${LIBSELINUX}/src/lsetfilecon.c 41 | ${LIBSELINUX}/src/mapping.c 42 | ${LIBSELINUX}/src/policyvers.c 43 | ${LIBSELINUX}/src/procattr.c 44 | ${LIBSELINUX}/src/reject_unknown.c 45 | ${LIBSELINUX}/src/sestatus.c 46 | ${LIBSELINUX}/src/setenforce.c 47 | ${LIBSELINUX}/src/setfilecon.c 48 | ${LIBSELINUX}/src/stringrep.c 49 | ${LIBSELINUX}/src/label_file.c 50 | ${LIBSELINUX}/src/regex.c 51 | ${LIBSELINUX}/src/selinux_config.c 52 | ${LIBSELINUX}/src/seusers.c 53 | ${LIBSELINUX}/src/android/android_platform.c 54 | ) 55 | 56 | set(CMAKE_C_FLAGS " \ 57 | -DNO_PERSISTENTLY_STORED_PATTERNS \ 58 | -DDISABLE_SETRANS \ 59 | -DDISABLE_BOOL \ 60 | -D_GNU_SOURCE \ 61 | -DNO_MEDIA_BACKEND \ 62 | -DNO_X_BACKEND \ 63 | -DNO_DB_BACKEND \ 64 | -Wall \ 65 | -Werror \ 66 | -Wno-error=missing-noreturn \ 67 | -Wno-error=unused-function \ 68 | -Wno-error=unused-variable \ 69 | -DAUDITD_LOG_TAG=1003 \ 70 | -DUSE_PCRE2 \ 71 | ") 72 | 73 | include_directories( 74 | ${libselinux_headers} 75 | ${libsepol_headers} 76 | ${libpcre2_headers} 77 | ${liblog_headers} 78 | ${libcutils_headers} 79 | ${libpackagelistparser_headers} 80 | ${LIBSELINUX}/src 81 | ${AOSP}/system/core/include 82 | ) 83 | 84 | add_library(selinux STATIC ${LIBSELINUX_SRC_FILES}) 85 | target_link_libraries(selinux) 86 | -------------------------------------------------------------------------------- /cmake/build-tools/aidl/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(aidl) 4 | 5 | set(AIDL ${AOSP}/system/tools/aidl) 6 | 7 | find_package(BISON REQUIRED) 8 | find_package(FLEX REQUIRED) 9 | 10 | if(BISON_FOUND) 11 | message(STATUS "found bison..") 12 | endif() 13 | 14 | if(FLEX_FOUND) 15 | message(STATUS "found flex..") 16 | endif() 17 | 18 | # generate aidl_language_y.h and aidl_language_y.cpp 19 | bison_target( 20 | LangParser ${AOSP}/system/tools/aidl/aidl_language_y.yy ${AOSP}/system/tools/aidl/aidl_language_y.cpp 21 | DEFINES_FILE ${AOSP}/system/tools/aidl/aidl_language_y.h 22 | ) 23 | 24 | # generate aidl_language_l.h and aidl_language_l.cpp 25 | flex_target( 26 | LangScanner ${AOSP}/system/tools/aidl/aidl_language_l.ll ${AOSP}/system/tools/aidl/aidl_language_l.cpp 27 | DEFINES_FILE ${AOSP}/system/tools/aidl/aidl_language_l.h 28 | ) 29 | 30 | # add dependency 31 | add_flex_bison_dependency(LangScanner LangParser) 32 | 33 | set(LIBAIDL_COMMON_SRC_FILES 34 | #${BISON_LangParser_OUTPUTS} 35 | ${FLEX_LangScanner_OUTPUTS} 36 | ${AIDL}/aidl_language_l.ll 37 | ${AIDL}/aidl_language_y.yy 38 | ${AIDL}/aidl_checkapi.cpp 39 | ${AIDL}/aidl_const_expressions.cpp 40 | ${AIDL}/aidl_language.cpp 41 | ${AIDL}/aidl_to_cpp_common.cpp 42 | ${AIDL}/aidl_to_cpp.cpp 43 | ${AIDL}/aidl_to_java.cpp 44 | ${AIDL}/aidl_to_ndk.cpp 45 | ${AIDL}/aidl_to_rust.cpp 46 | ${AIDL}/aidl_typenames.cpp 47 | ${AIDL}/aidl.cpp 48 | ${AIDL}/ast_cpp.cpp 49 | ${AIDL}/ast_java.cpp 50 | ${AIDL}/code_writer.cpp 51 | ${AIDL}/comments.cpp 52 | ${AIDL}/diagnostics.cpp 53 | ${AIDL}/generate_aidl_mappings.cpp 54 | ${AIDL}/generate_cpp.cpp 55 | ${AIDL}/generate_java_binder.cpp 56 | ${AIDL}/generate_java.cpp 57 | ${AIDL}/generate_ndk.cpp 58 | ${AIDL}/generate_rust.cpp 59 | ${AIDL}/import_resolver.cpp 60 | ${AIDL}/io_delegate.cpp 61 | ${AIDL}/line_reader.cpp 62 | ${AIDL}/location.cpp 63 | ${AIDL}/logging.cpp 64 | ${AIDL}/options.cpp 65 | ${AIDL}/parser.cpp 66 | ) 67 | 68 | include_directories( 69 | ${aidl_headers} 70 | ${libbase_headers} 71 | ${liblog_headers} 72 | ${fmtlib_headers} 73 | ${gtest_headers} 74 | ) 75 | 76 | set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -O0 -g -Wextra -Wno-defaulted-function-deleted") 77 | # static linking 78 | set(CMAKE_EXE_LINKER_FLAGS "-static") 79 | 80 | add_library(aidl-common STATIC ${LIBAIDL_COMMON_SRC_FILES}) 81 | target_link_libraries(aidl-common) 82 | 83 | # aidl 84 | add_executable(aidl ${AIDL}/main.cpp) 85 | target_link_libraries(aidl 86 | aidl-common 87 | fmt 88 | gtest 89 | base 90 | log 91 | c++ 92 | c++abi 93 | dl 94 | ) 95 | 96 | 97 | # aidl-cpp 98 | #set(CMAKE_CXX_FLAGS "${GLOBAL_CXX_FLAGS} -O0 -g -Wextra -DAIDL_CPP_BUILD") 99 | #add_executable(aidl-cpp ${AIDL}/main.cpp) 100 | #target_link_libraries(aidl-cpp) 101 | 102 | 103 | -------------------------------------------------------------------------------- /cmake/lib/libsepol/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(libsepol) 4 | 5 | set(LIBSEPOL ${AOSP}/external/selinux/libsepol) 6 | 7 | set(LIBSEPOL_SRC_FILES 8 | ${LIBSEPOL}/src/assertion.c 9 | ${LIBSEPOL}/src/avrule_block.c 10 | ${LIBSEPOL}/src/avtab.c 11 | ${LIBSEPOL}/src/boolean_record.c 12 | ${LIBSEPOL}/src/booleans.c 13 | ${LIBSEPOL}/src/conditional.c 14 | ${LIBSEPOL}/src/constraint.c 15 | ${LIBSEPOL}/src/context.c 16 | ${LIBSEPOL}/src/context_record.c 17 | ${LIBSEPOL}/src/debug.c 18 | ${LIBSEPOL}/src/ebitmap.c 19 | ${LIBSEPOL}/src/expand.c 20 | ${LIBSEPOL}/src/handle.c 21 | ${LIBSEPOL}/src/hashtab.c 22 | ${LIBSEPOL}/src/hierarchy.c 23 | ${LIBSEPOL}/src/iface_record.c 24 | ${LIBSEPOL}/src/interfaces.c 25 | ${LIBSEPOL}/src/kernel_to_cil.c 26 | ${LIBSEPOL}/src/kernel_to_common.c 27 | ${LIBSEPOL}/src/kernel_to_conf.c 28 | ${LIBSEPOL}/src/link.c 29 | ${LIBSEPOL}/src/mls.c 30 | ${LIBSEPOL}/src/module.c 31 | ${LIBSEPOL}/src/module_to_cil.c 32 | ${LIBSEPOL}/src/node_record.c 33 | ${LIBSEPOL}/src/nodes.c 34 | ${LIBSEPOL}/src/optimize.c 35 | ${LIBSEPOL}/src/polcaps.c 36 | ${LIBSEPOL}/src/policydb.c 37 | ${LIBSEPOL}/src/policydb_convert.c 38 | ${LIBSEPOL}/src/policydb_public.c 39 | ${LIBSEPOL}/src/port_record.c 40 | ${LIBSEPOL}/src/ports.c 41 | ${LIBSEPOL}/src/roles.c 42 | ${LIBSEPOL}/src/services.c 43 | ${LIBSEPOL}/src/sidtab.c 44 | ${LIBSEPOL}/src/symtab.c 45 | ${LIBSEPOL}/src/user_record.c 46 | ${LIBSEPOL}/src/users.c 47 | ${LIBSEPOL}/src/util.c 48 | ${LIBSEPOL}/src/write.c 49 | ${LIBSEPOL}/cil/src/android.c 50 | ${LIBSEPOL}/cil/src/cil_binary.c 51 | ${LIBSEPOL}/cil/src/cil_build_ast.c 52 | ${LIBSEPOL}/cil/src/cil.c 53 | ${LIBSEPOL}/cil/src/cil_copy_ast.c 54 | ${LIBSEPOL}/cil/src/cil_find.c 55 | ${LIBSEPOL}/cil/src/cil_fqn.c 56 | ${LIBSEPOL}/cil/src/cil_lexer.l 57 | ${LIBSEPOL}/cil/src/cil_list.c 58 | ${LIBSEPOL}/cil/src/cil_log.c 59 | ${LIBSEPOL}/cil/src/cil_mem.c 60 | ${LIBSEPOL}/cil/src/cil_parser.c 61 | ${LIBSEPOL}/cil/src/cil_policy.c 62 | ${LIBSEPOL}/cil/src/cil_post.c 63 | ${LIBSEPOL}/cil/src/cil_reset_ast.c 64 | ${LIBSEPOL}/cil/src/cil_resolve_ast.c 65 | ${LIBSEPOL}/cil/src/cil_stack.c 66 | ${LIBSEPOL}/cil/src/cil_strpool.c 67 | ${LIBSEPOL}/cil/src/cil_symtab.c 68 | ${LIBSEPOL}/cil/src/cil_tree.c 69 | ${LIBSEPOL}/cil/src/cil_verify.c 70 | ${LIBSEPOL}/cil/src/cil_write_ast.c 71 | ) 72 | 73 | set(CMAKE_C_FLAGS " \ 74 | -D_GNU_SOURCE \ 75 | -Wall \ 76 | -Werror \ 77 | -Wno-void-pointer-to-enum-cast \ 78 | -Wundef \ 79 | -Wshadow \ 80 | -Wno-error=missing-noreturn \ 81 | -Wmissing-format-attribute \ 82 | ") 83 | 84 | include_directories( 85 | ${libsepol_headers} 86 | ${LIBSEPOL}/src 87 | ${LIBSEPOL}/cil/src 88 | ) 89 | 90 | add_library(sepol STATIC ${LIBSEPOL_SRC_FILES}) 91 | target_link_libraries(sepol) 92 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | The source code from AOSP master branch 2 | 3 | At first, we cannot directly use the termux to build AOSP, because blueprint and soong compilation fails for aarch64 architecture 4 | 5 | So we use cmake to build each tool separately, which includes android-sdk/build-tools and platform-tools, such as aapt aapt2 aidl zipalign adb fastboot ... etc, If you need other tools, please add the CMakeLists.txt under cmake 6 | 7 | Currently only supports aarch64 architecture, if you want to compile other architectures such as armeabi-v7a x86 x86_64, you need to refer to Android.bp to modify the corresponding CMakeLists.txt 8 | 9 | The compiled binary files are placed in the [android-sdk](https://github.com/Lzhiyong/termux-ndk/releases)/build-tools and platform-tools 10 | 11 | **** 12 | ### How to build 13 | 14 | Termux needs to install aarch64 version of Linux. [TermuxArch](https://github.com/SDRausty/TermuxArch) 15 | is recommended, Of course you can also install other Linux distributions, ubuntu debian kali ... etc. 16 | 17 | ArchLinux only downloads source code, we are not using it to compile. 18 | 19 | you can use [termux-ndk](https://github.com/Lzhiyong/termux-ndk) or termux's clang to compile, 20 | please note if you use termux's clang to static compilation, need to `pkg install ndk-multilib` 21 | 22 | ```bash 23 | # install repo 24 | pacman -S repo 25 | 26 | cd sdk-tools/android-11 27 | 28 | # download source code 29 | repo init -u https://android.googlesource.com/platform/manifest -b master 30 | 31 | # for china 32 | repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b master 33 | 34 | repo sync -c -j4 35 | 36 | # download finish, exit ArchLinux 37 | exit 38 | 39 | 40 | # start building... 41 | cd sdk-tools && mkdir build && cd build 42 | 43 | # settings the ndk toolchain 44 | NDK_TOOLCHAIN=/path/to/android-ndk-r22/toolchains/llvm/prebuilt/linux-aarch64 45 | 46 | cmake -G 'Ninja' \ 47 | -DCMAKE_C_COMPILER=$NDK_TOOLCHAIN/bin/aarch64-linux-android30-clang \ 48 | -DCMAKE_CXX_COMPILER=$NDK_TOOLCHAIN/bin/aarch64-linux-android30-clang++ \ 49 | -DCMAKE_SYSROOT=$NDK_TOOLCHAIN/sysroot \ 50 | -DCMAKE_BUILD_TYPE=Release \ 51 | .. 52 | 53 | ninja -j16 54 | ``` 55 | 56 | **** 57 | ### Screenshots 58 | 59 | 60 | 61 | 62 | 63 | 64 | **** 65 | ### Issues 66 | 67 | Every Android version has a lot of changes, direct compilation will fail, you need to refer to the Android.bp file and modify the corresponding CMakeLists.txt and source code 68 | 69 | aosp/external/boringssl has link errors, therefore you need to manually execute sdk-tools/cmake/lib/boringssl/build.sh to build libcrypto and libssl 70 | 71 | adb dosen't support --fastdeploy option, because I don't know how to manually generate deployagent.inc and deployagentscript.inc header files 72 | 73 | If anyone knows, please submit to issue 74 | 75 | ```bash 76 | // from aosp/packages/modules/adb/Android.bp 77 | // Note: using pipe for xxd to control the variable name generated 78 | // the default name used by xxd is the path to the input file. 79 | java_genrule { 80 | name: "bin2c_fastdeployagent", 81 | out: ["deployagent.inc"], 82 | srcs: [":deployagent"], 83 | cmd: "(echo 'unsigned char kDeployAgent[] = {' && xxd -i <$(in) && echo '};') > $(out)", 84 | } 85 | 86 | genrule { 87 | name: "bin2c_fastdeployagentscript", 88 | out: ["deployagentscript.inc"], 89 | srcs: ["fastdeploy/deployagent/deployagent.sh"], 90 | cmd: "(echo 'unsigned char kDeployAgentScript[] = {' && xxd -i <$(in) && echo '};') > $(out)", 91 | } 92 | ``` 93 | 94 | 95 | reference [lizhangqu](https://github.com/lizhangqu/aapt-cmake-buildscript.git) 96 | -------------------------------------------------------------------------------- /cmake/platform-tools/adb/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(adb) 4 | 5 | add_subdirectory(libadb_protos) 6 | add_subdirectory(libadb_crypto) 7 | add_subdirectory(libadb_pairing_auth) 8 | add_subdirectory(libadb_pairing_connection) 9 | add_subdirectory(libadb_tls_connection) 10 | add_subdirectory(libadb_sysdeps) 11 | add_subdirectory(libfastdeploy_host) 12 | add_subdirectory(deployagent) 13 | 14 | set(ADB ${AOSP}/packages/modules/adb) 15 | 16 | set(LIBADB_SRC_FILES 17 | ${ADB}/adb.cpp 18 | ${ADB}/adb_io.cpp 19 | ${ADB}/adb_listeners.cpp 20 | ${ADB}/adb_trace.cpp 21 | ${ADB}/adb_unique_fd.cpp 22 | ${ADB}/adb_utils.cpp 23 | ${ADB}/fdevent/fdevent.cpp 24 | ${ADB}/services.cpp 25 | ${ADB}/sockets.cpp 26 | ${ADB}/socket_spec.cpp 27 | ${ADB}/sysdeps/errno.cpp 28 | ${ADB}/transport.cpp 29 | ${ADB}/transport_fd.cpp 30 | ${ADB}/types.cpp 31 | ) 32 | 33 | set(LIBADB_LINUX_SRC_FILES 34 | ${ADB}/fdevent/fdevent_epoll.cpp 35 | ) 36 | 37 | set(LIBADB_POSIX_SRC_FILES 38 | ${ADB}/sysdeps_unix.cpp 39 | ${ADB}/sysdeps/posix/network.cpp 40 | ) 41 | 42 | set(LIBADB_HOST_SRC_FILES 43 | ${LIBADB_SRC_FILES} 44 | ${LIBADB_LINUX_SRC_FILES} 45 | ${LIBADB_POSIX_SRC_FILES} 46 | ${ADB}/client/usb_linux.cpp 47 | ${ADB}/client/auth.cpp 48 | ${ADB}/client/adb_wifi.cpp 49 | ${ADB}/client/usb_libusb.cpp 50 | ${ADB}/client/usb_dispatch.cpp 51 | ${ADB}/client/transport_local.cpp 52 | ${ADB}/client/transport_mdns.cpp 53 | ${ADB}/client/mdns_utils.cpp 54 | ${ADB}/client/transport_usb.cpp 55 | ${ADB}/client/pairing/pairing_client.cpp 56 | ) 57 | 58 | set(ADB_SRC_FILES 59 | ${ADB}/client/adb_client.cpp 60 | ${ADB}/client/bugreport.cpp 61 | ${ADB}/client/commandline.cpp 62 | ${ADB}/client/file_sync_client.cpp 63 | ${ADB}/client/main.cpp 64 | ${ADB}/client/console.cpp 65 | ${ADB}/client/adb_install.cpp 66 | ${ADB}/client/line_printer.cpp 67 | ${ADB}/client/fastdeploy.cpp 68 | ${ADB}/client/fastdeploycallbacks.cpp 69 | ${ADB}/client/incremental.cpp 70 | ${ADB}/client/incremental_server.cpp 71 | ${ADB}/client/incremental_utils.cpp 72 | ${ADB}/shell_service_protocol.cpp 73 | ) 74 | 75 | set(CMAKE_CXX_FLAGS " \ 76 | ${GLOBAL_CXX_FLAGS} \ 77 | -std=c++2a \ 78 | -Wall \ 79 | -Wextra \ 80 | -Werror \ 81 | -Wexit-time-destructors \ 82 | -Wno-thread-safety-attributes \ 83 | -Wno-unused-parameter \ 84 | -Wno-missing-field-initializers \ 85 | -Wno-thread-safety \ 86 | -Wno-invalid-constexpr \ 87 | -Wvla \ 88 | -DADB_HOST=1 \ 89 | -DALLOW_ADBD_ROOT=1 \ 90 | -DANDROID_BASE_UNIQUE_FD_DISABLE_IMPLICIT_CONVERSION=1 \ 91 | ") 92 | 93 | include_directories( 94 | ${adb_headers} 95 | ${libbase_headers} 96 | ${libcutils_headers} 97 | ${boringssl_headers} 98 | ${libbuildversion_headers} 99 | ${libusb_headers} 100 | ${protobuf_headers} 101 | ${mdnsresponder_headers} 102 | ${libcrypto_utils_headers} 103 | ${libdiagnose_usb_headers} 104 | ${libbrotli_headers} 105 | ${liblz4_headers} 106 | ${libziparchive_headers} 107 | ${libutils_headers} 108 | ${liblog_headers} 109 | ${libsystem_headers} 110 | ${gtest_headers} 111 | ${androidfw_headers} 112 | ${zstd_headers} 113 | ${incfs_headers} 114 | ${fmtlib_headers} 115 | ${ADB} 116 | ${ADB}/fastdeploy/proto 117 | ${ADB}/fastdeploy/proto/packages/modules/adb 118 | ) 119 | 120 | link_directories( 121 | ${CMAKE_SOURCE_DIR}/cmake/platform-tools/lib/boringssl/build/crypto 122 | ${CMAKE_SOURCE_DIR}/cmake/platform-tools/lib/boringssl/build/ssl 123 | ) 124 | 125 | set(CMAKE_EXE_LINKER_FLAGS "-static") 126 | 127 | # system/core/adb/adb.cpp 128 | # comment platform_tools_version.h 129 | add_definitions(-DPLATFORM_TOOLS_VERSION="30.0.3") 130 | 131 | add_library(adb_host STATIC ${LIBADB_HOST_SRC_FILES}) 132 | target_link_libraries(adb_host) 133 | 134 | add_executable(adb ${ADB_SRC_FILES}) 135 | target_link_libraries(adb 136 | adb_host 137 | adb_pairing_server 138 | adb_pairing_connection 139 | adb_tls_connection 140 | adb_pairing_auth 141 | adb_crypto 142 | adb_protos 143 | adb_sysdeps 144 | androidfw 145 | incfs_utils 146 | incfs 147 | fmt 148 | selinux 149 | pcre2 150 | sepol 151 | packagelistparser 152 | crypto 153 | ssl 154 | brotli 155 | crypto_utils 156 | fastdeploy_host 157 | diagnose_usb 158 | lz4 159 | mdnssd 160 | protobuf-cpp-full 161 | usb 162 | ssl 163 | crypto 164 | ziparchive 165 | base 166 | utils 167 | cutils 168 | cutils_sockets 169 | buildversion 170 | log 171 | zstd 172 | z 173 | c++ 174 | c++abi 175 | dl 176 | ) 177 | -------------------------------------------------------------------------------- /cmake/lib/compiler-rt/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(compiler-rt) 4 | 5 | set(COMPILER-RT ${AOSP}/external/compiler-rt) 6 | 7 | set(COMPILER-RT_SRC_FILES 8 | ${COMPILER-RT}/lib/builtins/enable_execute_stack.c 9 | ${COMPILER-RT}/lib/builtins/absvdi2.c 10 | ${COMPILER-RT}/lib/builtins/absvsi2.c 11 | ${COMPILER-RT}/lib/builtins/absvti2.c 12 | ${COMPILER-RT}/lib/builtins/adddf3.c 13 | ${COMPILER-RT}/lib/builtins/addsf3.c 14 | ${COMPILER-RT}/lib/builtins/addtf3.c 15 | ${COMPILER-RT}/lib/builtins/addvdi3.c 16 | ${COMPILER-RT}/lib/builtins/addvsi3.c 17 | ${COMPILER-RT}/lib/builtins/addvti3.c 18 | ${COMPILER-RT}/lib/builtins/ashldi3.c 19 | ${COMPILER-RT}/lib/builtins/ashlti3.c 20 | ${COMPILER-RT}/lib/builtins/ashrdi3.c 21 | ${COMPILER-RT}/lib/builtins/ashrti3.c 22 | ${COMPILER-RT}/lib/builtins/clear_cache.c 23 | ${COMPILER-RT}/lib/builtins/clzdi2.c 24 | ${COMPILER-RT}/lib/builtins/clzsi2.c 25 | ${COMPILER-RT}/lib/builtins/clzti2.c 26 | ${COMPILER-RT}/lib/builtins/cmpdi2.c 27 | ${COMPILER-RT}/lib/builtins/cmpti2.c 28 | ${COMPILER-RT}/lib/builtins/comparedf2.c 29 | ${COMPILER-RT}/lib/builtins/comparesf2.c 30 | ${COMPILER-RT}/lib/builtins/comparetf2.c 31 | ${COMPILER-RT}/lib/builtins/ctzdi2.c 32 | ${COMPILER-RT}/lib/builtins/ctzsi2.c 33 | ${COMPILER-RT}/lib/builtins/ctzti2.c 34 | ${COMPILER-RT}/lib/builtins/divdc3.c 35 | ${COMPILER-RT}/lib/builtins/divdf3.c 36 | ${COMPILER-RT}/lib/builtins/divdi3.c 37 | ${COMPILER-RT}/lib/builtins/divmoddi4.c 38 | ${COMPILER-RT}/lib/builtins/divmodsi4.c 39 | ${COMPILER-RT}/lib/builtins/divsc3.c 40 | ${COMPILER-RT}/lib/builtins/divsf3.c 41 | ${COMPILER-RT}/lib/builtins/divsi3.c 42 | ${COMPILER-RT}/lib/builtins/divtf3.c 43 | ${COMPILER-RT}/lib/builtins/divti3.c 44 | ${COMPILER-RT}/lib/builtins/divxc3.c 45 | ${COMPILER-RT}/lib/builtins/eprintf.c 46 | ${COMPILER-RT}/lib/builtins/extenddftf2.c 47 | ${COMPILER-RT}/lib/builtins/extendhfsf2.c 48 | ${COMPILER-RT}/lib/builtins/extendsfdf2.c 49 | ${COMPILER-RT}/lib/builtins/extendsftf2.c 50 | ${COMPILER-RT}/lib/builtins/ffsdi2.c 51 | ${COMPILER-RT}/lib/builtins/ffsti2.c 52 | ${COMPILER-RT}/lib/builtins/fixdfdi.c 53 | ${COMPILER-RT}/lib/builtins/fixdfsi.c 54 | ${COMPILER-RT}/lib/builtins/fixdfti.c 55 | ${COMPILER-RT}/lib/builtins/fixsfdi.c 56 | ${COMPILER-RT}/lib/builtins/fixsfsi.c 57 | ${COMPILER-RT}/lib/builtins/fixsfti.c 58 | ${COMPILER-RT}/lib/builtins/fixtfdi.c 59 | ${COMPILER-RT}/lib/builtins/fixtfsi.c 60 | ${COMPILER-RT}/lib/builtins/fixtfti.c 61 | ${COMPILER-RT}/lib/builtins/fixunsdfdi.c 62 | ${COMPILER-RT}/lib/builtins/fixunsdfsi.c 63 | ${COMPILER-RT}/lib/builtins/fixunsdfti.c 64 | ${COMPILER-RT}/lib/builtins/fixunssfdi.c 65 | ${COMPILER-RT}/lib/builtins/fixunssfsi.c 66 | ${COMPILER-RT}/lib/builtins/fixunssfti.c 67 | ${COMPILER-RT}/lib/builtins/fixunstfdi.c 68 | ${COMPILER-RT}/lib/builtins/fixunstfsi.c 69 | ${COMPILER-RT}/lib/builtins/fixunstfti.c 70 | ${COMPILER-RT}/lib/builtins/fixunsxfdi.c 71 | ${COMPILER-RT}/lib/builtins/fixunsxfsi.c 72 | ${COMPILER-RT}/lib/builtins/fixunsxfti.c 73 | ${COMPILER-RT}/lib/builtins/fixxfdi.c 74 | ${COMPILER-RT}/lib/builtins/fixxfti.c 75 | ${COMPILER-RT}/lib/builtins/floatdidf.c 76 | ${COMPILER-RT}/lib/builtins/floatdisf.c 77 | ${COMPILER-RT}/lib/builtins/floatdixf.c 78 | ${COMPILER-RT}/lib/builtins/floatsidf.c 79 | ${COMPILER-RT}/lib/builtins/floatsisf.c 80 | ${COMPILER-RT}/lib/builtins/floatsitf.c 81 | ${COMPILER-RT}/lib/builtins/floattidf.c 82 | ${COMPILER-RT}/lib/builtins/floattisf.c 83 | ${COMPILER-RT}/lib/builtins/floattixf.c 84 | ${COMPILER-RT}/lib/builtins/floatundidf.c 85 | ${COMPILER-RT}/lib/builtins/floatundisf.c 86 | ${COMPILER-RT}/lib/builtins/floatundixf.c 87 | ${COMPILER-RT}/lib/builtins/floatunsidf.c 88 | ${COMPILER-RT}/lib/builtins/floatunsisf.c 89 | ${COMPILER-RT}/lib/builtins/floatunsitf.c 90 | ${COMPILER-RT}/lib/builtins/floatuntidf.c 91 | ${COMPILER-RT}/lib/builtins/floatuntisf.c 92 | ${COMPILER-RT}/lib/builtins/floatuntixf.c 93 | ${COMPILER-RT}/lib/builtins/gcc_personality_v0.c 94 | ${COMPILER-RT}/lib/builtins/int_util.c 95 | ${COMPILER-RT}/lib/builtins/lshrdi3.c 96 | ${COMPILER-RT}/lib/builtins/lshrti3.c 97 | ${COMPILER-RT}/lib/builtins/moddi3.c 98 | ${COMPILER-RT}/lib/builtins/modsi3.c 99 | ${COMPILER-RT}/lib/builtins/modti3.c 100 | ${COMPILER-RT}/lib/builtins/muldc3.c 101 | ${COMPILER-RT}/lib/builtins/muldf3.c 102 | ${COMPILER-RT}/lib/builtins/muldi3.c 103 | ${COMPILER-RT}/lib/builtins/mulodi4.c 104 | ${COMPILER-RT}/lib/builtins/mulosi4.c 105 | ${COMPILER-RT}/lib/builtins/muloti4.c 106 | ${COMPILER-RT}/lib/builtins/mulsc3.c 107 | ${COMPILER-RT}/lib/builtins/mulsf3.c 108 | ${COMPILER-RT}/lib/builtins/multf3.c 109 | ${COMPILER-RT}/lib/builtins/multi3.c 110 | ${COMPILER-RT}/lib/builtins/mulvdi3.c 111 | ${COMPILER-RT}/lib/builtins/mulvsi3.c 112 | ${COMPILER-RT}/lib/builtins/mulvti3.c 113 | ${COMPILER-RT}/lib/builtins/mulxc3.c 114 | ${COMPILER-RT}/lib/builtins/negdf2.c 115 | ${COMPILER-RT}/lib/builtins/negdi2.c 116 | ${COMPILER-RT}/lib/builtins/negsf2.c 117 | ${COMPILER-RT}/lib/builtins/negti2.c 118 | ${COMPILER-RT}/lib/builtins/negvdi2.c 119 | ${COMPILER-RT}/lib/builtins/negvsi2.c 120 | ${COMPILER-RT}/lib/builtins/negvti2.c 121 | ${COMPILER-RT}/lib/builtins/paritydi2.c 122 | ${COMPILER-RT}/lib/builtins/paritysi2.c 123 | ${COMPILER-RT}/lib/builtins/parityti2.c 124 | ${COMPILER-RT}/lib/builtins/popcountdi2.c 125 | ${COMPILER-RT}/lib/builtins/popcountsi2.c 126 | ${COMPILER-RT}/lib/builtins/popcountti2.c 127 | ${COMPILER-RT}/lib/builtins/powidf2.c 128 | ${COMPILER-RT}/lib/builtins/powisf2.c 129 | ${COMPILER-RT}/lib/builtins/powitf2.c 130 | ${COMPILER-RT}/lib/builtins/powixf2.c 131 | ${COMPILER-RT}/lib/builtins/subdf3.c 132 | ${COMPILER-RT}/lib/builtins/subsf3.c 133 | ${COMPILER-RT}/lib/builtins/subtf3.c 134 | ${COMPILER-RT}/lib/builtins/subvdi3.c 135 | ${COMPILER-RT}/lib/builtins/subvsi3.c 136 | ${COMPILER-RT}/lib/builtins/subvti3.c 137 | ${COMPILER-RT}/lib/builtins/trampoline_setup.c 138 | ${COMPILER-RT}/lib/builtins/truncdfhf2.c 139 | ${COMPILER-RT}/lib/builtins/truncdfsf2.c 140 | ${COMPILER-RT}/lib/builtins/truncsfhf2.c 141 | ${COMPILER-RT}/lib/builtins/trunctfdf2.c 142 | ${COMPILER-RT}/lib/builtins/trunctfsf2.c 143 | ${COMPILER-RT}/lib/builtins/ucmpdi2.c 144 | ${COMPILER-RT}/lib/builtins/ucmpti2.c 145 | ${COMPILER-RT}/lib/builtins/udivdi3.c 146 | ${COMPILER-RT}/lib/builtins/udivmoddi4.c 147 | ${COMPILER-RT}/lib/builtins/udivmodsi4.c 148 | ${COMPILER-RT}/lib/builtins/udivmodti4.c 149 | ${COMPILER-RT}/lib/builtins/udivsi3.c 150 | ${COMPILER-RT}/lib/builtins/udivti3.c 151 | ${COMPILER-RT}/lib/builtins/umoddi3.c 152 | ${COMPILER-RT}/lib/builtins/umodsi3.c 153 | ${COMPILER-RT}/lib/builtins/umodti3.c 154 | ) 155 | 156 | 157 | include_directories(${compiler-rt_headers}) 158 | 159 | set(CMAKE_C_FLAGS "-Wno-unused-parameter -Wno-visibility -Wno-incompatible-pointer-types") 160 | 161 | add_library(compiler_rt STATIC ${COMPILER-RT_SRC_FILES}) 162 | target_link_libraries(compiler_rt) 163 | 164 | 165 | 166 | 167 | -------------------------------------------------------------------------------- /cmake/build-tools/aapt2/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(aapt2) 4 | 5 | set(AAPT2 ${AOSP}/frameworks/base/tools/aapt2) 6 | 7 | set(TOOL_SRC_FILES 8 | ${AAPT2}/cmd/Command.cpp 9 | ${AAPT2}/cmd/Compile.cpp 10 | ${AAPT2}/cmd/Convert.cpp 11 | ${AAPT2}/cmd/Diff.cpp 12 | ${AAPT2}/cmd/Dump.cpp 13 | ${AAPT2}/cmd/Link.cpp 14 | ${AAPT2}/cmd/Optimize.cpp 15 | ${AAPT2}/cmd/Util.cpp 16 | ) 17 | 18 | 19 | # libaapt2 static lib 20 | set(LIBAAPT2_STATIC_SRC_FILES 21 | ${AAPT2}/compile/IdAssigner.cpp 22 | ${AAPT2}/compile/InlineXmlFormatParser.cpp 23 | ${AAPT2}/compile/NinePatch.cpp 24 | ${AAPT2}/compile/Png.cpp 25 | ${AAPT2}/compile/PngChunkFilter.cpp 26 | ${AAPT2}/compile/PngCrunch.cpp 27 | ${AAPT2}/compile/PseudolocaleGenerator.cpp 28 | ${AAPT2}/compile/Pseudolocalizer.cpp 29 | ${AAPT2}/compile/XmlIdCollector.cpp 30 | ${AAPT2}/configuration/ConfigurationParser.cpp 31 | ${AAPT2}/dump/DumpManifest.cpp 32 | ${AAPT2}/filter/AbiFilter.cpp 33 | ${AAPT2}/filter/ConfigFilter.cpp 34 | ${AAPT2}/format/Archive.cpp 35 | ${AAPT2}/format/Container.cpp 36 | ${AAPT2}/format/binary/BinaryResourceParser.cpp 37 | ${AAPT2}/format/binary/ResChunkPullParser.cpp 38 | ${AAPT2}/format/binary/TableFlattener.cpp 39 | ${AAPT2}/format/binary/XmlFlattener.cpp 40 | ${AAPT2}/format/proto/ProtoDeserialize.cpp 41 | ${AAPT2}/format/proto/ProtoSerialize.cpp 42 | ${AAPT2}/io/BigBufferStream.cpp 43 | ${AAPT2}/io/File.cpp 44 | ${AAPT2}/io/FileStream.cpp 45 | ${AAPT2}/io/FileSystem.cpp 46 | ${AAPT2}/io/StringStream.cpp 47 | ${AAPT2}/io/Util.cpp 48 | ${AAPT2}/io/ZipArchive.cpp 49 | ${AAPT2}/link/AutoVersioner.cpp 50 | ${AAPT2}/link/ManifestFixer.cpp 51 | ${AAPT2}/link/NoDefaultResourceRemover.cpp 52 | ${AAPT2}/link/ProductFilter.cpp 53 | ${AAPT2}/link/PrivateAttributeMover.cpp 54 | ${AAPT2}/link/ReferenceLinker.cpp 55 | ${AAPT2}/link/ResourceExcluder.cpp 56 | ${AAPT2}/link/TableMerger.cpp 57 | ${AAPT2}/link/XmlCompatVersioner.cpp 58 | ${AAPT2}/link/XmlNamespaceRemover.cpp 59 | ${AAPT2}/link/XmlReferenceLinker.cpp 60 | ${AAPT2}/optimize/MultiApkGenerator.cpp 61 | ${AAPT2}/optimize/ResourceDeduper.cpp 62 | ${AAPT2}/optimize/ResourceFilter.cpp 63 | ${AAPT2}/optimize/ResourcePathShortener.cpp 64 | ${AAPT2}/optimize/VersionCollapser.cpp 65 | ${AAPT2}/process/SymbolTable.cpp 66 | ${AAPT2}/split/TableSplitter.cpp 67 | ${AAPT2}/text/Printer.cpp 68 | ${AAPT2}/text/Unicode.cpp 69 | ${AAPT2}/text/Utf8Iterator.cpp 70 | ${AAPT2}/util/BigBuffer.cpp 71 | ${AAPT2}/util/Files.cpp 72 | ${AAPT2}/util/Util.cpp 73 | ${AAPT2}/Debug.cpp 74 | ${AAPT2}/DominatorTree.cpp 75 | ${AAPT2}/java/AnnotationProcessor.cpp 76 | ${AAPT2}/java/ClassDefinition.cpp 77 | ${AAPT2}/java/JavaClassGenerator.cpp 78 | ${AAPT2}/java/ManifestClassGenerator.cpp 79 | ${AAPT2}/java/ProguardRules.cpp 80 | ${AAPT2}/LoadedApk.cpp 81 | ${AAPT2}/Resource.cpp 82 | ${AAPT2}/ResourceParser.cpp 83 | ${AAPT2}/ResourceTable.cpp 84 | ${AAPT2}/ResourceUtils.cpp 85 | ${AAPT2}/ResourceValues.cpp 86 | ${AAPT2}/SdkConstants.cpp 87 | ${AAPT2}/StringPool.cpp 88 | ${AAPT2}/trace/TraceBuffer.cpp 89 | ${AAPT2}/xml/XmlActionExecutor.cpp 90 | ${AAPT2}/xml/XmlDom.cpp 91 | ${AAPT2}/xml/XmlPullParser.cpp 92 | ${AAPT2}/xml/XmlUtil.cpp 93 | ${AAPT2}/Configuration.proto 94 | ${AAPT2}/Resources.proto 95 | ${AAPT2}/ResourcesInternal.proto 96 | ) 97 | 98 | 99 | # libaapt2_jni shared lib 100 | set(LIBAAPT2_JNI_SRC_FILES 101 | ${AAPT2}/jni/aapt2_jni.cpp 102 | ${TOOL_SRC_FILES} 103 | ) 104 | 105 | # aapt2 106 | set(AAPT2_SRC_FILES 107 | ${AAPT2}/Main.cpp 108 | ${TOOL_SRC_FILES} 109 | ) 110 | 111 | 112 | include_directories( 113 | ${aapt2_headers} 114 | ${protobuf_headers} 115 | ${androidfw_headers} 116 | ${libbase_headers} 117 | ${libziparchive_headers} 118 | ${liblog_headers} 119 | ${libcutils_headers} 120 | ${libutils_headers} 121 | ${libsystem_headers} 122 | ${zlib_headers} 123 | ${native_headers} 124 | ${libpng_headers} 125 | ${expat_headers} 126 | ${libbuildversion_headers} 127 | ${incfs_headers} 128 | ${fmtlib_headers} 129 | ${gtest_headers} 130 | ${libidmap2_policies_headers} 131 | ) 132 | 133 | message(STATUS "CMAKE_BINARY_DIR: ${CMAKE_BINARY_DIR}") 134 | 135 | # generate files in android-11/frameworks/base/tools/aapt2/frameworks/base/tools/aapt2 136 | # check Configuration.pb.cc 137 | if (EXISTS ${AAPT2}/frameworks/base/tools/aapt2/Configuration.pb.cc) 138 | list(APPEND LIBAAPT2_STATIC_SRC_FILES ${AAPT2}/frameworks/base/tools/aapt2/Configuration.pb.cc) 139 | else () 140 | # generate Configuration.pb.h and Configuration.pb.cc 141 | execute_process( 142 | COMMAND ${CMAKE_BINARY_DIR}/cmake/lib/protobuf/aprotoc 143 | frameworks/base/tools/aapt2/Configuration.proto 144 | --cpp_out=frameworks/base/tools/aapt2 145 | WORKING_DIRECTORY ${AOSP} 146 | ) 147 | endif () 148 | 149 | # check Resources.pb.cc 150 | if (EXISTS ${AAPT2}/frameworks/base/tools/aapt2/Resources.pb.cc) 151 | list(APPEND LIBAAPT2_STATIC_SRC_FILES ${AAPT2}/frameworks/base/tools/aapt2/Resources.pb.cc) 152 | else () 153 | # generate Resources.pb.h and Resources.pb.cc 154 | execute_process( 155 | COMMAND ${CMAKE_BINARY_DIR}/cmake/lib/protobuf/aprotoc 156 | frameworks/base/tools/aapt2/Resources.proto 157 | --cpp_out=frameworks/base/tools/aapt2 158 | WORKING_DIRECTORY ${AOSP} 159 | ) 160 | endif () 161 | 162 | # check ResourcesInternal.pb.cc 163 | if (EXISTS ${AAPT2}/frameworks/base/tools/aapt2/ResourcesInternal.pb.cc) 164 | list(APPEND LIBAAPT2_STATIC_SRC_FILES ${AAPT2}/frameworks/base/tools/aapt2/ResourcesInternal.pb.cc) 165 | else () 166 | # generate ResourcesInternal.pb.h and ResourcesInternal.pb.cc 167 | execute_process( 168 | COMMAND ${CMAKE_BINARY_DIR}/cmake/lib/protobuf/aprotoc 169 | frameworks/base/tools/aapt2/ResourcesInternal.proto 170 | --cpp_out=frameworks/base/tools/aapt2 171 | WORKING_DIRECTORY ${AOSP} 172 | ) 173 | endif () 174 | 175 | 176 | set(CMAKE_C_FLAGS " \ 177 | ${GLOBAL_C_FLAGS} \ 178 | -Wall \ 179 | -Werror \ 180 | -Wextra \ 181 | -Wno-unused-parameter \ 182 | ") 183 | 184 | set(CMAKE_CXX_FLAGS " \ 185 | ${GLOBAL_CXX_FLAGS} \ 186 | -Wno-missing-field-initializers \ 187 | -Wno-defaulted-function-deleted \ 188 | -fno-exceptions \ 189 | -fno-rtti \ 190 | ") 191 | 192 | # static linking 193 | set(CMAKE_EXE_LINKER_FLAGS "-static") 194 | 195 | add_library(aapt2_static STATIC ${LIBAAPT2_STATIC_SRC_FILES} ${PROTO_SRCS}) 196 | target_link_libraries(aapt2_static) 197 | 198 | add_library(aapt2_jni STATIC ${LIBAAPT2_JNI_SRC_FILES}) 199 | target_link_libraries(aapt2_jni) 200 | 201 | add_executable(aapt2 ${AAPT2_SRC_FILES}) 202 | target_link_libraries(aapt2 203 | aapt2_static 204 | androidfw 205 | incfs_utils 206 | incfs 207 | fmt 208 | selinux 209 | pcre2 210 | sepol 211 | packagelistparser 212 | crypto 213 | ssl 214 | utils 215 | cutils 216 | expat 217 | ziparchive 218 | png 219 | base 220 | protobuf-cpp-full 221 | buildversion 222 | log 223 | z 224 | c++ 225 | c++abi 226 | m 227 | dl 228 | ) 229 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(sdk-tools) 4 | 5 | # android source code 6 | set(AOSP ${CMAKE_SOURCE_DIR}/android-11) 7 | 8 | 9 | # headers files 10 | set(native_headers 11 | ${AOSP}/frameworks/native/include 12 | ${AOSP}/frameworks/native/libs/binder/include 13 | ) 14 | 15 | set(safe_iop_headers 16 | ${AOSP}/external/safe-iop/include 17 | ) 18 | 19 | set(libbacktrace_headers 20 | ${AOSP}/system/unwinding/libbacktrace 21 | ${AOSP}/system/unwinding/libbacktrace/include 22 | ) 23 | 24 | set(libsystem_headers 25 | ${AOSP}/system/core/libsystem/include 26 | ) 27 | 28 | set(androidfw_headers 29 | ${AOSP}/frameworks/base/libs/androidfw/include 30 | ) 31 | 32 | set(expat_headers 33 | ${AOSP}/external/expat 34 | ${AOSP}/external/expat/lib 35 | ) 36 | 37 | set(libpng_headers 38 | ${AOSP}/external/libpng 39 | ) 40 | 41 | set(protobuf_headers 42 | ${AOSP}/external/protobuf/android 43 | ${AOSP}/external/protobuf/src 44 | ) 45 | 46 | set(zlib_headers 47 | ${AOSP}/external/zlib 48 | ${AOSP}/external/zlib/src 49 | ) 50 | 51 | set(libcxx_headers 52 | ${AOSP}/external/libcxx/include 53 | ) 54 | 55 | set(libcxxabi_headers 56 | ${AOSP}/external/libcxxabi/include 57 | ) 58 | 59 | set(compiler-rt_headers 60 | ${AOSP}/external/compiler-rt/include 61 | ) 62 | 63 | set(libbase_headers 64 | ${AOSP}/system/libbase/include 65 | ) 66 | 67 | set(libcutils_headers 68 | ${AOSP}/system/core/libcutils 69 | ${AOSP}/system/core/libcutils/include 70 | ) 71 | 72 | set(liblog_headers 73 | ${AOSP}/system/logging/liblog 74 | ${AOSP}/system/logging/liblog/include 75 | ) 76 | 77 | set(libutils_headers 78 | ${AOSP}/system/core/libutils 79 | ${AOSP}/system/core/libutils/include 80 | ) 81 | 82 | set(libziparchive_headers 83 | ${AOSP}/system/libziparchive 84 | ${AOSP}/system/libziparchive/include 85 | ) 86 | 87 | set(libnativehelper_headers 88 | ${AOSP}/libnativehelper/include_jni 89 | ) 90 | 91 | set(aapt_headers 92 | ${AOSP}/frameworks/base/tools/aapt 93 | ) 94 | 95 | set(aapt2_headers 96 | ${AOSP}/frameworks/base/tools/aapt2 97 | ${AOSP}/frameworks/base/tools/aapt2/frameworks/base/tools/aapt2 98 | ) 99 | 100 | set(aidl_headers 101 | ${AOSP}/system/tools/aidl 102 | ) 103 | 104 | set(libzopfli_headers 105 | ${AOSP}/external/zopfli/src 106 | ) 107 | 108 | set(zipalign_headers 109 | ${AOSP}/build/tools/zipalign 110 | ) 111 | 112 | set(libprocessgroup_headers 113 | ${AOSP}/system/core/libprocessgroup 114 | ${AOSP}/system/core/libprocessgroup/include 115 | ${AOSP}/system/core/libprocessgroup/cgrouprc/include 116 | ${AOSP}/system/core/libprocessgroup/cgrouprc_format/include 117 | ) 118 | 119 | set(libvndksupport_headers 120 | ${AOSP}/system/core/libvndksupport/include 121 | ${AOSP}/system/core/libvndksupport/include/vndksupport 122 | ) 123 | 124 | set(libjsoncpp_headers 125 | ${AOSP}/external/jsoncpp/include 126 | ) 127 | 128 | set(libbuildversion_headers 129 | ${AOSP}/build/soong/cc/libbuildversion/include 130 | ) 131 | 132 | set(gtest_headers 133 | ${AOSP}/external/googletest/googletest/include 134 | ${AOSP}/external/googletest/googlemock/include 135 | ) 136 | 137 | set(cpu_features_headers 138 | ${AOSP}/external/cpu_features/include 139 | ) 140 | 141 | set(libartpalette_headers 142 | ${AOSP}/art/libartpalette/include 143 | ) 144 | 145 | set(libartbase_headers 146 | ${AOSP}/art/libartbase 147 | ) 148 | 149 | set(libdexfile_headers 150 | ${AOSP}/art/libdexfile 151 | ) 152 | 153 | set(slang_headers 154 | ${AOSP}/frameworks/compile/slang 155 | ) 156 | 157 | set(libbcc_headers 158 | ${AOSP}/frameworks/compile/libbcc 159 | ) 160 | 161 | set(llvm_headers 162 | ${AOSP}/external/llvm/include 163 | ) 164 | 165 | set(clang_headers 166 | ${AOSP}/external/clang/include 167 | ) 168 | 169 | set(etc1tool_headers 170 | ${AOSP}/frameworks/native/opengl/include 171 | ) 172 | 173 | set(sqlite_headers 174 | ${AOSP}/external/sqlite/android 175 | ${AOSP}/external/sqlite/dist 176 | ) 177 | 178 | set(icu_headers 179 | ${AOSP}/external/icu/icu4c/source/common 180 | ${AOSP}/external/icu/libandroidicu/include 181 | ${AOSP}/external/icu/libandroidicuinit/include 182 | 183 | ) 184 | 185 | set(libsparse_headers 186 | ${AOSP}/system/core/libsparse/include 187 | ) 188 | 189 | set(libsepol_headers 190 | ${AOSP}/external/selinux/libsepol/include 191 | ${AOSP}/external/selinux/libsepol/cil/include 192 | ) 193 | 194 | set(libselinux_headers 195 | ${AOSP}/external/selinux/libselinux/include 196 | ) 197 | 198 | set(libpcre2_headers 199 | ${AOSP}/external/pcre/include 200 | ) 201 | 202 | set(libpackagelistparser_headers 203 | ${AOSP}/system/core/libpackagelistparser/include 204 | ) 205 | 206 | set(e2fsprogs_headers 207 | ${AOSP}/external/e2fsprogs/lib 208 | ${AOSP}/external/e2fsprogs/lib/uuid 209 | ) 210 | 211 | set(f2fs_headers 212 | ${AOSP}/external/f2fs-tools/include 213 | ) 214 | 215 | set(boringssl_headers 216 | ${AOSP}/external/boringssl/src/include 217 | ) 218 | 219 | set(libcrypto_utils_headers 220 | ${AOSP}/system/core/libcrypto_utils/include 221 | ) 222 | 223 | set(adb_headers 224 | ${AOSP}/packages/modules/adb 225 | ${AOSP}/packages/modules/adb/crypto/include 226 | ${AOSP}/packages/modules/adb/tls/include 227 | ${AOSP}/packages/modules/adb/pairing_auth/include 228 | ${AOSP}/packages/modules/adb/pairing_connection/include 229 | ${AOSP}/packages/modules/adb/proto/packages/modules/adb/proto 230 | ) 231 | 232 | set(libdiagnose_usb_headers 233 | ${AOSP}/system/core/diagnose_usb/include 234 | ) 235 | 236 | set(libcrypto_utils_headers 237 | ${AOSP}/system/core/libcrypto_utils/include 238 | ) 239 | 240 | set(libusb_headers 241 | ${AOSP}/external/libusb/include 242 | ) 243 | 244 | set(libbrotli_headers 245 | ${AOSP}/external/brotli/c/include 246 | ) 247 | 248 | set(mdnsresponder_headers 249 | ${AOSP}/external/mdnsresponder/mDNSShared 250 | ) 251 | 252 | set(liblz4_headers 253 | ${AOSP}/external/lz4/lib 254 | ) 255 | 256 | set(libext4_utils_headers 257 | ${AOSP}/system/extras/ext4_utils/include 258 | ) 259 | 260 | set(liblp_headers 261 | ${AOSP}/system/core/fs_mgr/liblp/include 262 | ) 263 | 264 | set(fmtlib_headers 265 | ${AOSP}/external/fmtlib/include 266 | ) 267 | 268 | set(libidmap2_policies_headers 269 | ${AOSP}/frameworks/base/cmds/idmap2/libidmap2_policies/include 270 | ) 271 | 272 | set(libavb_headers 273 | ${AOSP}/external/avb 274 | ) 275 | 276 | set(zstd_headers 277 | ${AOSP}/external/zstd/lib 278 | ) 279 | 280 | set(incfs_headers 281 | ${AOSP}/system/incremental_delivery/incfs/include 282 | ${AOSP}/system/incremental_delivery/incfs/util/include 283 | ) 284 | 285 | set(fmtlib_headers 286 | ${AOSP}/external/fmtlib/include 287 | ) 288 | 289 | add_subdirectory(cmake) 290 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | 203 | 204 | 205 | 206 | 207 | -------------------------------------------------------------------------------- /cmake/lib/protobuf/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(protobuf) 4 | 5 | set(PROTOBUF ${AOSP}/external/protobuf) 6 | 7 | set(LIBPROTOBUF_CPP_LITE_SRC_FILES 8 | ${PROTOBUF}/src/google/protobuf/any_lite.cc 9 | ${PROTOBUF}/src/google/protobuf/arena.cc 10 | ${PROTOBUF}/src/google/protobuf/extension_set.cc 11 | ${PROTOBUF}/src/google/protobuf/generated_enum_util.cc 12 | ${PROTOBUF}/src/google/protobuf/generated_message_table_driven_lite.cc 13 | ${PROTOBUF}/src/google/protobuf/generated_message_util.cc 14 | ${PROTOBUF}/src/google/protobuf/implicit_weak_message.cc 15 | ${PROTOBUF}/src/google/protobuf/io/coded_stream.cc 16 | ${PROTOBUF}/src/google/protobuf/io/io_win32.cc 17 | ${PROTOBUF}/src/google/protobuf/io/strtod.cc 18 | ${PROTOBUF}/src/google/protobuf/io/zero_copy_stream.cc 19 | ${PROTOBUF}/src/google/protobuf/io/zero_copy_stream_impl.cc 20 | ${PROTOBUF}/src/google/protobuf/io/zero_copy_stream_impl_lite.cc 21 | ${PROTOBUF}/src/google/protobuf/message_lite.cc 22 | ${PROTOBUF}/src/google/protobuf/parse_context.cc 23 | ${PROTOBUF}/src/google/protobuf/repeated_field.cc 24 | ${PROTOBUF}/src/google/protobuf/stubs/bytestream.cc 25 | ${PROTOBUF}/src/google/protobuf/stubs/common.cc 26 | ${PROTOBUF}/src/google/protobuf/stubs/int128.cc 27 | ${PROTOBUF}/src/google/protobuf/stubs/status.cc 28 | ${PROTOBUF}/src/google/protobuf/stubs/statusor.cc 29 | ${PROTOBUF}/src/google/protobuf/stubs/stringpiece.cc 30 | ${PROTOBUF}/src/google/protobuf/stubs/stringprintf.cc 31 | ${PROTOBUF}/src/google/protobuf/stubs/structurally_valid.cc 32 | ${PROTOBUF}/src/google/protobuf/stubs/strutil.cc 33 | ${PROTOBUF}/src/google/protobuf/stubs/time.cc 34 | ${PROTOBUF}/src/google/protobuf/wire_format_lite.cc 35 | ) 36 | 37 | 38 | set(LIBPROTOBUF_CPP_FULL_SRC_FILES 39 | ${LIBPROTOBUF_CPP_LITE_SRC_FILES} 40 | ${PROTOBUF}/src/google/protobuf/any.cc 41 | ${PROTOBUF}/src/google/protobuf/any.pb.cc 42 | ${PROTOBUF}/src/google/protobuf/api.pb.cc 43 | ${PROTOBUF}/src/google/protobuf/compiler/importer.cc 44 | ${PROTOBUF}/src/google/protobuf/compiler/parser.cc 45 | ${PROTOBUF}/src/google/protobuf/descriptor.cc 46 | ${PROTOBUF}/src/google/protobuf/descriptor.pb.cc 47 | ${PROTOBUF}/src/google/protobuf/descriptor_database.cc 48 | ${PROTOBUF}/src/google/protobuf/duration.pb.cc 49 | ${PROTOBUF}/src/google/protobuf/dynamic_message.cc 50 | ${PROTOBUF}/src/google/protobuf/empty.pb.cc 51 | ${PROTOBUF}/src/google/protobuf/extension_set_heavy.cc 52 | ${PROTOBUF}/src/google/protobuf/field_mask.pb.cc 53 | ${PROTOBUF}/src/google/protobuf/generated_message_reflection.cc 54 | ${PROTOBUF}/src/google/protobuf/generated_message_table_driven.cc 55 | ${PROTOBUF}/src/google/protobuf/io/gzip_stream.cc 56 | ${PROTOBUF}/src/google/protobuf/io/printer.cc 57 | ${PROTOBUF}/src/google/protobuf/io/tokenizer.cc 58 | ${PROTOBUF}/src/google/protobuf/map_field.cc 59 | ${PROTOBUF}/src/google/protobuf/message.cc 60 | ${PROTOBUF}/src/google/protobuf/reflection_ops.cc 61 | ${PROTOBUF}/src/google/protobuf/service.cc 62 | ${PROTOBUF}/src/google/protobuf/source_context.pb.cc 63 | ${PROTOBUF}/src/google/protobuf/struct.pb.cc 64 | ${PROTOBUF}/src/google/protobuf/stubs/mathlimits.cc 65 | ${PROTOBUF}/src/google/protobuf/stubs/substitute.cc 66 | ${PROTOBUF}/src/google/protobuf/text_format.cc 67 | ${PROTOBUF}/src/google/protobuf/timestamp.pb.cc 68 | ${PROTOBUF}/src/google/protobuf/type.pb.cc 69 | ${PROTOBUF}/src/google/protobuf/unknown_field_set.cc 70 | ${PROTOBUF}/src/google/protobuf/util/delimited_message_util.cc 71 | ${PROTOBUF}/src/google/protobuf/util/field_comparator.cc 72 | ${PROTOBUF}/src/google/protobuf/util/field_mask_util.cc 73 | ${PROTOBUF}/src/google/protobuf/util/internal/datapiece.cc 74 | ${PROTOBUF}/src/google/protobuf/util/internal/default_value_objectwriter.cc 75 | ${PROTOBUF}/src/google/protobuf/util/internal/error_listener.cc 76 | ${PROTOBUF}/src/google/protobuf/util/internal/field_mask_utility.cc 77 | ${PROTOBUF}/src/google/protobuf/util/internal/json_escaping.cc 78 | ${PROTOBUF}/src/google/protobuf/util/internal/json_objectwriter.cc 79 | ${PROTOBUF}/src/google/protobuf/util/internal/json_stream_parser.cc 80 | ${PROTOBUF}/src/google/protobuf/util/internal/object_writer.cc 81 | ${PROTOBUF}/src/google/protobuf/util/internal/proto_writer.cc 82 | ${PROTOBUF}/src/google/protobuf/util/internal/protostream_objectsource.cc 83 | ${PROTOBUF}/src/google/protobuf/util/internal/protostream_objectwriter.cc 84 | ${PROTOBUF}/src/google/protobuf/util/internal/type_info.cc 85 | ${PROTOBUF}/src/google/protobuf/util/internal/type_info_test_helper.cc 86 | ${PROTOBUF}/src/google/protobuf/util/internal/utility.cc 87 | ${PROTOBUF}/src/google/protobuf/util/json_util.cc 88 | ${PROTOBUF}/src/google/protobuf/util/message_differencer.cc 89 | ${PROTOBUF}/src/google/protobuf/util/time_util.cc 90 | ${PROTOBUF}/src/google/protobuf/util/type_resolver_util.cc 91 | ${PROTOBUF}/src/google/protobuf/wire_format.cc 92 | ${PROTOBUF}/src/google/protobuf/wrappers.pb.cc 93 | ) 94 | 95 | 96 | set(LIBPROTOC_SRC_FILES 97 | ${PROTOBUF}/src/google/protobuf/compiler/code_generator.cc 98 | ${PROTOBUF}/src/google/protobuf/compiler/command_line_interface.cc 99 | ${PROTOBUF}/src/google/protobuf/compiler/cpp/cpp_enum.cc 100 | ${PROTOBUF}/src/google/protobuf/compiler/cpp/cpp_enum_field.cc 101 | ${PROTOBUF}/src/google/protobuf/compiler/cpp/cpp_extension.cc 102 | ${PROTOBUF}/src/google/protobuf/compiler/cpp/cpp_field.cc 103 | ${PROTOBUF}/src/google/protobuf/compiler/cpp/cpp_file.cc 104 | ${PROTOBUF}/src/google/protobuf/compiler/cpp/cpp_generator.cc 105 | ${PROTOBUF}/src/google/protobuf/compiler/cpp/cpp_helpers.cc 106 | ${PROTOBUF}/src/google/protobuf/compiler/cpp/cpp_map_field.cc 107 | ${PROTOBUF}/src/google/protobuf/compiler/cpp/cpp_message.cc 108 | ${PROTOBUF}/src/google/protobuf/compiler/cpp/cpp_message_field.cc 109 | ${PROTOBUF}/src/google/protobuf/compiler/cpp/cpp_padding_optimizer.cc 110 | ${PROTOBUF}/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc 111 | ${PROTOBUF}/src/google/protobuf/compiler/cpp/cpp_service.cc 112 | ${PROTOBUF}/src/google/protobuf/compiler/cpp/cpp_string_field.cc 113 | ${PROTOBUF}/src/google/protobuf/compiler/csharp/csharp_doc_comment.cc 114 | ${PROTOBUF}/src/google/protobuf/compiler/csharp/csharp_enum.cc 115 | ${PROTOBUF}/src/google/protobuf/compiler/csharp/csharp_enum_field.cc 116 | ${PROTOBUF}/src/google/protobuf/compiler/csharp/csharp_field_base.cc 117 | ${PROTOBUF}/src/google/protobuf/compiler/csharp/csharp_generator.cc 118 | ${PROTOBUF}/src/google/protobuf/compiler/csharp/csharp_helpers.cc 119 | ${PROTOBUF}/src/google/protobuf/compiler/csharp/csharp_map_field.cc 120 | ${PROTOBUF}/src/google/protobuf/compiler/csharp/csharp_message.cc 121 | ${PROTOBUF}/src/google/protobuf/compiler/csharp/csharp_message_field.cc 122 | ${PROTOBUF}/src/google/protobuf/compiler/csharp/csharp_primitive_field.cc 123 | ${PROTOBUF}/src/google/protobuf/compiler/csharp/csharp_reflection_class.cc 124 | ${PROTOBUF}/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc 125 | ${PROTOBUF}/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc 126 | ${PROTOBUF}/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc 127 | ${PROTOBUF}/src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc 128 | ${PROTOBUF}/src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc 129 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_context.cc 130 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_doc_comment.cc 131 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_enum.cc 132 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_enum_field.cc 133 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_enum_field_lite.cc 134 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_enum_lite.cc 135 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_extension.cc 136 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_extension_lite.cc 137 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_field.cc 138 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_file.cc 139 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_generator.cc 140 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_generator_factory.cc 141 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_helpers.cc 142 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_map_field.cc 143 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_map_field_lite.cc 144 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_message.cc 145 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_message_builder.cc 146 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_message_builder_lite.cc 147 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_message_field.cc 148 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_message_field_lite.cc 149 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_message_lite.cc 150 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_name_resolver.cc 151 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_primitive_field.cc 152 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_primitive_field_lite.cc 153 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_service.cc 154 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_shared_code_generator.cc 155 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_string_field.cc 156 | ${PROTOBUF}/src/google/protobuf/compiler/java/java_string_field_lite.cc 157 | ${PROTOBUF}/src/google/protobuf/compiler/js/js_generator.cc 158 | ${PROTOBUF}/src/google/protobuf/compiler/js/well_known_types_embed.cc 159 | ${PROTOBUF}/src/google/protobuf/compiler/objectivec/objectivec_enum.cc 160 | ${PROTOBUF}/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc 161 | ${PROTOBUF}/src/google/protobuf/compiler/objectivec/objectivec_extension.cc 162 | ${PROTOBUF}/src/google/protobuf/compiler/objectivec/objectivec_field.cc 163 | ${PROTOBUF}/src/google/protobuf/compiler/objectivec/objectivec_file.cc 164 | ${PROTOBUF}/src/google/protobuf/compiler/objectivec/objectivec_generator.cc 165 | ${PROTOBUF}/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc 166 | ${PROTOBUF}/src/google/protobuf/compiler/objectivec/objectivec_map_field.cc 167 | ${PROTOBUF}/src/google/protobuf/compiler/objectivec/objectivec_message.cc 168 | ${PROTOBUF}/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc 169 | ${PROTOBUF}/src/google/protobuf/compiler/objectivec/objectivec_oneof.cc 170 | ${PROTOBUF}/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc 171 | ${PROTOBUF}/src/google/protobuf/compiler/php/php_generator.cc 172 | ${PROTOBUF}/src/google/protobuf/compiler/plugin.cc 173 | ${PROTOBUF}/src/google/protobuf/compiler/plugin.pb.cc 174 | ${PROTOBUF}/src/google/protobuf/compiler/python/python_generator.cc 175 | ${PROTOBUF}/src/google/protobuf/compiler/ruby/ruby_generator.cc 176 | ${PROTOBUF}/src/google/protobuf/compiler/subprocess.cc 177 | ${PROTOBUF}/src/google/protobuf/compiler/zip_writer.cc 178 | ) 179 | 180 | 181 | include_directories( 182 | ${protobuf_headers} 183 | ) 184 | 185 | set(CMAKE_CXX_FLAGS " \ 186 | ${GLOBAL_CXX_FLAGS} \ 187 | -frtti \ 188 | -Wall \ 189 | -Werror \ 190 | -Wno-sign-compare \ 191 | -Wno-sign-promo \ 192 | -Wno-unused-function \ 193 | -Wno-inconsistent-missing-override \ 194 | -DHAVE_ZLIB=1 \ 195 | ") 196 | 197 | add_library(protobuf-cpp-lite STATIC ${LIBPROTOBUF_CPP_LITE_SRC_FILES}) 198 | target_link_libraries(protobuf-cpp-lite) 199 | 200 | add_library(protobuf-cpp-full STATIC ${LIBPROTOBUF_CPP_FULL_SRC_FILES}) 201 | target_link_libraries(protobuf-cpp-full) 202 | 203 | add_library(protoc STATIC ${LIBPROTOC_SRC_FILES}) 204 | target_link_libraries(protoc) 205 | 206 | add_executable(aprotoc ${PROTOBUF}/src/google/protobuf/compiler/main.cc) 207 | target_link_libraries(aprotoc protoc protobuf-cpp-full log z c++ c++abi) 208 | -------------------------------------------------------------------------------- /cmake/lib/boringssl/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14.2) 2 | 3 | project(boringssl) 4 | 5 | set(BORINGSSL ${AOSP}/external/boringssl) 6 | 7 | set(LIBCRYPTO_SRC_FILES 8 | ${BORINGSSL}/linux-aarch64/crypto/fipsmodule/aesv8-armx64.S 9 | ${BORINGSSL}/linux-aarch64/crypto/fipsmodule/armv8-mont.S 10 | ${BORINGSSL}/linux-aarch64/crypto/fipsmodule/ghash-neon-armv8.S 11 | ${BORINGSSL}/linux-aarch64/crypto/fipsmodule/ghashv8-armx64.S 12 | ${BORINGSSL}/linux-aarch64/crypto/fipsmodule/sha1-armv8.S 13 | ${BORINGSSL}/linux-aarch64/crypto/fipsmodule/sha256-armv8.S 14 | ${BORINGSSL}/linux-aarch64/crypto/fipsmodule/sha512-armv8.S 15 | ${BORINGSSL}/linux-aarch64/crypto/fipsmodule/vpaes-armv8.S 16 | ${BORINGSSL}/src/crypto/fipsmodule/bcm.c 17 | ${BORINGSSL}/err_data.c 18 | ${BORINGSSL}/src/crypto/asn1/a_bitstr.c 19 | ${BORINGSSL}/src/crypto/asn1/a_bool.c 20 | ${BORINGSSL}/src/crypto/asn1/a_d2i_fp.c 21 | ${BORINGSSL}/src/crypto/asn1/a_dup.c 22 | ${BORINGSSL}/src/crypto/asn1/a_enum.c 23 | ${BORINGSSL}/src/crypto/asn1/a_gentm.c 24 | ${BORINGSSL}/src/crypto/asn1/a_i2d_fp.c 25 | ${BORINGSSL}/src/crypto/asn1/a_int.c 26 | ${BORINGSSL}/src/crypto/asn1/a_mbstr.c 27 | ${BORINGSSL}/src/crypto/asn1/a_object.c 28 | ${BORINGSSL}/src/crypto/asn1/a_octet.c 29 | ${BORINGSSL}/src/crypto/asn1/a_print.c 30 | ${BORINGSSL}/src/crypto/asn1/a_strnid.c 31 | ${BORINGSSL}/src/crypto/asn1/a_time.c 32 | ${BORINGSSL}/src/crypto/asn1/a_type.c 33 | ${BORINGSSL}/src/crypto/asn1/a_utctm.c 34 | ${BORINGSSL}/src/crypto/asn1/a_utf8.c 35 | ${BORINGSSL}/src/crypto/asn1/asn1_lib.c 36 | ${BORINGSSL}/src/crypto/asn1/asn1_par.c 37 | ${BORINGSSL}/src/crypto/asn1/asn_pack.c 38 | ${BORINGSSL}/src/crypto/asn1/f_enum.c 39 | ${BORINGSSL}/src/crypto/asn1/f_int.c 40 | ${BORINGSSL}/src/crypto/asn1/f_string.c 41 | ${BORINGSSL}/src/crypto/asn1/tasn_dec.c 42 | ${BORINGSSL}/src/crypto/asn1/tasn_enc.c 43 | ${BORINGSSL}/src/crypto/asn1/tasn_fre.c 44 | ${BORINGSSL}/src/crypto/asn1/tasn_new.c 45 | ${BORINGSSL}/src/crypto/asn1/tasn_typ.c 46 | ${BORINGSSL}/src/crypto/asn1/tasn_utl.c 47 | ${BORINGSSL}/src/crypto/asn1/time_support.c 48 | ${BORINGSSL}/src/crypto/base64/base64.c 49 | ${BORINGSSL}/src/crypto/bio/bio.c 50 | ${BORINGSSL}/src/crypto/bio/bio_mem.c 51 | ${BORINGSSL}/src/crypto/bio/connect.c 52 | ${BORINGSSL}/src/crypto/bio/fd.c 53 | ${BORINGSSL}/src/crypto/bio/file.c 54 | ${BORINGSSL}/src/crypto/bio/hexdump.c 55 | ${BORINGSSL}/src/crypto/bio/pair.c 56 | ${BORINGSSL}/src/crypto/bio/printf.c 57 | ${BORINGSSL}/src/crypto/bio/socket.c 58 | ${BORINGSSL}/src/crypto/bio/socket_helper.c 59 | ${BORINGSSL}/src/crypto/blake2/blake2.c 60 | ${BORINGSSL}/src/crypto/bn_extra/bn_asn1.c 61 | ${BORINGSSL}/src/crypto/bn_extra/convert.c 62 | ${BORINGSSL}/src/crypto/buf/buf.c 63 | ${BORINGSSL}/src/crypto/bytestring/asn1_compat.c 64 | ${BORINGSSL}/src/crypto/bytestring/ber.c 65 | ${BORINGSSL}/src/crypto/bytestring/cbb.c 66 | ${BORINGSSL}/src/crypto/bytestring/cbs.c 67 | ${BORINGSSL}/src/crypto/bytestring/unicode.c 68 | ${BORINGSSL}/src/crypto/chacha/chacha.c 69 | ${BORINGSSL}/src/crypto/cipher_extra/cipher_extra.c 70 | ${BORINGSSL}/src/crypto/cipher_extra/derive_key.c 71 | ${BORINGSSL}/src/crypto/cipher_extra/e_aesccm.c 72 | ${BORINGSSL}/src/crypto/cipher_extra/e_aesctrhmac.c 73 | ${BORINGSSL}/src/crypto/cipher_extra/e_aesgcmsiv.c 74 | ${BORINGSSL}/src/crypto/cipher_extra/e_chacha20poly1305.c 75 | ${BORINGSSL}/src/crypto/cipher_extra/e_null.c 76 | ${BORINGSSL}/src/crypto/cipher_extra/e_rc2.c 77 | ${BORINGSSL}/src/crypto/cipher_extra/e_rc4.c 78 | ${BORINGSSL}/src/crypto/cipher_extra/e_tls.c 79 | ${BORINGSSL}/src/crypto/cipher_extra/tls_cbc.c 80 | ${BORINGSSL}/src/crypto/cmac/cmac.c 81 | ${BORINGSSL}/src/crypto/conf/conf.c 82 | ${BORINGSSL}/src/crypto/cpu-aarch64-fuchsia.c 83 | ${BORINGSSL}/src/crypto/cpu-aarch64-linux.c 84 | ${BORINGSSL}/src/crypto/cpu-aarch64-win.c 85 | ${BORINGSSL}/src/crypto/cpu-arm-linux.c 86 | ${BORINGSSL}/src/crypto/cpu-arm.c 87 | ${BORINGSSL}/src/crypto/cpu-intel.c 88 | ${BORINGSSL}/src/crypto/cpu-ppc64le.c 89 | ${BORINGSSL}/src/crypto/crypto.c 90 | ${BORINGSSL}/src/crypto/curve25519/curve25519.c 91 | ${BORINGSSL}/src/crypto/curve25519/spake25519.c 92 | ${BORINGSSL}/src/crypto/dh_extra/dh_asn1.c 93 | ${BORINGSSL}/src/crypto/dh_extra/params.c 94 | ${BORINGSSL}/src/crypto/digest_extra/digest_extra.c 95 | ${BORINGSSL}/src/crypto/dsa/dsa.c 96 | ${BORINGSSL}/src/crypto/dsa/dsa_asn1.c 97 | ${BORINGSSL}/src/crypto/ec_extra/ec_asn1.c 98 | ${BORINGSSL}/src/crypto/ec_extra/ec_derive.c 99 | ${BORINGSSL}/src/crypto/ec_extra/hash_to_curve.c 100 | ${BORINGSSL}/src/crypto/ecdh_extra/ecdh_extra.c 101 | ${BORINGSSL}/src/crypto/ecdsa_extra/ecdsa_asn1.c 102 | ${BORINGSSL}/src/crypto/engine/engine.c 103 | ${BORINGSSL}/src/crypto/err/err.c 104 | ${BORINGSSL}/src/crypto/evp/digestsign.c 105 | ${BORINGSSL}/src/crypto/evp/evp.c 106 | ${BORINGSSL}/src/crypto/evp/evp_asn1.c 107 | ${BORINGSSL}/src/crypto/evp/evp_ctx.c 108 | ${BORINGSSL}/src/crypto/evp/p_dsa_asn1.c 109 | ${BORINGSSL}/src/crypto/evp/p_ec.c 110 | ${BORINGSSL}/src/crypto/evp/p_ec_asn1.c 111 | ${BORINGSSL}/src/crypto/evp/p_ed25519.c 112 | ${BORINGSSL}/src/crypto/evp/p_ed25519_asn1.c 113 | ${BORINGSSL}/src/crypto/evp/p_rsa.c 114 | ${BORINGSSL}/src/crypto/evp/p_rsa_asn1.c 115 | ${BORINGSSL}/src/crypto/evp/p_x25519.c 116 | ${BORINGSSL}/src/crypto/evp/p_x25519_asn1.c 117 | ${BORINGSSL}/src/crypto/evp/pbkdf.c 118 | ${BORINGSSL}/src/crypto/evp/print.c 119 | ${BORINGSSL}/src/crypto/evp/scrypt.c 120 | ${BORINGSSL}/src/crypto/evp/sign.c 121 | ${BORINGSSL}/src/crypto/ex_data.c 122 | ${BORINGSSL}/src/crypto/fipsmodule/bcm.c 123 | ${BORINGSSL}/src/crypto/fipsmodule/fips_shared_support.c 124 | ${BORINGSSL}/src/crypto/fipsmodule/is_fips.c 125 | ${BORINGSSL}/src/crypto/hkdf/hkdf.c 126 | ${BORINGSSL}/src/crypto/hpke/hpke.c 127 | ${BORINGSSL}/src/crypto/hrss/hrss.c 128 | ${BORINGSSL}/src/crypto/lhash/lhash.c 129 | ${BORINGSSL}/src/crypto/mem.c 130 | ${BORINGSSL}/src/crypto/obj/obj.c 131 | ${BORINGSSL}/src/crypto/obj/obj_xref.c 132 | ${BORINGSSL}/src/crypto/pem/pem_all.c 133 | ${BORINGSSL}/src/crypto/pem/pem_info.c 134 | ${BORINGSSL}/src/crypto/pem/pem_lib.c 135 | ${BORINGSSL}/src/crypto/pem/pem_oth.c 136 | ${BORINGSSL}/src/crypto/pem/pem_pk8.c 137 | ${BORINGSSL}/src/crypto/pem/pem_pkey.c 138 | ${BORINGSSL}/src/crypto/pem/pem_x509.c 139 | ${BORINGSSL}/src/crypto/pem/pem_xaux.c 140 | ${BORINGSSL}/src/crypto/pkcs7/pkcs7.c 141 | ${BORINGSSL}/src/crypto/pkcs7/pkcs7_x509.c 142 | ${BORINGSSL}/src/crypto/pkcs8/p5_pbev2.c 143 | ${BORINGSSL}/src/crypto/pkcs8/pkcs8.c 144 | ${BORINGSSL}/src/crypto/pkcs8/pkcs8_x509.c 145 | ${BORINGSSL}/src/crypto/poly1305/poly1305.c 146 | ${BORINGSSL}/src/crypto/poly1305/poly1305_arm.c 147 | ${BORINGSSL}/src/crypto/poly1305/poly1305_vec.c 148 | ${BORINGSSL}/src/crypto/pool/pool.c 149 | ${BORINGSSL}/src/crypto/rand_extra/deterministic.c 150 | ${BORINGSSL}/src/crypto/rand_extra/forkunsafe.c 151 | ${BORINGSSL}/src/crypto/rand_extra/fuchsia.c 152 | ${BORINGSSL}/src/crypto/rand_extra/passive.c 153 | ${BORINGSSL}/src/crypto/rand_extra/rand_extra.c 154 | ${BORINGSSL}/src/crypto/rand_extra/windows.c 155 | ${BORINGSSL}/src/crypto/rc4/rc4.c 156 | ${BORINGSSL}/src/crypto/refcount_c11.c 157 | ${BORINGSSL}/src/crypto/refcount_lock.c 158 | ${BORINGSSL}/src/crypto/rsa_extra/rsa_asn1.c 159 | ${BORINGSSL}/src/crypto/rsa_extra/rsa_print.c 160 | ${BORINGSSL}/src/crypto/siphash/siphash.c 161 | ${BORINGSSL}/src/crypto/stack/stack.c 162 | ${BORINGSSL}/src/crypto/thread.c 163 | ${BORINGSSL}/src/crypto/thread_none.c 164 | ${BORINGSSL}/src/crypto/thread_pthread.c 165 | ${BORINGSSL}/src/crypto/thread_win.c 166 | ${BORINGSSL}/src/crypto/trust_token/pmbtoken.c 167 | ${BORINGSSL}/src/crypto/trust_token/trust_token.c 168 | ${BORINGSSL}/src/crypto/trust_token/voprf.c 169 | ${BORINGSSL}/src/crypto/x509/a_digest.c 170 | ${BORINGSSL}/src/crypto/x509/a_sign.c 171 | ${BORINGSSL}/src/crypto/x509/a_strex.c 172 | ${BORINGSSL}/src/crypto/x509/a_verify.c 173 | ${BORINGSSL}/src/crypto/x509/algorithm.c 174 | ${BORINGSSL}/src/crypto/x509/asn1_gen.c 175 | ${BORINGSSL}/src/crypto/x509/by_dir.c 176 | ${BORINGSSL}/src/crypto/x509/by_file.c 177 | ${BORINGSSL}/src/crypto/x509/i2d_pr.c 178 | ${BORINGSSL}/src/crypto/x509/rsa_pss.c 179 | ${BORINGSSL}/src/crypto/x509/t_crl.c 180 | ${BORINGSSL}/src/crypto/x509/t_req.c 181 | ${BORINGSSL}/src/crypto/x509/t_x509.c 182 | ${BORINGSSL}/src/crypto/x509/t_x509a.c 183 | ${BORINGSSL}/src/crypto/x509/x509.c 184 | ${BORINGSSL}/src/crypto/x509/x509_att.c 185 | ${BORINGSSL}/src/crypto/x509/x509_cmp.c 186 | ${BORINGSSL}/src/crypto/x509/x509_d2.c 187 | ${BORINGSSL}/src/crypto/x509/x509_def.c 188 | ${BORINGSSL}/src/crypto/x509/x509_ext.c 189 | ${BORINGSSL}/src/crypto/x509/x509_lu.c 190 | ${BORINGSSL}/src/crypto/x509/x509_obj.c 191 | ${BORINGSSL}/src/crypto/x509/x509_r2x.c 192 | ${BORINGSSL}/src/crypto/x509/x509_req.c 193 | ${BORINGSSL}/src/crypto/x509/x509_set.c 194 | ${BORINGSSL}/src/crypto/x509/x509_trs.c 195 | ${BORINGSSL}/src/crypto/x509/x509_txt.c 196 | ${BORINGSSL}/src/crypto/x509/x509_v3.c 197 | ${BORINGSSL}/src/crypto/x509/x509_vfy.c 198 | ${BORINGSSL}/src/crypto/x509/x509_vpm.c 199 | ${BORINGSSL}/src/crypto/x509/x509cset.c 200 | ${BORINGSSL}/src/crypto/x509/x509name.c 201 | ${BORINGSSL}/src/crypto/x509/x509rset.c 202 | ${BORINGSSL}/src/crypto/x509/x509spki.c 203 | ${BORINGSSL}/src/crypto/x509/x_algor.c 204 | ${BORINGSSL}/src/crypto/x509/x_all.c 205 | ${BORINGSSL}/src/crypto/x509/x_attrib.c 206 | ${BORINGSSL}/src/crypto/x509/x_crl.c 207 | ${BORINGSSL}/src/crypto/x509/x_exten.c 208 | ${BORINGSSL}/src/crypto/x509/x_info.c 209 | ${BORINGSSL}/src/crypto/x509/x_name.c 210 | ${BORINGSSL}/src/crypto/x509/x_pkey.c 211 | ${BORINGSSL}/src/crypto/x509/x_pubkey.c 212 | ${BORINGSSL}/src/crypto/x509/x_req.c 213 | ${BORINGSSL}/src/crypto/x509/x_sig.c 214 | ${BORINGSSL}/src/crypto/x509/x_spki.c 215 | ${BORINGSSL}/src/crypto/x509/x_val.c 216 | ${BORINGSSL}/src/crypto/x509/x_x509.c 217 | ${BORINGSSL}/src/crypto/x509/x_x509a.c 218 | ${BORINGSSL}/src/crypto/x509v3/pcy_cache.c 219 | ${BORINGSSL}/src/crypto/x509v3/pcy_data.c 220 | ${BORINGSSL}/src/crypto/x509v3/pcy_lib.c 221 | ${BORINGSSL}/src/crypto/x509v3/pcy_map.c 222 | ${BORINGSSL}/src/crypto/x509v3/pcy_node.c 223 | ${BORINGSSL}/src/crypto/x509v3/pcy_tree.c 224 | ${BORINGSSL}/src/crypto/x509v3/v3_akey.c 225 | ${BORINGSSL}/src/crypto/x509v3/v3_akeya.c 226 | ${BORINGSSL}/src/crypto/x509v3/v3_alt.c 227 | ${BORINGSSL}/src/crypto/x509v3/v3_bcons.c 228 | ${BORINGSSL}/src/crypto/x509v3/v3_bitst.c 229 | ${BORINGSSL}/src/crypto/x509v3/v3_conf.c 230 | ${BORINGSSL}/src/crypto/x509v3/v3_cpols.c 231 | ${BORINGSSL}/src/crypto/x509v3/v3_crld.c 232 | ${BORINGSSL}/src/crypto/x509v3/v3_enum.c 233 | ${BORINGSSL}/src/crypto/x509v3/v3_extku.c 234 | ${BORINGSSL}/src/crypto/x509v3/v3_genn.c 235 | ${BORINGSSL}/src/crypto/x509v3/v3_ia5.c 236 | ${BORINGSSL}/src/crypto/x509v3/v3_info.c 237 | ${BORINGSSL}/src/crypto/x509v3/v3_int.c 238 | ${BORINGSSL}/src/crypto/x509v3/v3_lib.c 239 | ${BORINGSSL}/src/crypto/x509v3/v3_ncons.c 240 | ${BORINGSSL}/src/crypto/x509v3/v3_ocsp.c 241 | ${BORINGSSL}/src/crypto/x509v3/v3_pci.c 242 | ${BORINGSSL}/src/crypto/x509v3/v3_pcia.c 243 | ${BORINGSSL}/src/crypto/x509v3/v3_pcons.c 244 | ${BORINGSSL}/src/crypto/x509v3/v3_pmaps.c 245 | ${BORINGSSL}/src/crypto/x509v3/v3_prn.c 246 | ${BORINGSSL}/src/crypto/x509v3/v3_purp.c 247 | ${BORINGSSL}/src/crypto/x509v3/v3_skey.c 248 | ${BORINGSSL}/src/crypto/x509v3/v3_utl.c 249 | ) 250 | 251 | set(LIBSSL_SRC_FILES 252 | ${BORINGSSL}/src/ssl/bio_ssl.cc 253 | ${BORINGSSL}/src/ssl/d1_both.cc 254 | ${BORINGSSL}/src/ssl/d1_lib.cc 255 | ${BORINGSSL}/src/ssl/d1_pkt.cc 256 | ${BORINGSSL}/src/ssl/d1_srtp.cc 257 | ${BORINGSSL}/src/ssl/dtls_method.cc 258 | ${BORINGSSL}/src/ssl/dtls_record.cc 259 | ${BORINGSSL}/src/ssl/handoff.cc 260 | ${BORINGSSL}/src/ssl/handshake.cc 261 | ${BORINGSSL}/src/ssl/handshake_client.cc 262 | ${BORINGSSL}/src/ssl/handshake_server.cc 263 | ${BORINGSSL}/src/ssl/s3_both.cc 264 | ${BORINGSSL}/src/ssl/s3_lib.cc 265 | ${BORINGSSL}/src/ssl/s3_pkt.cc 266 | ${BORINGSSL}/src/ssl/ssl_aead_ctx.cc 267 | ${BORINGSSL}/src/ssl/ssl_asn1.cc 268 | ${BORINGSSL}/src/ssl/ssl_buffer.cc 269 | ${BORINGSSL}/src/ssl/ssl_cert.cc 270 | ${BORINGSSL}/src/ssl/ssl_cipher.cc 271 | ${BORINGSSL}/src/ssl/ssl_file.cc 272 | ${BORINGSSL}/src/ssl/ssl_key_share.cc 273 | ${BORINGSSL}/src/ssl/ssl_lib.cc 274 | ${BORINGSSL}/src/ssl/ssl_privkey.cc 275 | ${BORINGSSL}/src/ssl/ssl_session.cc 276 | ${BORINGSSL}/src/ssl/ssl_stat.cc 277 | ${BORINGSSL}/src/ssl/ssl_transcript.cc 278 | ${BORINGSSL}/src/ssl/ssl_versions.cc 279 | ${BORINGSSL}/src/ssl/ssl_x509.cc 280 | ${BORINGSSL}/src/ssl/t1_enc.cc 281 | ${BORINGSSL}/src/ssl/t1_lib.cc 282 | ${BORINGSSL}/src/ssl/tls13_both.cc 283 | ${BORINGSSL}/src/ssl/tls13_client.cc 284 | ${BORINGSSL}/src/ssl/tls13_enc.cc 285 | ${BORINGSSL}/src/ssl/tls13_server.cc 286 | ${BORINGSSL}/src/ssl/tls_method.cc 287 | ${BORINGSSL}/src/ssl/tls_record.cc 288 | ) 289 | 290 | set(DEFAULT_FLAGS " \ 291 | -fvisibility=hidden \ 292 | -DBORINGSSL_SHARED_LIBRARY \ 293 | -DBORINGSSL_ANDROID_SYSTEM \ 294 | -DOPENSSL_SMALL \ 295 | -D_XOPEN_SOURCE=700 \ 296 | -Werror \ 297 | -Wno-unused-parameter \ 298 | -DBORINGSSL_FIPS \ 299 | -fPIC \ 300 | -fno-data-sections \ 301 | -fno-function-sections \ 302 | ") 303 | 304 | set(CMAKE_C_FLAGS " \ 305 | ${GLOBAL_C_FLAGS} \ 306 | ${DEFAULT_FLAGS} \ 307 | ") 308 | 309 | set(CMAKE_CXX_FLAGS " \ 310 | ${GLOBAL_CXX_FLAGS} \ 311 | ${DEFAULT_FLAGS} \ 312 | -DBORINGSSL_IMPLEMENTATION \ 313 | ") 314 | 315 | include_directories( 316 | ${BORINGSSL}/src/include 317 | ${BORINGSSL}/src/crypto 318 | ) 319 | 320 | add_library(crypto STATIC ${LIBCRYPTO_SRC_FILES}) 321 | target_link_libraries(crypto) 322 | 323 | add_library(ssl STATIC ${LIBSSL_SRC_FILES}) 324 | target_link_libraries(ssl) 325 | 326 | 327 | --------------------------------------------------------------------------------