本文记录NDK环境配置及编译简单程序。本人水平有限,若您发现有错误之处,恳请指正。Boygirl
电脑: Window10
手机: AndroidPhone Redmi note 4x 7.0 root
环境: Java 1.8.0_121、ndk-r21e
因为内网无法从AS中安装NDK,于是从官网下载NDK,解压和配置环境变量。
从官网下载android-ndk-r21e-windows-x86_64.zip
解压:
新增NDK_HOME
在Path新增%NDK_HOME%
Win+R,输入cmd回车打开cmd窗口,输入ndk-build,回车,出现以下内容及说明配置正确
新建jni文件夹,绝对路径不要出现中文。
进入jni文件夹,新建文件ndkAA.c,使用notepad++打开
输入以下内容,并保存:
#include <stdio.h> int main(){ printf("helloWorld,NDK"); return 0; }
在jni文件夹中,新建Android.mk文件,使用notepad++打开
输入以下内容,并保存:
LOCAL_PATH:=$(call my-dir) include$(CLEAR_VARS) LOCAL_ARM_MODE := arm LOCAL_MODULE := ndkAA LOCAL_SRC_FILES := ndkAA.c include $(BUILD_EXECUTABLE)
在jni文件夹中,新建Application.mk文件,使用notepad++打开
输入以下内容,并保存:
APP_ABI := x86 armeabi-v7a
使用cmd进入jni文件夹,敲入ndk-build,回车,得到可执行文件
在jni文件夹的同级目录下,生成了libs、obj文件夹。
进入libs\armeabi-v7a,拷贝全路径
E:\************\Android\AReverse\code\04.NDK\libs\armeabi-v7a
将root手机连接到电脑,开启usb调试模式。新开cmd窗口,输入adb devices,出现如下图说明成功连接手机
使用命令
cd E:\************\Android\AReverse\code\04.NDK\libs\armeabi-v7a,进入到ndkAA可执行文件的目录
使用命令adb push ndkAA /data/local/tmp ndkAA将该ndkAA推送到手机的/data/local/tmp目录
新开cmd窗口,使用adb shell命令进入手机的根目录,使用su切换到root用户,切换到文件夹cd /data/local/tmp
使用ls -l查看该文件的权限
使用chmod 777 ndkAA赋予所有权限。
使用./ndkAA运行该程序,成功执行该程序,输出helloWorld,NDK。
本博文记录了安装NDK、配置NDK、编写编译运行可执行文件的过程,为后边学习逆向打基础。
无