Android:系统服务没有接口?

Android: system service has no interface?

执行service list命令后可以看到很多系统服务没有接口?

    # service list | grep '\[\]'
    5   app_binding: []
    24  network_time_update_service: []
    25  runtime: []
    26  diskstats: []
    39  DockObserver: []
    43  devicestoragemonitor: []
    63  testharness: []
    70  pinner: []
    80  device_config: []
    81  settings: []
    88  looper_stats: []
    89  binder_calls_stats: []
    93  battery: []
    102 cpuinfo: []
    103 dbinfo: []
    104 gfxinfo: []
    105 meminfo: []

为什么会有这样的系统服务?如果他们不使用binder,他们如何与其他进程通信?

未显示服务列表接口的服务未响应 INTERFACE_TRANSACTION(“_NTF”或 1598968902)。有两个可能的原因:

A) 该服务没有接口,因此它仅响应默认事务(您可以找到这些事务的列表 here。通常,这将是 DUMP_TRANSACTION (_DMP) ,由 /system/bin/dumpsys 使用,在极少数情况下 SHELL_COMMAND_TRANSACTION (_CMD),用于 /system/bin/cmd.

B) 该服务拒绝回答 _NTF,因为您不被允许,或者您无法处理它们。要尝试这个,su 到一个独立的应用程序 (su 90000) 并尝试服务列表 - 只有 allow_isolated(activity、webviewupdate 和可能还有一个)会响应的服务。但是即使作为 AID shell,例如 vold 也不会回答。

在上面,您是以 root 用户身份执行此操作的,所以它是 A - 它们都只用于转储系统。