# zer0xdev/r1nderpest architecture

> Architecture diagram of the GitHub repository zer0xdev/r1nderpest, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/zer0xdev/r1nderpest
- Repository: https://github.com/zer0xdev/r1nderpest

## Overview

R1nderpest is a Windows desktop activator for supported iPhones and iPads. The user workflow is to launch the PyQt interface, discover and inspect a connected device, check support, then request and download activation payload stages before applying them. The single sampled Python file combines UI, device handling, and activation logic. The excerpts do not show the complete activation or device-I/O implementation, so uncertain internal calls are omitted; README requirements identify 3uTools and iTunes but do not establish how the code invokes them.

Main entry points: [`new_r1nderpest.py`](https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py) (Activation workflow)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Desktop interface"]
  node_ui["PyQt interface<br/>[new_r1nderpest.py]"]
  node_progress["Status and progress<br/>[new_r1nderpest.py]"]
end

subgraph group_device["Device workflow"]
  node_device_search["Device search<br/>[new_r1nderpest.py]"]
  node_device_info["Device inspection<br/>[new_r1nderpest.py]"]
  node_guid["GUID handling<br/>[new_r1nderpest.py]"]
  node_support["Support check<br/>[new_r1nderpest.py]"]
end

subgraph group_activation["Activation service"]
  node_activation_flow["Activation workflow<br/>[new_r1nderpest.py]"]
  node_stage_lookup["Stage lookup<br/>[new_r1nderpest.py]"]
  node_payload_download["Payload download<br/>[new_r1nderpest.py]"]
  node_device_apply["Device activation<br/>[new_r1nderpest.py]"]
  node_payload_files["Local payload files"]
end

subgraph group_integrations["External services"]
  node_activation_api{{"Activation API"}}
  node_update_service{{"Version service"}}
end

node_user(("User"))
node_device_actor(("iPhone or iPad"))

node_user -->|"uses"| node_ui
node_ui -->|"starts search"| node_device_search
node_device_search -->|"searches for"| node_device_actor
node_device_search -->|"inspects device"| node_device_info
node_device_info -->|"finds GUID"| node_guid
node_ui -->|"starts activation"| node_activation_flow
node_activation_flow -->|"checks support"| node_support
node_support -->|"requests support"| node_activation_api
node_activation_flow -->|"requests stages"| node_stage_lookup
node_stage_lookup -->|"requests links"| node_activation_api
node_stage_lookup -->|"provides stage URLs"| node_payload_download
node_payload_download -->|"downloads files"| node_payload_files
node_activation_flow -->|"applies payload"| node_device_apply
node_device_apply -->|"activates"| node_device_actor
node_activation_flow -->|"reports status"| node_progress
node_ui -.->|"checks version"| node_update_service

click node_ui "https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py"
click node_device_search "https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py"
click node_device_info "https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py"
click node_guid "https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py"
click node_support "https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py"
click node_activation_flow "https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py"
click node_stage_lookup "https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py"
click node_payload_download "https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py"
click node_device_apply "https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py"
click node_progress "https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_ui,node_progress,node_user toneBlue
class node_device_search,node_device_info,node_guid,node_support toneAmber
class node_activation_flow,node_stage_lookup,node_payload_download,node_device_apply,node_payload_files toneMint
class node_activation_api,node_update_service toneRose
class node_device_actor toneIndigo
```

## Components

### Desktop interface

- [PyQt interface](https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py): `new_r1nderpest.py`
- [Status and progress](https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py): `new_r1nderpest.py`

### Device workflow

- [Device search](https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py): `new_r1nderpest.py`
- [Device inspection](https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py): `new_r1nderpest.py`
- [GUID handling](https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py): `new_r1nderpest.py`
- [Support check](https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py): `new_r1nderpest.py`

### Activation service

- [Activation workflow](https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py): `new_r1nderpest.py`
- [Stage lookup](https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py): `new_r1nderpest.py`
- [Payload download](https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py): `new_r1nderpest.py`
- [Device activation](https://github.com/zer0xdev/r1nderpest/blob/main/new_r1nderpest.py): `new_r1nderpest.py`
- **Local payload files**

### External services

- **Activation API**
- **Version service**

### Other components

- **User**
- **iPhone or iPad**

## Connections

- User → PyQt interface: uses
- PyQt interface → Device search: starts search
- Device search → iPhone or iPad: searches for
- Device search → Device inspection: inspects device
- Device inspection → GUID handling: finds GUID
- PyQt interface → Activation workflow: starts activation
- Activation workflow → Support check: checks support
- Support check → Activation API: requests support
- Activation workflow → Stage lookup: requests stages
- Stage lookup → Activation API: requests links
- Stage lookup → Payload download: provides stage URLs
- Payload download → Local payload files: downloads files
- Activation workflow → Device activation: applies payload
- Device activation → iPhone or iPad: activates
- Activation workflow → Status and progress: reports status
- PyQt interface → Version service: checks version
