SuccessorCLI A CLI tool to restore iOS Devices on versions they're already on, based on the original Succession

Overview

SuccessorCLI

A CLI tool to restore iOS devices on the version they're already on, inspired by the original Succession GUI Application, rewritten from the ground up in Swift.

Welcome to SuccessorCLI! Build: 1.0.0 WORKING-BETA
Device iOS Version: 14.5
Device Machine Name: iPhone10,4
Device iOS BuildID: 18E199
URL of iPSW to download: http://updates-http.cdn-apple.com/2021SpringFCS/fullrestores/071-17716/B8F4C604-0526-4A46-83B3-B956078C574D/iPhone_4.7_P3_14.5_18E199_Restore.ipsw
Size of iPSW to download in bytes: 5060151546
Size of iPSW to download, formatted: 5.06 GB
Found RFS.dmg, proceeding to use it.
Disk name to mount: /dev/disk7s1s1
Proceeding to (try) to mount..
Verifying if mount was successful..
One of the directory exists, assuming that mount was successful!
Successfully mounted to /var/mnt/successor/
You have 15 seconds to cancel the restore before it starts, to cancel, simply press ctrl c.

Building

You must have Theos for this, and if you're not on macOS, you must've installed the swift toolchain for theos before aswell. To generate a deb, run the following:

git clone https://github.com/dabezt31/SuccessorCLI
cd SuccessorCLI
make package

Usage

to run in terminal, run sudo successorcli in a terminal on an iOS Device, if no options are provided, then the app will do the following:

  1. Download target iPSW
  2. Unzip the target iPSW
  3. Get the rootfs DMG
  4. Attach the rootfs DMG
  5. Mount it
  6. Actually restore the device using rsync

Options

The follwing options can be used with SuccessorCLI:

            Usage: successorcli 

Project Status

The program does work right now, it downloads the iPSW, unzip it, get the rootfs DMG, attach and mount the rootFS DMG, then executes the restore with rsync and lastly calls SBDataReset (Mobile Obliterator), I'm just polishing the project up right now.

Note that this project is currently in beta, im not responsible for what happens to you and your device, blah blah you know the bullshit

Known issues/things to improve:

  1. Rsync output is so spammy, it probably crashes NewTerm 2, printing with terminator: "\r" doesnt work for rsync progress like it does for iPSW download progress
  2. The current way that the rootfs DMG is parsed is by getting the largest file in /var/mobile/Media/SuccessorCLI/extracted, which while yes, does work, is bad practice, a better way to parse the Rootfs DMG would be to parse it from the BuildManifest.plist
You might also like...
CCCryptor (AES encryption) wrappers for iOS and Mac in Swift. -- For ObjC, see RNCryptor/RNCryptor-objc

RNCryptor Cross-language AES Encryptor/Decryptor data format. The primary targets are Swift and Objective-C, but implementations are available in C, C

Safe and easy to use crypto for iOS and macOS

Swift-Sodium Swift-Sodium provides a safe and easy to use interface to perform common cryptographic operations on macOS, iOS, tvOS and watchOS. It lev

Helper functions for saving text in Keychain securely for iOS, OS X, tvOS and watchOS.
Helper functions for saving text in Keychain securely for iOS, OS X, tvOS and watchOS.

Helper functions for storing text in Keychain for iOS, macOS, tvOS and WatchOS This is a collection of helper functions for saving text and data in th

Simple Swift wrapper for Keychain that works on iOS, watchOS, tvOS and macOS.
Simple Swift wrapper for Keychain that works on iOS, watchOS, tvOS and macOS.

KeychainAccess KeychainAccess is a simple Swift wrapper for Keychain that works on iOS and OS X. Makes using Keychain APIs extremely easy and much mor

A simple Swift Keychain Wrapper for iOS, watchOS, and OS X.

Latch A simple Swift 2.0 Keychain Wrapper for iOS, watchOS 2, and OS X. Usage A proper example of how to use Latch can be seen in the tests. import La

A simple wrapper for the iOS Keychain to allow you to use it in a similar fashion to User Defaults. Written in Swift.

SwiftKeychainWrapper A simple wrapper for the iOS / tvOS Keychain to allow you to use it in a similar fashion to User Defaults. Written in Swift. Prov

RSA public/private key encryption, private key signing and public key verification in Swift using the Swift Package Manager. Works on iOS, macOS, and Linux (work in progress).

BlueRSA Swift cross-platform RSA wrapper library for RSA encryption and signing. Works on supported Apple platforms (using Security framework). Linux

