我知道当一个(Android)引导加载程序开始加载内核时,它会向内核传递一些参数(例如androidboot.verifiedbootstate,...),这些参数可以通过阅读/proc/cmdline文件获得,但只能在根设备上读取。我说得对吗?有没有其他方法可以在非根设备上获得内核参数?
/proc/cmdline
fkaflof61#
在“普通”Linux中,/proc/cmdline对所有人都是可读的,而Android则明确删除了/proc/cmdline的读权限。没有其他方法可以得到它的内容,因为这将绕过这种保护。(如果有人找到一种方法,它将很快被关闭。)
drkbr07n2#
在Android 12上(可能还有更早/更晚的版本,但我还没有测试过),你可以通过bug report获取内核命令行。错误报告是通过Android的dumpstate命令收集的,它可以读取/proc/cmdline。下面是我知道的收集错误报告的三种方法:1.从用户界面:在“Settings > System > Developer options“中,直接点击“Bug report”或启用“Bug report快捷方式”,然后点击关机菜单中的“Bug report”。1.来自ADB shell 程序:使用adb shell在设备上运行am bug-report(或am bug-report --progress,以获得显示进度条的“交互式”报告)。1.直接来自亚行:从您的计算机运行adb shell bugreport,可以选择保存报告的另存文件名(默认为dumpstate-<DATE>.zip)。设备需要几分钟来收集错误报告,一旦完成(如果你选择了“交互式”报告,它会在进行中),它会显示一个通知。收集报告后,您需要检索报告以供查看。如果您选择选项#3,adb已经为您完成了检索,错误报告将以.zip文件的形式存在于您的计算机上。如果您选择选项#1或#2,有两种方法可以收集报告:1.点击“Bug report #X captured”通知,将其共享到您设备上的应用程序。1.使用adb pull将其复制到您的计算机。错误报告保存在设备上的/bugreports/(/data/user_de/0/com.android.shell/files/bugreports/的符号链接)中。不管你选择什么,你最终都会得到一个包含bug报告的.zip文件,在这个zip文件里面是一个名为bugreport.txt、dumpstate.txt或者前面的一个附加了日期的文本文件,这个文件包含了很多关于系统状态的信息。包括最上面一行以Command line:开头的代码,这一行显示了内核命令行。
dumpstate
adb shell
am bug-report
am bug-report --progress
adb shell bugreport
dumpstate-<DATE>.zip
adb
.zip
adb pull
/bugreports/
/data/user_de/0/com.android.shell/files/bugreports/
bugreport.txt
dumpstate.txt
Command line:
2条答案
按热度按时间fkaflof61#
在“普通”Linux中,
/proc/cmdline
对所有人都是可读的,而Android则明确删除了/proc/cmdline
的读权限。没有其他方法可以得到它的内容,因为这将绕过这种保护。(如果有人找到一种方法,它将很快被关闭。)
drkbr07n2#
在Android 12上(可能还有更早/更晚的版本,但我还没有测试过),你可以通过bug report获取内核命令行。错误报告是通过Android的
dumpstate
命令收集的,它可以读取/proc/cmdline
。下面是我知道的收集错误报告的三种方法:1.从用户界面:在“Settings > System > Developer options“中,直接点击“Bug report”或启用“Bug report快捷方式”,然后点击关机菜单中的“Bug report”。
1.来自ADB shell 程序:使用
adb shell
在设备上运行am bug-report
(或am bug-report --progress
,以获得显示进度条的“交互式”报告)。1.直接来自亚行:从您的计算机运行
adb shell bugreport
,可以选择保存报告的另存文件名(默认为dumpstate-<DATE>.zip
)。设备需要几分钟来收集错误报告,一旦完成(如果你选择了“交互式”报告,它会在进行中),它会显示一个通知。
收集报告后,您需要检索报告以供查看。如果您选择选项#3,
adb
已经为您完成了检索,错误报告将以.zip
文件的形式存在于您的计算机上。如果您选择选项#1或#2,有两种方法可以收集报告:1.点击“Bug report #X captured”通知,将其共享到您设备上的应用程序。
1.使用
adb pull
将其复制到您的计算机。错误报告保存在设备上的/bugreports/
(/data/user_de/0/com.android.shell/files/bugreports/
的符号链接)中。不管你选择什么,你最终都会得到一个包含bug报告的
.zip
文件,在这个zip文件里面是一个名为bugreport.txt
、dumpstate.txt
或者前面的一个附加了日期的文本文件,这个文件包含了很多关于系统状态的信息。包括最上面一行以Command line:
开头的代码,这一行显示了内核命令行。