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
if ((*p = ptrace(PTRACE_PEEKTEXT, pid, (void *)(pos+(i*4)), (void *)*p))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~
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
if ((*p = ptrace(PTRACE_PEEKTEXT, pid, (void *)(pos+(i*4)), (void *)*p))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~
2 warnings generated.
[armeabi] Executable : hijack
[armeabi] Install : hijack => libs/armeabi/hijack
注意!!
5.x编译需要在Android.mk加入:LOCAL_CFLAGS += -pie -fPIE
LOCAL_LDFLAGS += -pie -fPIE