Valet lets you securely store data in the iOS, tvOS, or macOS Keychain without knowing a thing about how the Keychain works.

Valet Valet lets you securely store data in the iOS, tvOS, watchOS, or macOS Keychain without knowing a thing about how the Keychain works. It’s easy.

🔒 Swift Obfuscator that protects iOS apps against reverse engineering attacks.
🔒 Swift Obfuscator that protects iOS apps against reverse engineering attacks.

struct fjiovh4894bvic: XbuinvcxoDHFh3fjid { let VNfhnfn3219d: Vnahfi5n34djga func cxncjnx8fh83FDJSDd() - Lghbna2gf0gmh3d { return vPAOSNdcbif

Comments
  • Rsync args ok. But app terminates with error: 'NSInvalidArgumentException', reason: 'launch path not accessible'

    Rsync args ok. But app terminates with error: 'NSInvalidArgumentException', reason: 'launch path not accessible'

    Hey! This software is jus what I've been looking for to restore a 6s plus on 14.5.1 Quick question... say I wanted to just restore one directory, is there a way to do this? I noticed in ur instructions:

    --append-rsync-arg="--exclude=/some/directory"

    Can I enter each root level directory appended back to back but the one I'd like replaced?

    Also correct me if I'm overthinking this (which I do far too often) the instructions say:

    --append-rsync-arg=RSYNC-ARG-TO-APPEND Specify an additional rsync argument to be passed in to rsync, for example: --append-rsync-arg="--exclude=/some/directory" will pass in --exclude=/some/directory to rsync

    --restore Do a full restore with rsync. Note that this WILL erase your device.

    --restore/-r must be used if the user wants the restore to be executed.

    If -r must be used, and it will erase the device, does it still respect the --exclude argument?

    Ty for reading and I'm looking forward to supporting this from beta to v1.0

    opened by TH4TN1NJ4 3
Owner
Dabezt
Just another mediocre swift developer
Dabezt
APT repository app for jailbroken iOS devices

Find Your Repos! RepoFinder is here to bring you a seamless way to add all of your favorite repositories right into the package manager of your choice

Jacob Singer 25 Dec 20, 2022
A client library to multiplex connections from and to iOS devices

libusbmuxd A client library for applications to handle usbmux protocol connections with iOS devices. Features This project is a client library to mult

libimobiledevice 469 Dec 30, 2022
Helper/wrapper for mautrix-imessage for jailbroken devices

Brooklyn This readme is out-of-date. Blame Ethan, he's working on it. Components Rubicon "The die is cast." Crosses Apple's last river between IMCore

Ethan Chaffin 11 Jun 24, 2022
A super simple tool for macOS Swift developers to check validity of a Gumroad-issued software license keys

Gumroad License Validator Overview A super simple tool for macOS Swift developers to check validity of a Gumroad-issued software license keys Requirem

Daniel Kašaj 13 Sep 2, 2022
Cloak Swift - a tool and Tuist plugin to encrypt secrets and then pass them in an obfuscated form into applications

This is Cloak Swift - a tool and Tuist plugin to encrypt secrets and then pass them in an obfuscated form into applications.

Andrew Lord 3 Nov 9, 2022
Swift-based fuzzing tools

The Mac is changing. We've long had a platform where out-of-the-box we were able to compile and run tools in a variety of languages.

Charles Edge 18 Jun 30, 2022
A lightweight stochastic optimizer based on slime mold (Slime Mold Algorithm)

Slime This is a Swift implementation of a Slime Mold Algorithm - a stochastic optimizer - generally based on this paper The only dependency required b

Ethan J 4 Aug 6, 2022
Oversecured Vulnerable iOS App is an iOS app that aggregates all the platform's known and popular security vulnerabilities.

Description Oversecured Vulnerable iOS App is an iOS app that aggregates all the platform's known and popular security vulnerabilities. List of vulner

Oversecured Inc 135 Dec 15, 2022
Pass for iOS - an iOS client compatible with Pass command line application.

Pass is an iOS client compatible with ZX2C4's Pass command line application. It is a password manager using GPG for encryption and Git for version control.

Mingshen Sun 1.3k Dec 26, 2022
RSA public/private key encryption, private key signing and public key verification in Swift using the Swift Package Manager. Works on iOS, macOS, and Linux (work in progress).

BlueRSA Swift cross-platform RSA wrapper library for RSA encryption and signing. Works on supported Apple platforms (using Security framework). Linux

Kitura 122 Dec 16, 2022