Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xiaozhuai/odourless
Free Palestine🇵🇸🇵🇸🇵🇸Odourless is a tool for preventing .DS_Store creation.
https://github.com/xiaozhuai/odourless
asepsis dsstore
Last synced: 3 months ago
JSON representation
Free Palestine🇵🇸🇵🇸🇵🇸Odourless is a tool for preventing .DS_Store creation.
- Host: GitHub
- URL: https://github.com/xiaozhuai/odourless
- Owner: xiaozhuai
- License: mit
- Created: 2019-12-05T09:52:12.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2022-06-20T05:36:55.000Z (over 2 years ago)
- Last Synced: 2024-06-27T07:31:32.013Z (4 months ago)
- Topics: asepsis, dsstore
- Language: C++
- Homepage:
- Size: 97.4 MB
- Stars: 101
- Watchers: 7
- Forks: 8
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# odourless
![logo.png](logo.png)
[ä¸æ–‡è¯´æ˜Ž](README_CN.md)
Odourless is a tool for preventing .DS_Store creation.
Supported from 10.12 to Big Sur.
**Please re-install daemon manually after upgrade Odourless**
**Alpha version! Use it at your own risk!**
# Preview
![preview.png](preview.png)# How it works
It use `frida-core` to inject `Finder.app` and `frida-gum` to replace some syscall including `open`, `openx_np`, `getattrlist`, `setattrlist`.
Whenever `Finder` try call these function with `.DS_Store` file, it will replace the path to a fake one under the odourless cage directory `/usr/local/var/.odourless_cage`.
It doesn't delete `.DS_Store`, but it places all `.DS_Store` into one directory that you don't care about.
Many thanks to [@darwin](https://github.com/darwin) and [@JK3Y](https://github.com/JK3Y) !
This project was standing on the shoulders of [binaryage/asepsis](https://github.com/binaryage/asepsis) and [JK3Y/asepsis](https://github.com/JK3Y/asepsis)
For discussion, go [https://github.com/JK3Y/asepsis/issues/25](https://github.com/JK3Y/asepsis/issues/25)
# How to use
## Install
Download from release page.
Move `Odourless.app` to `/Applications`, open it and click to `install` daemon.
Ok, that's all.
Next time reboot, `odourless-daemon` will auto-start. Take it easy.
## Disable SIP
You must disable SIP to use this program.
1. Click the Apple symbol in the Menu bar.
2. Click Restart...
3. Hold down Command-R to reboot into Recovery Mode.
4. Click Utilities.
5. Select Terminal.
6. Type `csrutil disable` and press Enter (May ask for password)
7. reboot# How to build
Odourless can build without `xcode`. But `Command Line Tools` is needed.
Type `xcode-select --install` to install `Command Line Tools`.
And you need `cmake`.
Type `brew install cmake` to install `cmake`.
```bash
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
```# Under the hood
## Odourless.app
Odourless.app is a GUI program for easy installing and manage `odourless-daemon`.
## odourless-daemon
A daemon process to inject `libodourless-inject.dylib` to `Finder` process.
When `Finder` restarted, `odourless-daemon` will do re-inject.## odourless-ctl
If you prefer command line than graphics `Odourless.app`, you may like this. (Not yet available)
## libodourless-inject.dylib
Replace syscall in `Finder` process.