移植wireless tool到Android, /bin/sh:xx(命令) not found 问题的解决方案

微信扫码,给个关注吧
在这里插入图片描述
/system/bin/sh: iwpriv: not found 问题解决方案
代码下载地址

在使用iwpriv命令时,遇到了 /system/bin/sh: iwpriv: not found 报错,如何去手机/system/bin目录下查找,果然没有这个命令,像ifconfig logcat adbd这些都是有的。所以手机需要安装 wireless-tools 工具。
1、首先下载代码:代码下载地址
代码下载后解压并放到手机源码external/wireless-tools路径下。

2、添加Android.mk

LOCAL_PATH:=$(call my-dir)

# iwlib
include $(CLEAR_VARS)

LOCAL_SRC_FILES := iwlib.c

LOCAL_CFLAGS += -Wno-parentheses-equality -Wno-tautological-compare -Wno-self-assign \
                -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-qual \
                -Winline -MMD -fPIC
LOCAL_STATIC_LIBRARIES := libcutils libc libm

LOCAL_MODULE := libiw
LOCAL_MODULE_TAGS :=optional

include $(BUILD_STATIC_LIBRARY)

# iwconfig
include $(CLEAR_VARS)

LOCAL_SRC_FILES := iwconfig.c

LOCAL_CFLAGS += -Wno-parentheses-equality -Wno-tautological-compare -Wno-self-assign \
                -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-qual \
                -Winline -MMD -fPIC

LOCAL_STATIC_LIBRARIES := libcutils libc libm libiw
LOCAL_FORCE_STATIC_EXECUTABLE := true

LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)  # install to system/xbin

LOCAL_MODULE:= iwconfig
LOCAL_MODULE_TAGS :=optional

include $(BUILD_EXECUTABLE)

# iwevent
include $(CLEAR_VARS)

LOCAL_SRC_FILES := iwevent.c

LOCAL_CFLAGS += -Wno-parentheses-equality -Wno-tautological-compare -Wno-self-assign \
                -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-qual \
                -Winline -MMD -fPIC

LOCAL_STATIC_LIBRARIES := libcutils libc libm libiw
LOCAL_FORCE_STATIC_EXECUTABLE := true

LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)  # install to system/xbin

LOCAL_MODULE:= iwevent
LOCAL_MODULE_TAGS :=optional

include $(BUILD_EXECUTABLE)

# iwgetid
include $(CLEAR_VARS)

LOCAL_SRC_FILES := iwgetid.c

LOCAL_CFLAGS += -Wno-parentheses-equality -Wno-tautological-compare -Wno-self-assign \
                -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-qual \
                -Winline -MMD -fPIC

LOCAL_STATIC_LIBRARIES := libcutils libc libm libiw
LOCAL_FORCE_STATIC_EXECUTABLE := true

LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)  # install to system/xbin

LOCAL_MODULE:= iwgetid
LOCAL_MODULE_TAGS :=optional

include $(BUILD_EXECUTABLE)

# iwlist
include $(CLEAR_VARS)

LOCAL_SRC_FILES := iwlist.c

LOCAL_CFLAGS += -Wno-parentheses-equality -Wno-tautological-compare -Wno-self-assign \
                -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-qual \
                -Winline -MMD -fPIC

LOCAL_STATIC_LIBRARIES := libcutils libc libm libiw
LOCAL_FORCE_STATIC_EXECUTABLE := true

LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)  # install to system/xbin

LOCAL_MODULE:= iwlist
LOCAL_MODULE_TAGS :=optional

include $(BUILD_EXECUTABLE)

# iwpriv
include $(CLEAR_VARS)

LOCAL_SRC_FILES := iwpriv.c

LOCAL_CFLAGS += -Wno-parentheses-equality -Wno-tautological-compare -Wno-self-assign \
                -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-qual \
                -Winline -MMD -fPIC

LOCAL_STATIC_LIBRARIES := libcutils libc libm libiw
LOCAL_FORCE_STATIC_EXECUTABLE := true

LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)  # install to system/xbin

LOCAL_MODULE:= iwpriv
LOCAL_MODULE_TAGS :=optional

include $(BUILD_EXECUTABLE)


# iwspy
include $(CLEAR_VARS)
LOCAL_SRC_FILES := iwspy.c

LOCAL_CFLAGS += -Wno-parentheses-equality -Wno-tautological-compare -Wno-self-assign \
                -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-qual \
                -Winline -MMD -fPIC

LOCAL_STATIC_LIBRARIES := libcutils libc libm libiw
LOCAL_FORCE_STATIC_EXECUTABLE := true

LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)  # install to system/xbin

LOCAL_MODULE:= iwspy
LOCAL_MODULE_TAGS :=optional

LOCAL_CFLAGS += -Wno-parentheses-equality -Wno-tautological-compare -Wno-self-assign

include $(BUILD_EXECUTABLE)

3、直接单编wireless-tool mmm external/wireless-tools/

我的代码是经过自己修改的,把报错都解决了,直接编译成功。如果有错误,可以在不影响其他代码的前提下把错误代码注释掉。

4、编译成功后生成的文件在路径system/xbin/
在这里插入图片描述
可以看到 其中就有 iwpriv 文件,还有一些其他常用命令,比如 tcpdump、iwlist 等待。直接把相应的文件push到手机 system/xbin 目录下,手机就可以用这些命令了。


版权声明:本文为qq_43804080原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。