안녕하세요. 초보 개발자입니다.
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)
다른 방법이 없을까요. 선배님들께 조언 구하겠습니다.