概述
脱离Android Studio
,使用CMake
交叉编译,生成Android ARM&ARM64
可执行文件及公共库。
环境
CMake 3.10.2、3.18.1
、NDK 21.4.7075529、22.1.7171670
(从Android Studio
的SDK Manager
中下载)
ABI
:armeabi-v7a
、arm64-v8a
CMakeLists.txt
可执行文件
1 2 3 4 5
| cmake_minimum_required(VERSION 3.10.2)
project(victim)
add_executable(victim victim.cpp)
|
共享库
1 2 3 4 5 6 7
| cmake_minimum_required(VERSION 3.18.1)
project(inject)
add_library(inject SHARED inject.cpp)
target_link_libraries(inject log)
|
compile.bat
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| @echo off
set abi=arm64-v8a set CMAKE_PATH=D:\Tools\AndroidSDK\cmake\3.18.1\bin set NDK_HOME=D:\Tools\AndroidSDK\ndk\21.4.7075529
if not exist %abi% md %abi% cd %abi% del /q *.*
%CMAKE_PATH%\cmake ^ -DANDROID_ABI=%abi% ^ -DANDROID_NDK=%NDK_HOME% ^ -DCMAKE_BUILD_TYPE=Debug ^ -DCMAKE_TOOLCHAIN_FILE=%NDK_HOME%/build/cmake/android.toolchain.cmake ^ -DANDROID_NATIVE_API_LEVEL=16 ^ -DANDROID_TOOLCHAIN=clang -DCMAKE_GENERATOR="Ninja" ^ -DCMAKE_MAKE_PROGRAM=%CMAKE_PATH%/ninja ^ ..
%CMAKE_PATH%/ninja cd .. pause
|
参考
实现简易安卓inlinehook
脱离AS在windows下使用CMake交叉编译for Android