# GRIEviOS

## Usage
### Requirements

- Python 3.10+
- [Appium v2](https://appium.io/docs/en/2.0/quickstart/install/)
- [Appium XCUITest Driver](https://appium.github.io/appium-xcuitest-driver/4.30/setup/)
- [Appium Real Device Setup](https://appium.github.io/appium-xcuitest-driver/4.30/real-device-config/)
- [ideviceinstaller](https://github.com/libimobiledevice/ideviceinstaller) for App installation on devices
- Optional: [libimobiledevice](https://github.com/libimobiledevice/libimobiledevice) for `idevice_id` and `ideviceinfo`. Used for discovery of connected iOS devices.
- Optional: [tcpdump](https://www.tcpdump.org) for use of the TcpDump-Analyzer.
- Optional: [mitmproxy](https://mitmproxy.org) for use of the MitmDump-Analyzer. Requires a jailbroken device and disabled TLS certificate verification for effective use.

### Installation
The GRIEviOS webinterface is available at http://localhost:8000.

#### pipx
[pipx](https://pypa.github.io/pipx/) can be used to install GRIEviOS and its dependencies in an isolated environment:
```bash
# Install in isolated pipx environment
pipx install grievios
# Run server
grievios
```

#### Poetry
[Poetry](https://python-poetry.org) is recommended to install and run GRIEviOS and its dependencies when using the source code:
```bash
# Install dependencies
poetry install
# Run using Poetry environment
poetry run grievios
```

### Configuration

By default, GRIEviOS stores its database and logs in `$HOME/.grievios`.
This path can be configured using the environment variable `GRIEVIOS_DIR`.


### Usage
#### Application Files
GRIEviOS checks for .ipa iOS Application Archive files in the directory `$GRIEVIOS_DIR/IPAs`.

#### Logs and Analyzer files
GRIEviOS logs and files generated by analyzers are stored in `$GRIEVIOS_DIR/logs/exploration-<exploration-id>`.


