마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

패킷 스니퍼 에러입니다. github 프로젝트의 에러 해결좀 부탁드립니다.

0 추천

안녕하세요. 초보 개발자입니다.

 

https://github.com/angad/psniffer

 

위 소스를 다운받아 설치를 하고 start 버튼을 누르니

 

에러가 뜨면서 앱이 죽었습니다.

 

log는 permission denined 외에 여러가지가 떴는데요..

 

ssl 권한 획득을 안해서 인지는 모르겠는데 위 소스에는 그부분의 구현이 없습니다.

 

이 앱을 오류없이 동작시키고 싶습니다.

 

public class tcpdump extends Activity {
/** Called when the activity is first created. */
	Process process;
@Override
public void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.main);

	Process p;
	try 
	{	p = Runtime.getRuntime().exec("su");
		try 
		{	p.waitFor();
			if (p.exitValue() != 255) 
			{
				Log.v("TCPDUMP", "ROOT");
			}
			else 
			{
				Log.v("TCPDUMP", "NOT ROOT");
			}
		} 
		catch (InterruptedException e) 
		{
			Log.v("TCPDUMP", "NOT ROOT");
		}
	}
	
	catch (IOException e) 
	{ 
		e.printStackTrace(); 
	}
		
	Button start = (Button)findViewById(R.id.start);
	start.setOnClickListener(startSniffing);

	Button stop = (Button)findViewById(R.id.stop);
	stop.setOnClickListener(stopSniffing);
}

private OnClickListener startSniffing = new OnClickListener() 
{
	@Override
	public void onClick(View v)
	{			
		try {
			process = Runtime.getRuntime().exec("tcpdump");
			
			BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
			PrintingThread t = new PrintingThread(reader);
			t.run();
			reader.close();
		}
		catch (IOException e) 
		{
			throw new RuntimeException(e);
		}
	}
};

private OnClickListener stopSniffing = new OnClickListener() {
	public void onClick(View v){
		KillProcessThread t = new KillProcessThread(process);
		t.run();
	}
};
}



 에러내용:

Process: org.umit.android.psniffer, PID: 8868
                                                                         java.lang.RuntimeException: java.io.IOException: Error running exec(). Command: [tcpdump] Working Directory: null Environment: null

                                                                          Caused by: java.io.IOException: Error running exec(). Command: [tcpdump] Working Directory: null Environment: null
                                                                             at 
                                                                             at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                             at java.lang.reflect.Method.invoke(Method.java:515) 
                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291) 
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107) 
                                                                             at dalvik.system.NativeStart.main(Native Method) 
                                                                          Caused by: java.io.IOException: Permission denied
                                                                             at java.lang.ProcessManager.exec(Native Method)
   
다른 방법이 없을까요. 선배님들께 조언 구하겠습니다.

헐잘생겼다 (570 포인트) 님이 2016년 7월 28일 질문
헐잘생겼다님이 2016년 7월 28일 수정

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...