안녕하세요! libpcap를 올려서 안드로이드 폰에서 패킷 캡쳐를 해보려고 합니다...

 

libpcap는 ndk-build 하고 , pcap.so 와 libpcap.so 등을 라이브러이 로드 해서   간단한 코드를 돌려 보았습니다..

 

그런데

 

그림1.png

 

이와 같은 에러가 납니다......  안드로이드  에뮬레이터는 루트 권한이라고 알고 있었는데 ㅠ_ㅜ

 

ㅈㅓ의 실행 환경은 4.0.3 입니다.

 

구글을 찾다가 밑에와 같은 퍼미션을 주고 .. 또 adb 명령어로 root 하면 already root 라고 나오고 remount 도 success 했다고 나오고... ㅠ_ㅜ

 

 <uses-permission android:name="android.permission.ACCESS_SUPERUSER" />

 

 

혹시, 이 에러를 해결 할 수 있는 방법 있을 까요? ㅠ_ㅜ

 

아직 대학생이다 보니... 안드로이드 폰을 사서 루팅을 시켜서 실행 해 볼 수 있는 여력이 없는지라 ㅠ_ㅜ

 

안드로이드도 시작 한지 얼마 안되는 초보 입니다...

 

 도와 주세요!ㅠ_ㅜ

 

------------------------------저의 java 코드 입니다.---------------------------------------------

 


public class libpcaptest extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);   
     System.loadLibrary("pcap");
        System.loadLibrary("pcaptest");  

        testLog();
    }

 

---------------------------------------libpcap-native.c 코드 입니다...--------------------------------------------------------------

 

#include <jni.h> 
#include <string.h> 
#include <android/log.h> 
#include <pcap.h> 

#define DEBUG_TAG "Sample_LIBPCAP_DEBUGGING" 

JNIEXPORT void JNICALL Java_org_umit_android_libpcaptest_libpcaptest_testLog
(JNIEnv *env, jclass clazz, jstring message) 

    char errbuf[1024]; 
    errbuf[0] = '\0'; 

   char *szLogThis; 
   char *dev = pcap_lookupdev(errbuf); 

    if (dev == NULL) { 
        szLogThis = "Couldn't find default device";      
    } 
    else szLogThis = dev; 

    __android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "Device status: [%s]", szLogThis); 
    __android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "errbuf [%s]", errbuf); 

    (*env)->ReleaseStringUTFChars(env, message, szLogThis);
}