获取Android Linux内核命令行参数

vu8f3i0k  于 2023-03-11  发布在  Android
关注(0)|答案(2)|浏览(212)

我知道当一个(Android)引导加载程序开始加载内核时,它会向内核传递一些参数(例如androidboot.verifiedbootstate,...),这些参数可以通过阅读/proc/cmdline文件获得,但只能在根设备上读取。我说得对吗?有没有其他方法可以在非根设备上获得内核参数?

fkaflof6

fkaflof61#

在“普通”Linux中,/proc/cmdline对所有人都是可读的,而Android则明确删除了/proc/cmdline的读权限。
没有其他方法可以得到它的内容,因为这将绕过这种保护。(如果有人找到一种方法,它将很快被关闭。)

drkbr07n

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.txtdumpstate.txt或者前面的一个附加了日期的文本文件,这个文件包含了很多关于系统状态的信息。包括最上面一行以Command line:开头的代码,这一行显示了内核命令行。

相关问题