项目作者: mass1ve-err0r

项目描述 :
Interactive site to determine device Jailbreak capability
高级语言: Jinja
项目地址: git://github.com/mass1ve-err0r/CanIJailbreak2-Website.git
创建时间: 2020-10-20T07:36:40Z
项目社区:https://github.com/mass1ve-err0r/CanIJailbreak2-Website

开源协议:MIT License

下载


Can I Jailbreak 2

Python 3.7+ | Fast | Powered by you

Prelude

Callum Jones has provided us over the years with canijailbreak.com, a source to find out whether you can jailbreak your iDevice or not.

In recent times I found that it wasn’t updated and thus I just wanted to create an alternative to it.

This is just that: An entire rewrite, run by sanic and powered by your contributions to keep it up to date!

Features

  • Entire rewrite with a (subjectively) nice new look
  • API for easy access with f.e. (discord) bots
    • You can request access to the API by just sending me a DM on twitter @saadat603
  • Easily expandable

Contributing

A new jailbreak arrived and it’s not on the site? Missing a legacy Jailbreak? — No problem!

All the Jailbreaks are listed inside the jailbreaks.py file under the JailbreakMap as dictionary.

Here’s an example with the checkra1n utility:

  1. {
  2. "name": "checkra1n", <- Jailbreak Name
  3. "current_version": "0.12.2", <- Current Version
  4. "url": "https://checkra.in", <- Website or theiphonewiki link
  5. "minimum_ios": "12.0", <- Minimum required iOS
  6. "maximum_ios": "14.4.2", <- Maximum supported iOS
  7. "minimum_pg": "5S", <- Oldest supported device
  8. "maximum_pg": "X", <- Latest supported device
  9. "type": "Semi-Tethered", <- Jailbreak Type
  10. "platforms": ['apple', 'linux'], <- List of supported platforms
  11. "notes": ["..."] <- Additional notes (f.e. version exclusions)
  12. }

The fields minimum_pg and maximum_pg are essentially the processors but I opted to keep the device name and classify similar devices to the same name. It seems confusing at first but peeking at the DeviceMapPG in device_helper.py might make that more clear.

(This is subject to rewrite and any contribution is welcome in terms of design!)

If a new Jailbreak appears, just create a dictionary object as above (without the annotations) and PR it. Currently some legacy Jailbreaks below iOS 6 are not listed but welcome as PR.

The only rule I have is to exclude unstable or experimental Jailbreaks. Any fraudulent / copycat Jailbreaks such as Th0r are strictly prohibited and these PRs will be rejected.

API Docs

THIS ENDPOINT REQUIRES AUTHENTICATION.

I tried to keep the API access pretty easy and self-explanatory so it works without any wild parsing.

Here’s the potential return codes which get returned as json in the field status:

  • -1: Failure. No further data
  • 1: Query Successfully accepted BUT device not found. No further data
  • 2: Query Successfully accepted BUT given iOS version was out-of-bounds. You will receive the following data (json):


    • show exemplary return iPhone 5S & 13.0

      { "status": 2, "minimum_ios": "7.0", "maximum_ios": "12.5.1" }
  • 0: Query Successfully accepted. You will have a field called jelbreks which is a list of objects formatted as shown in the Contributing section.

Example:
Query: https://canijailbreak2.com/v1/pls/iPhone 12 Pro Max/14.3


Show Result

{ "status": 0, "jelbreks": [ { "name": "Taurine", "url": "https://taurine.app", "current_version": "1.0.4", "minimum_ios": "14.0", "maximum_ios": "14.3", "minimum_pg": "6S", "maximum_pg": "12", "type": "Semi-Untethered", "platforms": ["apple"] }, { "name": "unc0ver", "url": "https://unc0ver.dev", "current_version": "6.1.2", "minimum_ios": "11.0", "maximum_ios": "14.3", "minimum_pg": "6S", "maximum_pg": "12", "type": "Semi-Untethered", "platforms": ["apple"], "notes": ["iOS12 A12 is between 12.0 - 12.3 and 12.4 - 12.4.1"] } ] }

Installation + Setup

You wish to run your own instance? No problemo.

Make sure you got a Linux VPS with python3 (3.6+) installed. Create a virtal environment and install the deps from req.txt and you’re ready to go!

If you’d like to provide API access, make sure you have a .env with tokens. See api.py for further details on that.

(Recommended) run it with PM2 for easier management!

Credits

  • chpwn for the original idea
  • Callum Jones for the first implementation and keeping it OSS
  • TheMasterOfMike, hopolapopola, aaronp613, Cameren and Jessie O. for constantly watching over the correctness of information
  • Local Pigeons for the good support and being fluffy companions

License

This project is licensed under MIT. Have fun!