[英]How to redirect data of dmesg using Runtime.exec?
問題1:我想使用我的應用程序將內核日志重定向到其他文件。 如何正確執行呢? 代碼如下所示:
Runtime.getRuntime().exec("dmesg > /data/kernel_log.txt");
問題2:我想使用我的應用清除內核日志。 如何更正以下代碼;
Runtime.getRuntime().exec("dmesg -c");
注意1:我的目標是從START到LATEST獲取內核(dmesg)的所有日志。 由於dmesg具有緩沖區大小限制,我不想重建內核只是為了調整緩沖區大小。
注意2:這與很相關; android:如何從代碼內運行shell命令
注意3:當前,我正在使用具有ENG模式構建的設備,這意味着這是扎根的,對嗎?
Logcat錯誤消息:
11-11 20:18:47.910: E/DmesgGetterService(2885): java.io.IOException: Error running exec(). Command: [dmesg > /data/kernel_log.txt] Working Directory: null Environment: null
...
11-11 20:19:07.920: E/DmesgGetterService(2885): Caused by: java.io.IOException: No such file or directory
...
我能夠以其他方法獲取dmesg日志。 使用AlarmManager在指定的間隔內運行服務,我從內核中獲取日志,然后找到我從上次運行中復制的最后一行,然后追加新日志。 而已!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.