GithubHelp home page GithubHelp logo

caopeng19911002 / sidestore Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sidestore/sidestore

0.0 0.0 0.0 152.75 MB

SideStore is a fork of AltStore that doesn't require an AltServer.

License: GNU Affero General Public License v3.0

Shell 0.03% C 0.31% Objective-C 3.22% Swift 95.74% Makefile 0.69%

sidestore's Introduction

SideStore

SideStore is an untethered, community driven alternative app store for non-jailbroken iOS devices

License: AGPL v3 PRs Welcome Build and Upload SideStore

SideStore is an iOS application that allows you to sideload apps onto your iOS device with just your Apple ID. SideStore resigns apps with your personal development certificate, and then uses a specially designed VPN in order to trick iOS into installing them. SideStore will periodically "refresh" your apps in the background, to keep their normal 7-day development period from expiring.

SideStore's goal is to provide an untethered sideloading experience. It's a community driven fork of AltStore, and has already implemented some of the community's most-requested features.

(Contributions are welcome! 🙂)

Requirements

  • Xcode 14
  • iOS 14+
  • Rustup (brew install rustup)

Why iOS 14? Targeting such a recent version of iOS allows us to accelerate development, especially since not many developers have older devices to test on. This is corrobated by the fact that SwiftUI support is much better, allowing us to transistion to a more modern UI codebase.

Project Overview

SideStore

SideStore is a just regular, sandboxed iOS application. The AltStore app target contains the vast majority of SideStore's functionality, including all the logic for downloading and updating apps through SideStore. SideStore makes heavy use of standard iOS frameworks and technologies most iOS developers are familiar with.

EM Proxy

SideServer mobile powers the defining feature of SideStore: untethered app installation. By levaraging an App Store app with additional entitlements (WireGuard) to create the VPN tunnel for us, it allows SideStore to take advantage of Jitterbug's loopback method without requiring a paid developer account.

Minimuxer

Minimuxer is a lockdown muxer that can run inside iOS’s sandbox. It replicates Apple’s usbmuxd protocol on MacOS to “discover” devices to interface with wireguard On-Device.

Roxas

Roxas is Riley Testut's internal framework from AltStore used across many of their iOS projects, developed to simplify a variety of common tasks used in iOS development.

We're hoping to eventually eliminate our dependency on it, as it increases the amount of unnecessary Objective-C in the project.

Compilation Instructions

SideStore is fairly straightforward to compile and run if you're already an iOS or macOS developer. Here are some basic instructions to get you started:

  1. Clone the repository
    git clone https://github.com/SideStore/SideStore.git --recurse-submodules
    
  2. After installing Rustup, run rustup target add aarch64-apple-ios
  3. Within the Dependencies/em_proxy and Dependencies/minimuxer directories, run cargo build --release --target aarch64-apple-ios
  4. Open AltStore.xcodeproj and select the AltStore project in the project navigator. On the Signing & Capabilities tab, change the team from to your own account.
  5. (Development only) Change the value for ALTDeviceID in the Info.plist to your device's UDID. Normally, SideServer embeds the device's UDID in SideStore's Info.plist during installation. When running through Xcode you'll need to set the value yourself or else SideStore won't resign (or even install) apps for the proper device. You can achieve this by changing a few things to be able to build and use SideStore.
  6. Copy CodeSigning.xcconfig.sample to CodeSigning.xcconfig
  7. Fill out all of the properties in CodeSigning.xcconfig to match your account.
  8. In Shared/Extensions/Bundle+AltStore.swift, replace "group.com.rileytestut.AltStore" with your own App Group ID.
  9. Build + run app! 🎉

Licensing

This project is licensed under the AGPLv3 license.

sidestore's People

Contributors

bogotesr avatar ccheever avatar coliff avatar ds8k avatar f1shy-dev avatar fabianthdev avatar jawshoeadan avatar jjtech0130 avatar jkcoxson avatar joematt avatar litritt avatar lonkelle avatar naturecodevoid avatar noah978 avatar nythepegasus avatar oq-x avatar osy avatar osy86 avatar rileytestut avatar shanegillio avatar soy0ung avatar spidy123222 avatar tbodt avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.