Mac下如果我们想知道某个程序,对文件系统做了哪些访问,读写了那些文件。就需要用到fs_usage命令,有些功能状态Mac中没有提供api接口去获取,但是在系统运行期间会在一些系统文件中写入状态,你通过读取解析这些文件的内容可以获取到一些你需要的状态数据,那么究竟这些内容藏在哪些文件里呢,一条发现的渠道是使用逆向工程来剖析类似功能的应用,别人的是如何实现的,读写了哪些文件。
比如:/Users/用户/Library/Preferences/com.apple.controlcenter.plist 这里就藏了一些系统状态栏菜单项的显示状态和位置信息。当然读取他需要一些技巧,你要正巧的引导用户授权该路径的读写权限,毕竟默认你只能读写沙盒路径下的内容。
切换到Root身份
binzhu@bindeMacBook-Pro ~ % sudo su
Password:
sh-3.2#
查看进程ID
ps -ef | grep 应用名称
查询结果如下,其中17646就是进程ID
sh-3.2# ps -ef | grep Bartender
501 17646 1 0 3:24下午 ?? 0:14.13 /Applications/Bartender 4.app/Contents/MacOS/Bartender 4
0 18732 18268 0 3:53下午 ttys001 0:00.00 grep Bartender
你也可以在活动监视器内查看进程ID

实时监视进程对文件系统的访问记录
fs_usage -f filesys 17646

网友评论