/data/kernel_log.txt"-6ren">
gpt4 book ai didi

java - 如何使用 Runtime.exec 重定向 dmesg 的数据?

转载 作者:行者123 更新时间:2023-12-01 05:36:36 29 4
gpt4 key购买 nike

问题 1:我想使用我的应用程序将内核日志重定向到其他文件。如何正确执行这个?代码如下:

Runtime.getRuntime().exec("dmesg > /data/kernel_log.txt"); 

问题 2:我想使用我的应用程序清除内核日志。如何更正以下代码;

Runtime.getRuntime().exec("dmesg -c"); 

注1:我的目标是获取从开始到最新的内核(dmesg)的所有日志。由于 dmesg 有缓冲区大小限制,我不想重建内核只是为了调整缓冲区的大小。

注2:这与以下内容非常相关; android : how to run a shell command from within code

注3:目前我正在使用具有 ENG 模式构建的设备,这意味着它已获得 root 权限,我是否正确?

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 在指定的时间间隔内运行服务,我从内核获取日志,然后找到我从上次运行中复制的最后一行,然后附加新日志。就是这样!

关于java - 如何使用 Runtime.exec 重定向 dmesg 的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8093117/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com