Odourless是一个禁止MacOS系统生成.DS_Store的工具.
支持 10.12 到 Big Sur
每次升级Odourless后,请手动重新安装daemon
当前是非稳定版, 使用需自行承担风险.
使用 frida-core
注入 Finder.app
进程, 通过 frida-gum
来替换部分系统调用, 包括 open
, openx_np
, getattrlist
, setattrlist
.
每当 Finder
尝试调用这些方法且传入的路径是一个 .DS_Store
文件, 它将会将其替换为一个假的路径, 位于 /usr/local/var/.odourless_cage
.
正如你看到的, .DS_Store
并不会被删除, 因此你的文件夹视图功能依然可以正常工作. 它只是将 .DS_Store
放到了一个你不需要关心的目录.
此项目脱胎于 binaryage/asepsis 和 JK3Y/asepsis
更多关于实现的细节, 参见 JK3Y/asepsis#25 里的讨论内容.
从release页面下载应用.
将 Odourless.app
移动至 /Applications
目录以安装, 打开后点击 install
安装守护进程.
之后每次重启, odourless-daemon
将会自动启动.
使用此应用, 你必须关闭SIP.
- 点击顶部菜单栏苹果图标
- 点击重启...
- 按住 Command-R 启动到恢复模式
- 点击 Utilities(实用工具).
- 选择 Terminal(终端).
- 输入
csrutil disable
并按回车. (可能需要输入密码) - 重启
对于构建Odourless, xcode
不是必要的. 但至少需要安装 Command Line Tools
.
输入命令 xcode-select --install
来安装 Command Line Tools
.
还需要 cmake
.
输入命令 brew install cmake
来安装 cmake
.
git clone --recursive https://github.com/xiaozhuai/odourless
cd odourless
./download-frida-libs.sh
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=x86_64 -B build .
cmake --build build -- install -j8
open build/dist
Odourless.app 仅仅是一个用于安装/卸载和管理 odourless-daemon
的图形界面工具.
一个用于将 libodourless-inject.dylib
注入到 Finder
进程的守护进程.
它会监听 Finder
是否重启, 并在 Finder
重启后重新注入.
和 Odourless.app 的功能相同, 命令行方式管理 odourless-daemon
的工具. 如果你更喜欢命令行的话. (暂不可用)
替换 Finder
进程中的部分系统调用.