跳转至

核心原生实用程序和守护进程

Android 约有 150 个实用程序散布在其文件系统中。在本章中,我们将介绍独立于 Java 框架和服务使用的那些。具体来说,我们在本节主要关注 /system/bin 中的那些,我们可以认为这些对 Android 来说是核心的。

logcat

可能是你在 Android 中最常用的命令之一,logcat 允许你转储 Android 日志缓冲区:

# logcat --help
Usage: logcat [options] [filterspecs]
options include:
  -s              设置默认过滤器为静默
  -f <filename>   输出到文件。默认为标准输出
  -r [<kbytes>]    kbytes 轮转一次日志
  -v <format>     设置日志打印格式
  -c              清除整个日志并退出
  -d              转储日志并退出(不阻塞)
  -t <count>      只打印最近 count   -g              获取日志环形缓冲区大小并退出
  -b <buffer>     请求备用环形缓冲区
  -B              以二进制输出日志

netcfg

除了 Toolbox 的 ifconfig,Android 还有另一个让你操作网络接口的实用程序:

netcfg [<interface> {dhcp|up|down}]

debuggerd

这个守护进程实际上是在启动早期由 init 启动的。它打开 android:debuggerd 抽象 Unix 域套接字并等待连接。它保持休眠,直到有用户空间进程崩溃。

其他 Android 特定核心实用程序和守护进程

logwrapper — 此命令允许你运行另一个命令并将其 stdout 和 stderr 重定向到 Android 日志:

logwrapper [-x] <binary> [ <args> ...]

run-as — 允许你以与特定应用包关联的权限运行二进制文件:

run-as <package-name> <command> [<args>]

sdcard — 此实用程序使用 Linux 的 FUSE(用户空间文件系统)来在任何目录中模拟你在任何 FAT 格式化 SD 卡上会发现的权限和权限:

sdcard <path> <uid> <gid>