Fork-based supervisor ensures the interceptor process survives crashes. pingBinder() liveness check on pre-transact returns DEAD_OBJECT to callers when interceptor is down, preventing real TEE state from leaking during the restart window. action.sh clears persistent key storage via KSU Action button. uninstall.sh kills daemon processes and removes module artifacts while preserving target.txt and keybox configuration.
32 lines
1.2 KiB
CMake
32 lines
1.2 KiB
CMake
cmake_minimum_required(VERSION 3.10)
|
|
project(TEESimulator)
|
|
|
|
set(CMAKE_CXX_STANDARD 23)
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
|
|
|
|
# LSPlt configuration
|
|
OPTION(LSPLT_BUILD_SHARED OFF)
|
|
add_subdirectory(external/LSPlt/lsplt/src/main/jni)
|
|
|
|
add_compile_definitions(BINDER_DISABLE_NATIVE_HANDLE)
|
|
add_library(utils SHARED stub/stub_utils.cpp)
|
|
target_include_directories(utils PUBLIC external/AOSP/include)
|
|
|
|
add_library(binder SHARED stub/stub_binder.cpp)
|
|
target_include_directories(binder PUBLIC external/AOSP/include)
|
|
target_link_libraries(binder PRIVATE utils)
|
|
|
|
add_executable(libinject.so inject/main.cpp inject/utils.cpp)
|
|
target_include_directories(libinject.so PUBLIC include)
|
|
target_link_libraries(libinject.so PRIVATE lsplt_static)
|
|
|
|
add_executable(libsupervisor.so supervisor.cpp)
|
|
target_link_libraries(libsupervisor.so PRIVATE log)
|
|
|
|
add_library(${CMAKE_PROJECT_NAME} SHARED binder_interceptor.cpp)
|
|
target_include_directories(${CMAKE_PROJECT_NAME} PUBLIC external/linux-kernel/include include)
|
|
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE binder lsplt_static utils)
|
|
|