0x00 背景
略
0x01 方法
用以下Android.mk和main.c编译即可。编译出的libmain.so既可以当作动态库来链接,也可当作可执行文件执行。需要注意的是,如果是使用cpp后缀,__attribute__((section(".interp")))将不起作用。包含__attribute__((section(".interp")))的源码只能使用.c后缀
//Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := main
LOCAL_CFLAGS += -fPIC -pie
LOCAL_LDFLAGS += -Wl,-e,entry -llog
LOCAL_MODULE := main
LOCAL_SRC_FILES := main.c
include $(BUILD_SHARED_LIBRARY)