You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用dbus-send复现通过dbus-monitor捕获的DBus方法调用

Chromium OS DBus RestartJob 调用复现方案

核心参数说明

你捕获的调用核心参数如下,可直接对应到复现命令中:

  • 总线类型:系统总线
  • 目标服务:org.chromium.SessionManager
  • 对象路径:/org/chromium/SessionManager
  • 接口:org.chromium.SessionManagerInterface
  • 方法名:RestartJob
  • 入参顺序:Unix域套接字文件描述符 → Chrome启动参数字符串数组 → uint32类型值0

前置注意

RestartJob方法要求传递Unix域套接字文件描述符,原生dbus-send默认不支持文件描述符传递,可选择两种方案复现:开启FD传递参数的dbus-send方案,或Chromium OS默认预装、对FD传递支持更好的gdbus方案。

方案1:使用dbus-send复现

需提前创建Unix域套接字并通过继承方式传递给dbus-send,以root身份执行如下命令:

# 绑定Unix域套接字到文件描述符3
exec 3<>/dev/unix/socket
# 执行DBus调用,传递FD 3
dbus-send --system --print-reply --dest=org.chromium.SessionManager \
--pass-fd=3 \
/org/chromium/SessionManager \
org.chromium.SessionManagerInterface.RestartJob \
array:string:"/opt/google/chrome/chrome","--gpu-sandbox-failures-fatal=no","--enable-logging","--use-cras","--use-gl=egl","--user-data-dir=/home/chronos","--vmodule=*night_light*=1,*/ash/wm/tablet_mode/*=1,wizard_controller=1,*/webui/chromeos/login/*=1,*/browser/chromeos/login/screens/*=1,enrollment_screen_handler=1,*/browser/chromeos/login/enrollment/*=1,*/ui/ozone/*=1,*/ui/display/manager/chromeos/*=1","--enable-wayland-server","--aura-legacy-power-button","--login-profile=user","--system-developer-mode","--bwsi","--homepage=chrome://newtab/","--incognito","--log-level=1","--login-user=\$guest" \
uint32:0

方案2:使用gdbus复现(推荐)

gdbus原生支持文件描述符传递,命令更简洁,以root身份执行即可:

gdbus call --system --dest org.chromium.SessionManager \
--object-path /org/chromium/SessionManager \
--interface org.chromium.SessionManagerInterface \
--method RestartJob \
--unix-fd 3 \
"['/opt/google/chrome/chrome', '--gpu-sandbox-failures-fatal=no', '--enable-logging', '--use-cras', '--use-gl=egl', '--user-data-dir=/home/chronos', '--vmodule=*night_light*=1,*/ash/wm/tablet_mode/*=1,wizard_controller=1,*/webui/chromeos/login/*=1,*/browser/chromeos/login/screens/*=1,enrollment_screen_handler=1,*/browser/chromeos/login/enrollment/*=1,*/ui/ozone/*=1,*/ui/display/manager/chromeos/*=1', '--enable-wayland-server', '--aura-legacy-power-button', '--login-profile=user', '--system-developer-mode', '--bwsi', '--homepage=chrome://newtab/', '--incognito', '--log-level=1', '--login-user=$guest']" \
0

其他说明

  • 所有命令必须以root权限执行,否则无权限访问Session Manager的系统总线接口
  • 如果无需和重启后的Chrome进程做后续通信,临时创建的Unix域套接字可正常使用,不会影响调用执行
  • 若要保留$guest为字面量参数,可将对应参数用单引号包裹,避免shell将其解析为变量

内容的提问来源于stack exchange,提问作者S-K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 03:39:04