mirror of https://github.com/M66B/FairEmail.git
Use process builder for logcat
This commit is contained in:
parent
409d18a8cd
commit
1fa5c7cb59
|
@ -247,8 +247,6 @@ public class Log {
|
||||||
|
|
||||||
public static native void jni_safe_write(OutputStream os, byte[] data);
|
public static native void jni_safe_write(OutputStream os, byte[] data);
|
||||||
|
|
||||||
public static native Process jni_safe_runtime_exec(Runtime runtime, String[] cmd);
|
|
||||||
|
|
||||||
public static native long[] jni_safe_runtime_stats();
|
public static native long[] jni_safe_runtime_stats();
|
||||||
|
|
||||||
public static void setLevel(Context context) {
|
public static void setLevel(Context context) {
|
||||||
|
@ -3132,15 +3130,18 @@ public class Log {
|
||||||
attachment.progress = 0;
|
attachment.progress = 0;
|
||||||
attachment.id = db.attachment().insertAttachment(attachment);
|
attachment.id = db.attachment().insertAttachment(attachment);
|
||||||
|
|
||||||
|
// https://cheatsheetseries.owasp.org/cheatsheets/OS_Command_Injection_Defense_Cheat_Sheet.html#java
|
||||||
|
ProcessBuilder pb = new ProcessBuilder("logcat",
|
||||||
|
"-d",
|
||||||
|
"-v", "threadtime",
|
||||||
|
//"-t", "1000",
|
||||||
|
Log.TAG + ":I");
|
||||||
|
pb.directory(context.getFilesDir());
|
||||||
|
|
||||||
Process proc = null;
|
Process proc = null;
|
||||||
File file = attachment.getFile(context);
|
File file = attachment.getFile(context);
|
||||||
try (OutputStream os = new BufferedOutputStream(new FileOutputStream(file))) {
|
try (OutputStream os = new BufferedOutputStream(new FileOutputStream(file))) {
|
||||||
String[] cmd = new String[]{"logcat",
|
proc = pb.start();
|
||||||
"-d",
|
|
||||||
"-v", "threadtime",
|
|
||||||
//"-t", "1000",
|
|
||||||
Log.TAG + ":I"};
|
|
||||||
proc = proc = jni_safe_runtime_exec(Runtime.getRuntime(), cmd);
|
|
||||||
|
|
||||||
long size = 0;
|
long size = 0;
|
||||||
try (BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()))) {
|
try (BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()))) {
|
||||||
|
|
|
@ -83,15 +83,6 @@ Java_eu_faircode_email_Log_jni_1safe_1write(JNIEnv *env, jclass clazz,
|
||||||
env->CallVoidMethod(os, mid, data);
|
env->CallVoidMethod(os, mid, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C"
|
|
||||||
JNIEXPORT jobject JNICALL
|
|
||||||
Java_eu_faircode_email_Log_jni_1safe_1runtime_1exec(JNIEnv *env, jclass clazz,
|
|
||||||
jobject runtime, jobjectArray cmd) {
|
|
||||||
jclass cls = env->FindClass("java/lang/Runtime");
|
|
||||||
jmethodID mid = env->GetMethodID(cls, "exec", "([Ljava/lang/String;)Ljava/lang/Process;");
|
|
||||||
return env->CallObjectMethod(runtime, mid, cmd);
|
|
||||||
}
|
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
JNIEXPORT jlongArray JNICALL
|
JNIEXPORT jlongArray JNICALL
|
||||||
Java_eu_faircode_email_Log_jni_1safe_1runtime_1stats(JNIEnv *env, jclass clazz) {
|
Java_eu_faircode_email_Log_jni_1safe_1runtime_1stats(JNIEnv *env, jclass clazz) {
|
||||||
|
|
Loading…
Reference in New Issue