안녕하세요! libpcap를 올려서 안드로이드 폰에서 패킷 캡쳐를 해보려고 합니다...
libpcap는 ndk-build 하고 , pcap.so 와 libpcap.so 등을 라이브러이 로드 해서 간단한 코드를 돌려 보았습니다..
그런데
이와 같은 에러가 납니다...... 안드로이드 에뮬레이터는 루트 권한이라고 알고 있었는데 ㅠ_ㅜ
ㅈㅓ의 실행 환경은 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);
}