How wchill/patcheddit works
Patcheddit is a Morphe-compatible patch bundle that modifies third-party Reddit clients, chiefly to restore OAuth/API behavior and add client-specific features. The main workflow is selecting a supported app and patches in Morphe Manager, applying bytecode/resource changes, then using the resulting app and its Morphe settings. The README documents capabilities beyond the sampled code; edges for those features cite the README, while source-level edges are limited to relationships visible in excerpts or the source index.
Main entry points: api/SpoofClientPatch.kt Boost extension · ExtensionPatches.kt Extension registry · OAuthTokensFragment.java Token editor · customclients/SpoofClientPatch.kt OAuth spoof patches
Components 24
Patch selection and application
- App compatibility
patches/src/main/kotlin/app/morphe/patches/reddit/customclients/AppCompatibility.kt - Extension registry
patches/src/main/kotlin/app/morphe/patches/reddit/customclients/ExtensionPatches.kt - OAuth spoof patches
patches/src/main/kotlin/app/morphe/patches/reddit/customclients/SpoofClientPatch.kt - HTTP hook injection
patches/src/main/kotlin/app/morphe/patches/reddit/customclients/http/HttpClientExtensionPatch.kt
Shared runtime support
- Morphe settings
extensions/shared/library/src/main/java/app/morphe/extension/shared/settings/MorpheSettingsActivity.java - Crash diagnostics
extensions/shared/library/src/main/java/app/morphe/extension/shared/debug/FatalCrashLogs.java - Reddit response shims
extensions/shared/library/src/main/java/app/morphe/extension/shared/requests/RedditRouteResponseShim.java - Redgifs token support
extensions/shared/library/src/main/java/app/morphe/extension/shared/fixes/redgifs/RedgifsTokenManager.java
Boost features
- Boost HTTP utilities
extensions/boost/src/main/java/app/morphe/extension/boost/http/HttpUtils.java - Token editor
extensions/boost/src/main/java/app/morphe/extension/boost/settings/OAuthTokensFragment.java - OAuth account handling
extensions/boost/src/main/java/app/morphe/extension/boost/oauth/OAuthTokenAccounts.java - Token payload validation
extensions/boost/src/main/java/app/morphe/extension/boost/oauth/OAuthTokenPayload.java - Media playback bindings
extensions/boost/src/main/kotlin/app/morphe/extension/boost/media/MediaNativeBindings.kt - Gallery preview
extensions/boost/src/main/java/app/morphe/extension/boost/gallery/GalleryAnimatedPreview.java - Image upload features
extensions/boost/src/main/kotlin/app/morphe/extension/boost/upload/ExternalImageUploadFactory.kt - Deleted content recovery
extensions/boost/src/main/java/app/morphe/extension/boost/http/arcticshift/ArcticShift.java - Wayback recovery
extensions/boost/src/main/java/app/morphe/extension/boost/http/wayback/WaybackMachine.java
Client-specific adapters
- Boost extension
patches/src/main/kotlin/app/morphe/patches/reddit/customclients/boostforreddit/api/SpoofClientPatch.kt - Other supported clients
patches/src/main/kotlin/app/morphe/patches/reddit/customclients/ExtensionPatches.kt
Other components
- App patcher
- Morphe Manager
- Patched Reddit apps
- Reddit services
- Archive services
Connections 27
- App patcher → Morphe Manager: selects app
- Morphe Manager → App compatibility: checks compatibility
patches/src/main/kotlin/app/morphe/patches/reddit/customclients/AppCompatibility.kt - Morphe Manager → Extension registry: selects extensions
patches/src/main/kotlin/app/morphe/patches/reddit/customclients/ExtensionPatches.kt - Extension registry → OAuth spoof patches: registers client patches
patches/src/main/kotlin/app/morphe/patches/reddit/customclients/ExtensionPatches.kt - Extension registry → HTTP hook injection: uses HTTP hooks
patches/src/main/kotlin/app/morphe/patches/reddit/customclients/ExtensionPatches.kt - OAuth spoof patches → Patched Reddit apps: patches OAuth values
patches/src/main/kotlin/app/morphe/patches/reddit/customclients/SpoofClientPatch.kt - HTTP hook injection → Patched Reddit apps: injects hooks
patches/src/main/kotlin/app/morphe/patches/reddit/customclients/http/HttpClientExtensionPatch.kt - Patched Reddit apps → Morphe settings: exposes settings
- Patched Reddit apps → Crash diagnostics: records crashes
- Patched Reddit apps → Reddit response shims: shims API responses
- Patched Reddit apps → Redgifs token support: refreshes tokens
- Extension registry → Boost extension: registers Boost
patches/src/main/kotlin/app/morphe/patches/reddit/customclients/ExtensionPatches.kt - Boost extension → Boost HTTP utilities: configures HTTP
patches/src/main/kotlin/app/morphe/patches/reddit/customclients/boostforreddit/api/SpoofClientPatch.kt - Boost HTTP utilities → Reddit services: requests Reddit
- Morphe settings → Token editor: opens token settings
- Token editor → OAuth account handling: loads and saves
extensions/boost/src/main/java/app/morphe/extension/boost/settings/OAuthTokensFragment.java - Token editor → Token payload validation: parses tokens
extensions/boost/src/main/java/app/morphe/extension/boost/settings/OAuthTokensFragment.java - OAuth account handling → Reddit services: verifies credentials
- Boost extension → Media playback bindings: installs media support
- Media playback bindings → Gallery preview: supports playback
extensions/boost/src/main/java/app/morphe/extension/boost/gallery/GalleryAnimatedPreview.java - Boost extension → Image upload features: adds upload options
- Boost extension → Deleted content recovery: restores deleted content
- Boost extension → Wayback recovery: loads archived media
- Deleted content recovery → Archive services: queries Arctic Shift
- Wayback recovery → Archive services: queries Wayback
- Extension registry → Other supported clients: registers client adapters
patches/src/main/kotlin/app/morphe/patches/reddit/customclients/ExtensionPatches.kt - Other supported clients → Patched Reddit apps: patches supported apps