Add last 250 traffic log entries to logcat

This commit is contained in:
M66B 2016-02-14 13:50:11 +01:00
parent 19b0fe25a5
commit 9769db65c1
2 changed files with 52 additions and 3 deletions

View File

@ -57,7 +57,7 @@ public class AdapterLog extends CursorAdapter {
private int colFlags;
private int colSAddr;
private int colSPort;
private int colDaddr;
private int colDAddr;
private int colDPort;
private int colDName;
private int colUid;
@ -82,7 +82,7 @@ public class AdapterLog extends CursorAdapter {
colFlags = cursor.getColumnIndex("flags");
colSAddr = cursor.getColumnIndex("saddr");
colSPort = cursor.getColumnIndex("sport");
colDaddr = cursor.getColumnIndex("daddr");
colDAddr = cursor.getColumnIndex("daddr");
colDPort = cursor.getColumnIndex("dport");
colDName = cursor.getColumnIndex("dname");
colUid = cursor.getColumnIndex("uid");
@ -128,7 +128,7 @@ public class AdapterLog extends CursorAdapter {
String flags = cursor.getString(colFlags);
String saddr = cursor.getString(colSAddr);
int sport = (cursor.isNull(colSPort) ? -1 : cursor.getInt(colSPort));
String daddr = cursor.getString(colDaddr);
String daddr = cursor.getString(colDAddr);
int dport = (cursor.isNull(colDPort) ? -1 : cursor.getInt(colDPort));
String dname = (cursor.isNull(colDName) ? null : cursor.getString(colDName));
int uid = (cursor.isNull(colUid) ? -1 : cursor.getInt(colUid));

View File

@ -29,6 +29,7 @@ import android.content.SharedPreferences;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkInfo;
@ -63,6 +64,8 @@ import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@ -743,6 +746,7 @@ public class Util {
Log.i(TAG, "Writing logcat URI=" + uri);
out = context.getContentResolver().openOutputStream(uri);
out.write(getLogcat().toString().getBytes());
out.write(getTrafficLog(context).toString().getBytes());
} catch (Throwable ex) {
Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
sb.append(ex.toString()).append("\r\n").append(Log.getStackTraceString(ex)).append("\r\n");
@ -777,6 +781,51 @@ public class Util {
task.execute();
}
private static StringBuilder getTrafficLog(Context context) {
StringBuilder sb = new StringBuilder();
Cursor cursor = DatabaseHelper.getInstance(context).getLog(true, true, true, true, true);
int colTime = cursor.getColumnIndex("time");
int colVersion = cursor.getColumnIndex("version");
int colProtocol = cursor.getColumnIndex("protocol");
int colFlags = cursor.getColumnIndex("flags");
int colSAddr = cursor.getColumnIndex("saddr");
int colSPort = cursor.getColumnIndex("sport");
int colDAddr = cursor.getColumnIndex("daddr");
int colDPort = cursor.getColumnIndex("dport");
int colDName = cursor.getColumnIndex("dname");
int colUid = cursor.getColumnIndex("uid");
int colData = cursor.getColumnIndex("data");
int colAllowed = cursor.getColumnIndex("allowed");
int colConnection = cursor.getColumnIndex("connection");
int colInteractive = cursor.getColumnIndex("interactive");
DateFormat format = SimpleDateFormat.getDateTimeInstance();
int count = 0;
while (cursor.moveToNext() && ++count < 250) {
sb.append(format.format(cursor.getLong(colTime)));
sb.append(" v").append(cursor.getInt(colVersion));
sb.append(" p").append(cursor.getInt(colProtocol));
sb.append(' ').append(cursor.getString(colFlags));
sb.append(' ').append(cursor.getString(colSAddr));
sb.append('/').append(cursor.getInt(colSPort));
sb.append(" > ").append(cursor.getString(colDAddr));
sb.append('/').append(cursor.getString(colDName));
sb.append('/').append(cursor.getInt(colDPort));
sb.append(" u").append(cursor.getInt(colUid));
sb.append(" a").append(cursor.getInt(colAllowed));
sb.append(" c").append(cursor.getInt(colConnection));
sb.append(" i").append(cursor.getInt(colInteractive));
sb.append(' ').append(cursor.getString(colData));
sb.append("\r\n");
}
cursor.close();
return sb;
}
private static StringBuilder getLogcat() {
StringBuilder builder = new StringBuilder();
Process process1 = null;