核心原生实用程序和守护进程¶
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>