西宁市网站建设多少钱,wordpress评论推广,什么软件可以做ppt,国外优秀网站案例一、配置NDK交叉编译平台
1. 打开Android的官方ndk下载链接https://developer.android.com/ndk/downloads?hlzh-cn#xff0c;下载windows 64位ndk环境包。 2. 解压后将具有以下文件的路径加入到系统环境变量。 3. 配置好环境变量#xff0c;如下图所示#xff0c;Path中存…一、配置NDK交叉编译平台
1. 打开Android的官方ndk下载链接https://developer.android.com/ndk/downloads?hlzh-cn下载windows 64位ndk环境包。 2. 解压后将具有以下文件的路径加入到系统环境变量。 3. 配置好环境变量如下图所示Path中存在第2步中的路径。
4. 重启电脑在终端中输入ndk-build如果能够看到路径说明配置正确。 二、编写C程序或动态库
1. 创建文件夹和文件对应的文件树如下最外层文件夹名可自定。 2. /my_android_hook/jni/Android.mk代码如下如果需要构建动态链接库则使用include $(BUILD_SHARED_LIBRARY)如果需要构建可执行程序则使用include $(BUILD_EXECUTABLE)。
# 获取当前目录路径并赋给 LOCAL_PATH 变量
LOCAL_PATH:$(call my-dir)
# 包含清除变量指令
include $(CLEAR_VARS)
# 设置本地模块的名称为 hook_crackme1
LOCAL_MODULE : hook_crackme1
# 指定源文件为 hook.c
LOCAL_SRC_FILES : hook.c
# 添加日志库依赖
LOCAL_LDLIBS -llog
# 包含构建共享库的指令
# include $(BUILD_SHARED_LIBRARY)
# 包含构建可执行文件的指令
include $(BUILD_EXECUTABLE)
3. /my_android_hook/jni/Application.mk代码如下。
# 指定编译生成的模块文件支持的 CPU 架构这里选择 armeabi-v7a。
APP_ABI : armeabi-v7a
# 指定编译生成的模块文件运行支持的 Android 版本这里选择 android-21。
APP_PLATFORM : android-21
# 指定使用的 C 标准库这里选择 c_static。
APP_STL : c_static
4. /my_android_hook/jni/hook.c代码可以自己写也可以是.cpp文件。
5. 在/my_android_hook/ 路径下运行命令行ndk-build如果第3步选的是BUILD_SHARED_LIBRARY动态库在没有error的情况下应该可以看到如图结果。so文件在libs/armeabi-v7a/{链接库名}.so。 6. 如果第3步选的是BUILD_EXECUTABLE可执行文件在没有error的情况下应该可以看到下图结果可执行文件在libs/armebi-v7a/{文件名}。 三、测试运行ELF可执行程序
1. 用ADB连接真机或者模拟器。真机用开发者选型-usb调试模拟器将端口号改为模拟器adb端口 2. 将ELF程序push到android设备的/data/local/tmp路径下。 3. 使用终端命令行adb shell进入android shell并使用su命令获取root权限。 4. cd到/data/local/tmp路径使用命令chmod x {文件名}将ELF程序修改为可执行。 5. 使用命令./{文件名}运行ELF程序。如果输出太多也可以使用./{文件名} 1.txt将输出保存到1.txt文件里然后使用cat 1.txt或者head -n 10 1.txt查看输出 6. 如果运行结果与预想一致说明编译出的ELF程序可以在目标平台运行如果出现问题可能是Application.mk文件指定的APP_PLATFORM版本或者APP_ABI与目标平台不一致。