{"id":15116947,"url":"https://github.com/Dadoum/Sideloader","last_synced_at":"2025-09-27T22:31:35.694Z","repository":{"id":183843676,"uuid":"641276375","full_name":"Dadoum/Sideloader","owner":"Dadoum","description":"Open-source cross-platform iOS app sideloader (yep, even Linux is supported). Alternative to Sideloadly, AltServer, SideServer, Cydia Impactor, iOS App Signer…","archived":false,"fork":false,"pushed_at":"2025-08-25T02:57:45.000Z","size":528,"stargazers_count":653,"open_issues_count":42,"forks_count":73,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-08-25T05:56:40.308Z","etag":null,"topics":["cli","codesign","cross-platform","d","dlang","gtk","gtk4","gui","ios","ios-signer-service","linux","macos","qt","sideload","sideloader","sideloading","sideloading-ipas","windows"],"latest_commit_sha":null,"homepage":"","language":"D","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dadoum.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["Dadoum"]}},"created_at":"2023-05-16T06:27:55.000Z","updated_at":"2025-08-25T02:57:49.000Z","dependencies_parsed_at":"2023-07-26T03:05:06.196Z","dependency_job_id":"d43cc95a-93ee-4d54-9039-88fbee4c7e15","html_url":"https://github.com/Dadoum/Sideloader","commit_stats":{"total_commits":114,"total_committers":4,"mean_commits":28.5,"dds":0.1228070175438597,"last_synced_commit":"d484f7330867f309e7f6107776bb893d8c8d99a4"},"previous_names":["dadoum/sideloader"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/Dadoum/Sideloader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dadoum%2FSideloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dadoum%2FSideloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dadoum%2FSideloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dadoum%2FSideloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dadoum","download_url":"https://codeload.github.com/Dadoum/Sideloader/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dadoum%2FSideloader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277302072,"owners_count":25795357,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-27T02:00:08.978Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","codesign","cross-platform","d","dlang","gtk","gtk4","gui","ios","ios-signer-service","linux","macos","qt","sideload","sideloader","sideloading","sideloading-ipas","windows"],"created_at":"2024-09-26T01:45:26.058Z","updated_at":"2025-09-27T22:31:34.929Z","avatar_url":"https://github.com/Dadoum.png","language":"D","readme":"# Sideloader\n\n*The missing open-source iOS sideloader.*\n\nSideloader is an application made to install third-party applications on iOS devices.\n\nYou can see it as an open-source replacement of _Cydia Impactor_.\n\n\u003ccenter\u003eLeave a star and a small tip if you feel like it! — more information at the end!\u003c/center\u003e\n\n## Current state\n\nCurrently, there is a cross-platform CLI, with most features working.\n\nAnd there is a Linux frontend based on GTK 4. It was the priority since no real alternative existed \nbefore.\n\nA Qt frontend is being made for Linux, Windows and macOS.\n\nA SwiftUI macOS GUI could be made (I got no Mac to work on that, but all the scaffolding code is here,\nif someone wants to work on that).\n\nI tried to make the code as readable as possible, if you struggle to understand anything\nI am here to help! I don't want this to finish unmaintained!\n\n## Usage\n\n### GTK\n\n![](screenshots/screenshot-gtk-2023-11-28.png)\n\n### CLI\n\n```sh\n$ sideloader -h\nUsage: sideloader [-d] [--thread-count THREADCOUNT] [-h] \u003ccommand\u003e [\u003cargs\u003e]\n\nAvailable commands:\n  app-id         Manage App IDs.\n  cert           Manage certificates.\n  device         Manage registered devices.\n  install        Install an application on the device (renames the app, register\n                 the identifier, sign and install automatically).\n  sign           Sign an application bundle.\n  trollsign      Bypass Core-Trust with TrollStore 2's method (CVE-2023-41991).\n  team           Manage teams.\n  tool           Run Sideloader's tools.\n  version        Print the version.\n\nOptional arguments:\n  -d, --debug    Enable debug logging\n  --thread-count THREADCOUNT\n                 Numbers of threads to be used for signing the application\n                 bundle\n  -h, --help     Show this help message and exit                                                                                                                                                                      \n```\n\nTable of Contents\n=================\n\n  * [How to install](#how-to-install)\n  * [How to use the CLI to install](#how-to-use-the-CLI-to-install)\n  * [How do I build it myself?](#how-do-i-build-it-myself)\n    * [OpenSUSE Tumbleweed](#opensuse-tumbleweed)\n    * [Other distributions](#other-distributions)\n  * [How it works?](#how-it-works)\n  * [Features](#features)\n  * [Notes on platform support](#notes-on-platform-support)\n    * [Linux](#linux)\n    * [Windows](#windows)\n    * [MacOS](#macos)\n  * [Acknowledgements and references](#acknowledgements-and-references)\n  * [If you like my software, consider starring or even better: sponsoring me :)](#if-you-like-my-software-consider-starring-or-even-better-sponsoring-me-)\n\n## How to install\n\nCurrently, the only builds available can be downloaded through GitHub Actions.\n\nCLI builds include builds for every supported operating system, and GTK+ builds have a GUI\nfor Linux-based OSes.\n\nWhen it will get a first release, there will probably be an easier download (not requiring an\naccount) in the Release tab of this repo, and hopefully it will be packaged as a Flatpak (even if\nI currently don't see how to make it).\n\n**Dependencies (at runtime):** libimobiledevice, libplist-2.X (I attempted to support both 2.2\nand 2.3). OpenSSL is currently also needed, but I plan to remove that dependency as soon\nas possible (only networking is requiring it).\n\n*Note:* On Windows, MSVC builds of those libraries are needed as sideloader is built with MSVC.\nIt also implies you have to install Microsoft Visual C++ redistributable to run it, but you probably\nalready have those installed. Put them then in the same folder as Sideloader and you'll be able to\nrun it. (For libimobiledevice and libplist, take a look at libimobiledevice-win32, and for OpenSSL\nsee [this link](https://slproweb.com/products/Win32OpenSSL.html))\n\n## How to use the CLI to install\n\n1. Go to https://sidestore.io/ on your computer and download the SideStore.ipa file.\n2. Download the most recent version of Sideloader from https://github.com/Dadoum/Sideloader/actions.\n3. Use the following command to sideload the SideStore.ipa file (if there are errors, try running the command again):\n\t`sideloader install SideStore.ipa -i`\n4. Enable Developer Mode on your iPhone if it's not already enabled.\n5. Use the following command to generate the pairing file and send it to your phone:\n\t`sideloader tool run 0`\n6. Download and install the Wireguard VPN app from the iOS App Store.\n7. Visit https://sidestore.io/ on your phone and download the Wireguard Config file, then share it to the Wireguard app.\n8. Enable the Wireguard VPN on your phone.\n9. Open the SideStore app and sign in with the same Apple ID that you used to install SideStore in step 3.\n10. Go to the Apps tab and refresh the SideStore app by tapping on the green day counter or selecting Refresh All. You must do this whenever you install SideStore, otherwise you may encounter errors like SideStore expiring earlier than it should.\n\n## How do I build it myself?\n\n### OpenSUSE Tumbleweed:\n\n1. Install the dependencies:\n   `sudo zypper in gcc dmd dub libharfbuzz-gobject0 libadwaita libphobos2-0_* libimobiledevice-1_0-6 git`\n2. Clone this repository:\n   `git clone https://github.com/Dadoum/Sideloader`\n3. Enter its directory:\n   `cd Sideloader`\n4. Build Sideloader:\n   `dub build`\n5. Enter the bin directory:\n   `cd bin`\n6. Allow Sideloader to run as a program:\n   `chmod +x sideloader`\n7. Run Sideloader:\n   `./sideloader`\n\n### Other distributions:\n\nGet a recent version `ldc2` or `dmd` installed (an installation script is available on \n[dlang.org](https://dlang.org/)). It is tested with D 2.104.2 (= LDC 1.34) but it will probably compile with\nolder compilers. GNU D compiler won't compile that code though (the cryptography library makes \nuse of SIMD instructions that cannot be compiled by GDC yet).\n\n## How it works?\n\nIt works by fetching an iOS development certificate as Xcode would do if you were\ndeveloping your own iOS application[^1] and use it to deploy a third party application.\n\nIt does not require any Mac or Windows computer, nor any Apple software to be\ninstalled to work. It is just requiring `libimobiledevice` and `libplist`.\n\nIt is still requiring you to have an Apple account (which will play the role of the\napp developer to Apple), you can use any account for that, don't need to use your actual\nApple ID used with your phone (I recommend making a burner Apple account, see SideStore \nwiki to have easy ways to do that, or on Linux, I'd recommend installing Apple Music on \nWaydroid).\n\n**Your credentials are only ever sent to Apple servers, and you can easily verify this!**\\\nIn general, never trust anyone to handle your credentials, even more if it is in a\nclosed-source obfuscated application (as-if there were something to hide there ^^).\n\n[^1]: You may wonder if that would allow full iOS application development on Linux, and\nthe answer is yes! You can compile a native iOS app on Linux with\n[theos](https://theos.dev), and then package it into an ipa with `PACKAGE_FORMAT = ipa` to\neventually install it with Sideloader on a real device (or maybe even an emulated one\nin the future!) and debug it (with `idevicedebug` or remote `lldb`). _(TODO: add an option\nto add the entitlement for debugging)_\n\n## Features\n\n- Sideload\n- Sign IPAs\n- Set-up SideStore's pairing file\n- Manage App IDs and certificates for free developer accounts.\n- iOS version range is unknown. 32-bit support is untested. Please report any issue here!!\n\n## Acknowledgements and references\n\n- [People on this thread](https://github.com/horrorho/InflatableDonkey/issues/87): first\ncues on the authentication systems for both machines and accounts.\n- All the people in the SideStore team: testing, help on the machine authentication.\n- All the people in the AltStore team: help on the account auth, and 2FA (especially \nkabiroberai's code).\n- zhlynn: for its code in zsign.\n- indygreg: for its code in rcodesign.\n- teryx: [their article about code signature](https://medium.com/csit-tech-blog/demystifying-ios-code-signature-309d52c2ff1d).\n- Apple Music for Android libraries: giving the opportunity to make all of this work \nneatly!\n- Apple's AuthKit and AuthKitWin: giving me the skeleton of the authentication requests \ndirectly.\n- Probably a lot of people I missed!\n\n## If you like my software, consider starring or even better: sponsoring me :)\n\nIn late 2019, Cydia Impactor stopped working, and the underlying reason also affected\nsome of my personal projects at the time. At this time, I decided to start the development\nof an alternative. I had no experience in reverse-engineering, or even just making complex\nrequest for authentication on a server. Making this project made me a better developer,\nbut this was not easy to do. \n\nWhile most Cydia Impactor alternatives benefited of some Apple software available on\nmacOS or Windows, (and thus were able to hijack their libraries and reproduce their\nbehaviour), Apple never released anything targeting the end-user on Linux.\n\nI took 2 years to find a way to overcome the problem that encountered Cydia Impactor\nwithout resorting to reimplementing the full Windows API. I dedicated a lot of work\non this software (alongside my studies). \n\nThat is why I am asking you - if you enjoyed my software and if you can afford it, to \ngive me a small tip via [GitHub Sponsors](https://github.com/sponsors/Dadoum).\n","funding_links":["https://github.com/sponsors/Dadoum"],"categories":["iOS","D"],"sub_categories":["Other"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDadoum%2FSideloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDadoum%2FSideloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDadoum%2FSideloader/lists"}