C:\Users\piao\Downloads\adbi\hijack\jni λ ndk-build.cmd Android NDK: APP_PLATFORM not set. Defaulting to minimum supported version android-14. [arm64-v8a] Compile : hijack <= hijack.c C:/Users/piao/Downloads/adbi/hijack/jni/../hijack.c:141:22: warning: passing 'unsigned char [16]' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign] if (strncmp(ELFMAG, ehdr.e_ident, SELFMAG)) { /* sanity */ ^~~~~~~~~~~~ D:/DevelopTools/Android/sdk/ndk-bundle/build//../sysroot/usr/include\string.h:137:44: note: passing argument to parameter '__rhs' here int strncmp(const char* __lhs, const char* __rhs, size_t __n) __attribute_pure__; ^ C:/Users/piao/Downloads/adbi/hijack/jni/../hijack.c:529:76: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare] if ((*p = ptrace(PTRACE_PEEKTEXT, pid, (void *)(pos+(i*4)), (void *)*p)) < 0) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~ C:/Users/piao/Downloads/adbi/hijack/jni/../hijack.c:764:11: error: use of undeclared identifier 'PTRACE_GETREGS' ptrace(PTRACE_GETREGS, pid, 0, ®s); ^ C:/Users/piao/Downloads/adbi/hijack/jni/../hijack.c:792:9: error: use of undeclared identifier 'PTRACE_GETREGS' ptrace(PTRACE_GETREGS, pid, 0, ®s); ^ C:/Users/piao/Downloads/adbi/hijack/jni/../hijack.c:873:9: error: use of undeclared identifier 'PTRACE_SETREGS' ptrace(PTRACE_SETREGS, pid, 0, ®s); ^ 2 warnings and 3 errors generated. make: *** [C:/Users/piao/Downloads/adbi/hijack/obj/local/arm64-v8a/objs/hijack/__/hijack.o] Error 1
解决方法:
在 Android.mk 统计目录 新建 Application.mk 文件,内容如下:
APP_PLATFORM := android-14 // 这句可不加,主要是消除编译警告!!! APP_ABI := armeabi-v7a
重新编译:
C:\Users\piao\Downloads\adbi\hijack\jni λ ndk-build.cmd Android NDK: APP_PLATFORM not set. Defaulting to minimum supported version android-14. [armeabi] Compile arm : hijack <= hijack.c C:/Users/piao/Downloads/adbi/hijack/jni/../hijack.c:141:22: warning: passing 'unsigned char [16]' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign] if (strncmp(ELFMAG, ehdr.e_ident, SELFMAG)) { /* sanity */ ^~~~~~~~~~~~ D:/DevelopTools/Android/sdk/ndk-bundle/build//../sysroot/usr/include\string.h:137:44: note: passing argument to parameter '__rhs' here int strncmp(const char* __lhs, const char* __rhs, size_t __n) __attribute_pure__; ^ C:/Users/piao/Downloads/adbi/hijack/jni/../hijack.c:529:76: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare] if ((*p = ptrace(PTRACE_PEEKTEXT, pid, (void *)(pos+(i*4)), (void *)*p)) < 0) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~ 2 warnings generated. [armeabi] Executable : hijack [armeabi] Install : hijack => libs/armeabi/hijack
注意!!
5.x编译需要在Android.mk加入:
LOCAL_CFLAGS += -pie -fPIE LOCAL_LDFLAGS += -pie -fPIE
发表评论