Giter Site home page Giter Site logo

permasigner / permasigner Goto Github PK

View Code? Open in Web Editor NEW
485.0 13.0 210.0 624 KB

🖊 Permanently signs IPAs on jailbroken iDevices (persists on stock).

License: BSD 3-Clause "New" or "Revised" License

Python 97.89% Shell 0.12% Dockerfile 1.99%
hacktoberfest ios linux macos open-source procursus python permasign permasigner cli-app

permasigner's Introduction

Made with love License Contributors Commits Discord Test status

Permanently sign IPAs on jailbroken iDevices 14.0-14.8.1 (persists on stock)


How does it work?

In iOS 14.0-14.8.1, there is a bug where CoreTrust will allow any root certificate. Although the bug exists on iOS 15.0-15.4.1, it can not be abused (yet) since you need to be jailbroken at first to place the app in the /Applications folder. This bug does not exist on anything older than iOS 14.

This script makes a deb file for you based on an IPA. Tested only with Taurine, but should work with many others.

Prerequsites

  1. A computer or jailbroken iDevice with Procursus
    • You can run permasigner on Mac OS X 10.5.0 or later, a Linux machine, a jailbroken iDevice, a Windows PC, or even just a web browser.
  2. Jailbroken "target" iDevice on 14.0-14.8.1
    • The device needs to be jailbroken at first to place the app in the /Applications folder. After installing it'll continue working on stock.
      • On 15.0-15.1.1, you can use TrollStore to permasign apps jailed.

Tutorials

In Progress

View the GitHub Projects board!

Credits

Plus, big thanks to all of the contributors that made this project possible.

License

Permasigner is licensed under the BSD-3-Clause license, and can be found here.

Other Stuff

permasigner's People

Contributors

dependabot[bot] avatar ethanuo avatar github-actions[bot] avatar itsnebulalol avatar ivankulagin avatar kylefmohr avatar rexsonic avatar sickcodes avatar superrnovae avatar turannul avatar verygenericname avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

permasigner's Issues

[BUG] Title Here

Describe the bug
A clear and concise description of what the bug is.

To reproduce
Steps to reproduce the behavior:

  1. Run '...'
  2. Try and sign '...'
  3. See error

Expected behavior
A clear and concise description of what you expected to happen.

Log
Use the --debug option while running the script, and paste the output into the codeblocks.


Which way are you running the script?
ex. macOS 13.0, Windows with Docker, iOS 14.7.1

Additional context
Add any other context about the problem here (ex. can you identify the location in the source code where the problem exists, any possible solutions).

Checklist

  • All questions were answered if possible.
  • Bug was reproduced atleast 2 times.
  • You are using the latest version of the script (git pull).

ldid libplist missing

So after a pull I tried new script and ldid errored with a libplist-2.0.3.dyld not found?

I fixed it earlier by installing libplist3. That didn’t work so I copied and renamed libplist3 to libplist-2.0.3.dylib and it works now? Not sure but I expect this to be a flaw in precirsus’ ldid for ios? I have notified team as well. (I installed ldid via Zebra pkg manager and then copied it to permasigner directory. This worked before. Maybe cause of issue? I don’t know??)

Term Output:

iPhone:~ mobile% cd permasigner
iPhone:/permasigner mobile% ./ldid
dyld: Library not loaded: /usr/lib/libplist-2.0.3.dylib
Referenced from: /private/var/mobile/permasigner/./ldid
Reason: image not found
zsh: abort ./ldid
iPhone:
/permasigner mobile%
iPhone:~/permasigner mobile% apt info ldid
Package: ldid
Version: 2.1.5-procursus3
Priority: optional
Section: Development
Maintainer: Procursus Team [email protected]
Installed-Size: 217 kB
Depends: libssl3, libplist3 (>= 2.2.0)
Author: Jay Freeman (saurik) [email protected]
Download-Size: 68.3 kB
APT-Manual-Installed: yes
APT-Sources: https://apt.procurs.us iphoneos-arm64/1700/main iphoneos-arm Packages
Description: pseudo-codesign Mach-O files

iPhone:~/permasigner mobile%

Ldid error on iOS

Some ipa (not all) got signing error with ldid, deb packaged successfully, but crash when opening
iOS : 14.3
Unc0ver 6.2.0

[] Signing app...
Signing with ldid...
Signing dylib libswiftContacts.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const

Signing dylib libswiftDarwin.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftUIKit.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftCoreImage.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftCallKit.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftCloudKit.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftMediaPlayer.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftMetalKit.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftos.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftObjectiveC.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftCoreGraphics.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftAVFoundation.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftModelIO.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftCore.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftCoreFoundation.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftCoreAudio.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftCoreLocation.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftMetal.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftQuartzCore.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftGLKit.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftAccelerate.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftCoreData.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftFoundation.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftCoreMedia.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftDispatch.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing dylib libswiftsimd.dylib...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing framework executable FirebaseCore...
Signing framework executable FBLPromises...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing framework executable FirebaseInstallations...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing framework executable FirebaseCoreDiagnostics...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing framework executable GoogleUtilities...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing framework executable nanopb...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing framework executable libmpv...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing framework executable GoogleDataTransport...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing framework executable MobileVLCKit...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*
Signing framework executable FirebaseCrashlytics...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const*

[] Packaging the deb file...
ldid.cpp(3018): _assert(): flag_S || key.empty()
libc++abi.dylib: terminating with uncaught exception of type char const

usbmux module not found linux/macos?

What is the expected behavior?

no usbmux in util?

What is the actual behavior?

What are the steps to reproduce this bug?

I reran requirements.txt

Please provide debug logs:

Use the --debug option while running the script, and paste the output into the codeblocks.

terramoda@terramoda-700T1C:/permasigner$ python3 main.py
Traceback (most recent call last):
File "/home/terramoda/permasigner/main.py", line 18, in
from utils.usbmux import USBMux
ModuleNotFoundError: No module named 'utils.usbmux'
terramoda@terramoda-700T1C:
/permasigner$


Any possible solutions?

Can you identify the location in the source code where the problem exists?

Version Information

  • iOS Version:
  • Jailbreak Name and Version:

Set output filename to match input .ipa name

Would it be possible to have an option to save the permasigned .deb file with the same name as the input ipa?

For example permasigning Delta_1_3_1.ipa outputs a file called com.rileytestut.delta_1.3.1_iphoneos-arm.deb
It would be simpler to track if the output file could be Delta_1_3_1.deb, especially when signing a large folder of .ipas with the new -f option.

For some apps the names are not as clear/meaningful as in the example above

NameError: name 'args' is not defined

`ubuntu@ubuntu:~/permasigner$`` sudo python3 main.py
IPA Permasigner | Version main-2a4362e
Program created by Nebula | Original scripts created by zhuowei | CoreTrust bypass by Linus Henze

Traceback (most recent call last):
File "/home/ubuntu/permasigner/main.py", line 311, in
main(args)
File "/home/ubuntu/permasigner/main.py", line 61, in main
if not LdidHash.check_linux_64():
File "/home/ubuntu/permasigner/utils/hash.py", line 26, in check_linux_64
if args.debug:
NameError: name 'args' is not defined
`

dpkg not found

What is the expected behavior?

opens permasigner

What is the actual behavior?

IPA Permasigner | Version main-72710b5
Program created by Nebula | Original scripts created by zhuowei | CoreTrust bypass by Linus Henze

[*] dpkg-deb not found, downloading.
[-] dpkg download URL is not reachable. Status code: 404

What are the steps to reproduce this bug?

install this on a brand new install of Manjaro after installing python-pip

Please provide debug logs:

Use the --debug option while running the script, and paste the output into the codeblocks.

IPA Permasigner | Version main-72710b5
Program created by Nebula | Original scripts created by zhuowei | CoreTrust bypass by Linus Henze

[DEBUG] Checking if command ldid is in PATH...
[DEBUG] Checking ldid output...
[DEBUG] On Linux x86_64, ldid not found...
[DEBUG] Checking ldid hash...
[DEBUG] ldid hash successfully verified.
[DEBUG] Checking if command dpkg-deb is in PATH...
[DEBUG] On Linux x86_64, dpkg-deb not found...
[*] dpkg-deb not found, downloading.
[DEBUG] Downloading dpkg-deb on Linux x86_64.
[-] dpkg download URL is not reachable. Status code: 404

Any possible solutions?

no idea, I guess reupload that file on another server

Can you identify the location in the source code where the problem exists?

no

Version Information

  • iOS Version: irrelevant, my phone isn't even plugged in
  • Jailbreak Name and Version: irrelevant, my phone isn't even plugged in

Bypass install, requirements, when run on ios?

Context

What are you trying to do, or how would you want to do it differently? Is it something you currently you cannot do? Is this related to an issue/problem?
Error when running on ios.

Alternatives

Can you achieve the same result doing it in an alternative way? Is the alternative considerable?

Has the feature been requested before?

Please provide a link to the issue.

If the feature request is approved, would you be willing to submit a PR?

Yes / No (Help can be provided if you need assistance submitting a PR)
———————————————
Unfortunately, script now errors out when running on ios. Is there an easy way to bypass install prompt, requirements when running on ios? Getting sshClient module error. Perhaps if ‘ios’ system then bypass ‘install’ flag etc... That would be great as it was running fantastically on ios before. Or perhaps prompt to install directly from output? That would be cool!

iPhone:~ mobile% cd permasigner
iPhone:/permasigner mobile% python3 main.py --debug
Traceback (most recent call last):
File "/private/var/mobile/permasigner/main.py", line 21, in
from paramiko.client import AutoAddPolicy, SSHClient
ModuleNotFoundError: No module named 'paramiko'
iPhone:
/permasigner mobile%

ldid libplist missing 2

A4065BEE-0F52-45C0-9223-0A7A67D47C43
There seems to be an issue with it accessing ldid or something. It does end up spitting out a deb in the output folder which installs an app but the app crashes when the phone is not jailbroken. Typing ldid into terminal yields a response though so I’m not sure why it fails when running this program.

[BUG] AUv3 plugins do not start after installation.

Describe the bug
I have tried three different audio units apps.
Apps are signed correctly and install fine. Once installed they do not start.

To reproduce
Steps to reproduce the behavior:

  1. Permasign this apps:
  2. Lagrange AUv3 Plugin Synth (v1.2.12) / OBXd AUv3 Synth (v1.11.1) / OPL AUv3 FM Synth (v2.1.0)
  3. Install apps.
  4. Try to open installed apps or load as AUv3 in a DAW (Garageband).

Expected behavior
Audio Unit can be opened as app or AU plugin in different DAW.
Lagrange start as app but no as AUv3.
OBXd does not start.
OPL does not start.

Log
Use the --debug option while running the script, and paste the output into the codeblocks.

user@link:~/permasigner$ python3 main.py --debug
[DEBUG] Using user home directory: /home/user
[DEBUG] Checking if command ldid is in PATH...
[DEBUG] Checking if command dpkg-deb is in PATH...
[DEBUG] Checking if command git is in PATH...
[DEBUG] Git is in PATH
Permasigner | Version main_3744fa8
Program created by Nebula | Original scripts created by zhuowei | CoreTrust bypass by Linus Henze

[DEBUG] Checking ldid_linux_x86_64 hash...
[DEBUG] ldid hash successfully verified.
[?] Would you like to use an external or a local IPA? [E, L] L

[*] Created temporary directory.

[?] Paste in the path to an IPA in your file system: /home/user/permasigner/IPA no signed/Lagrange AUv3 Plugin Synth (v1.2.12 3GS Univ PI FW 64bit os100 ok14)-user_hidden.bfi2.ipa

[*] Unzipping IPA...

[*] Reading plist...
Found app directory!
Found Info.plist
Found information about the app!

[*] Preparing deb file...
Making directories...
Copying deb file scripts and control...
Copying app files...
Changing deb file scripts permissions...
Changing app executable permissions...

[*] Signing app...
Signing with ldid...
[DEBUG] Running command: /home/user/.permasigner/ldid -S/tmp/tmpusaqcpcn/entitlements.plist -M -Kpermasigner/data/certificate.p12 -Upassword '/tmp/tmpusaqcpcn/deb/Applications/Lagrange.app'

[*] Packaging the deb file...
[DEBUG] Path to deb file: output/Lagrange.deb
[DEBUG] Running command: dpkg-deb -Zxz --root-owner-group -b /tmp/tmpusaqcpcn/deb output/Lagrange.deb
[?] Would you like install the application to your device (must be connected)? [y, n]: n

[*] We are finished!
[*] Copy the newly created deb from the output folder to your jailbroken iDevice and install it!
[*] The app will continue to work when rebooted to stock.
[*] Also, this is free and open source software! Feel free to donate to my Patreon if you enjoy :)
    https://patreon.com/nebulalol
[*] Output file: output/Lagrange.deb
user@beelink:~/permasigner$


Which way are you running the script?
Ubuntu 20.04 LTS / Permasigner Version main_3744fa8

Additional context
Add any other context about the problem here (ex. can you identify the location in the source code where the problem exists, any possible solutions).
No, sorry
Checklist

  • All questions were answered if possible.
  • Bug was reproduced atleast 2 times.
  • You are using the latest version of the script (git pull).

File not being found error

Well, I have found a bug in the script with the solution too.

It doesn't recognise .ipa file as an .ipa file.

It only works when if I rename the ".ipa" to ".IPA" (Capital letters).

Error

[FEATURE]

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context about the feature request here.

Getting error while packaging the deb file...

Getting this Error in the last stage

[*] Packaging the deb file...
Traceback (most recent call last):
File "/Users/dani/permasigner/main.py", line 412, in
main(args)
File "/Users/dani/permasigner/main.py", line 395, in main
subprocess.run(f"./dpkg-deb -Zxz --root-owner-group -b {tmpfolder}/deb output/{app_name.replace(' ', '')}.deb".split(), stdout=subprocess.DEVNULL)
File "/usr/local/Cellar/[email protected]/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py", line 505, in run
with Popen(*popenargs, **kwargs) as process:
File "/usr/local/Cellar/[email protected]/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py", line 951, in init
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/local/Cellar/[email protected]/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py", line 1821, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: './dpkg-deb'

Version Information

  • Mac Version: Monterey 12.4
  • dpkg installed by Brew but showed me this message once installed: This installation of dpkg is not configured to install software, so commands such as dpkg -i, dpkg --configure will fail.

Logouts after closing the Apps

I am to be honest not sure, why this is happening.
Yesterday I tried Twitter, but it's logging me out every time I open the app. So I thought making the deb of twitter, maybe Twitter has some issues.
So I ignored that.

But Today, I installed Instagram, and the same thing is happening. I sign in. Close the App. Then I again opened the app and I am on the login screen.

Why this is happening?

iPhone 8 iOS14.8
Used Checkra1n.

If you want, we can do testing.

[BUG] ldid in PATH check fails. Dl's ldid.

Describe the bug
A clear and concise description of what the bug is.
Checks for ldid in PATH fails and prompts to DL ldid to permasigner directory. Latest ldid from procursus is installed and launches from PATH.
To reproduce
Steps to reproduce the behavior:

  1. Run '...'
  2. Try and sign '...'
  3. See error

Expected behavior
A clear and concise description of what you expected to happen.
use ldid from path.
Log
Use the --debug option while running the script, and paste the output into the codeblocks.

terramoda@terramoda-700T1C:~/permasigner$ python3 main.py --debug
IPA Permasigner | Version main-970cc6e
Program created by Nebula | Original scripts created by zhuowei | CoreTrust bypass by Linus Henze

[DEBUG] Checking if command ldid is in PATH...
[DEBUG] Checking if command dpkg-deb is in PATH...
[*] ldid not found, not from Procursus, or not up to date, downloading latest binary.
[DEBUG] Downloading ldid on Linux x86_64.
[DEBUG] Wrote file.
[?] Would you like to use an external or a local IPA? [E, L] 

----------------------------------------------------------------------------------

terramoda@terramoda-700T1C:~/permasigner$ ldid
Link Identity Editor v2.1.5-procursus5

Usage: ldid [-Acputype:subtype] [-a] [-C[adhoc | enforcement | expires | hard |
            host | kill | library-validation | restrict | runtime]] [-D] [-d]
            [-Enum:file] [-e] [-H[sha1 | sha256]] [-h] [-Iname]
            [-Kkey.p12 [-Upassword]] [-M] [-P[num]] [-Qrequirements.xml] [-q]
            [-r | -Sfile.xml | -s] [-u] [-arch arch_type] file ...
Common Options:
   -S[file.xml]  Pseudo-sign using the entitlements in file.xml
   -Kkey.p12     Sign using private key in key.p12
   -Upassword    Use password to unlock key.p12
   -M            Merge entitlements with any existing
   -h            Print CDHash of file

More information: 'man ldid'
terramoda@terramoda-700T1C:~/permasigner$ 

Which way are you running the script?
ex. macOS 13.0, Windows with Docker, iOS 14.7.1
any, Linux
Additional context
Add any other context about the problem here (ex. can you identify the location in the source code where the problem exists, any possible solutions).
This was fixed a while back.
Checklist

  • All questions were answered if possible.
  • Bug was reproduced atleast 2 times.
  • You are using the latest version of the script (git pull).

Cffi install fail on iOS.

Pip requirements.txt install fails on cffi once again. (Fixed in #45,6 I believe?) I fix this on iOS by simply deleting ‘ utils.installer import Installer, utils.usbmux import USBMux’ from main.py, as they are obviously not needed when signing directly on device. Should we perhaps consider a separate script for iOS? For those of us that wish to permasign directly on their iOS devices?

Btw, I have clang, dependencies installed however I believe cffi is macOS only? (Not ARM)

————————————————————

iPhone:~ mobile% cd permasigner
iPhone:~/permasigner mobile% python3 -m pip install -r require
ments.txt
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: autopep8==1.6.0 in /private/var/mobile/.local/lib/python3.9/site-packages (from -r requirements.txt (line 1)) (1.6.0)
Collecting bcrypt==3.2.2
Using cached bcrypt-3.2.2-cp36-abi3-macosx_10_10_universal2.whl (50 kB)
Requirement already satisfied: certifi==2022.6.15 in /private/var/mobile/.local/lib/python3.9/site-packages (from -r requirements.txt (line 3)) (2022.6.15)
Collecting cffi==1.15.1
Using cached cffi-1.15.1.tar.gz (508 kB)
Preparing metadata (setup.py) ... done
Requirement already satisfied: charset-normalizer==2.1.0 in /private/var/mobile/.local/lib/python3.9/site-packages (from -r requirements.txt (line 5)) (2.1.0)
Collecting cryptography==37.0.4
Using cached cryptography-37.0.4-cp36-abi3-macosx_10_10_universal2.whl (5.4 MB)
Requirement already satisfied: idna==3.3 in /private/var/mobile/.local/lib/python3.9/site-packages (from -r requirements.txt (line 7)) (3.3)
Collecting paramiko==2.11.0
Using cached paramiko-2.11.0-py2.py3-none-any.whl (212 kB)
Requirement already satisfied: pycodestyle==2.8.0 in /private/var/mobile/.local/lib/python3.9/site-packages (from -r requirements.txt (line 9)) (2.8.0)
Requirement already satisfied: pycparser==2.21 in /private/var/mobile/.local/lib/python3.9/site-packages (from -r requirements.txt (line 10)) (2.21)
Collecting PyNaCl==1.5.0
Using cached PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl (349 kB)
Requirement already satisfied: requests==2.28.1 in /private/var/mobile/.local/lib/python3.9/site-packages (from -r requirements.txt (line 12)) (2.28.1)
Collecting scp==0.14.4
Using cached scp-0.14.4-py2.py3-none-any.whl (8.6 kB)
Requirement already satisfied: six==1.16.0 in /private/var/mobile/.local/lib/python3.9/site-packages (from -r requirements.txt (line 14)) (1.16.0)
Requirement already satisfied: toml==0.10.2 in /private/var/mobile/.local/lib/python3.9/site-packages (from -r requirements.txt (line 15)) (0.10.2)
Requirement already satisfied: urllib3==1.26.10 in /private/var/mobile/.local/lib/python3.9/site-packages (from -r requirements.txt (line 16)) (1.26.10)
Using legacy 'setup.py install' for cffi, since package 'wheel' is not installed.
Installing collected packages: cffi, PyNaCl, cryptography, bcrypt, paramiko, scp
Running setup.py install for cffi ... error
error: subprocess-exited-with-error

× Running setup.py install for cffi did not run successfully.
│ exit code: 1
╰─> [42 lines of output]
ld: library not found for -lSystem
clang-11: error: linker command failed with exit code 1 (use -v to see invocation)
Note: will not use '__sync_synchronize()' in the C code
***** The above error message can be safely ignored.

  running install
  running build
  running build_py
  creating build
  creating build/lib.macosx-11.0-iPhone9,1-3.9
  creating build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  copying cffi/backend_ctypes.py -> build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  copying cffi/error.py -> build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  copying cffi/setuptools_ext.py -> build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  copying cffi/__init__.py -> build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  copying cffi/cffi_opcode.py -> build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  copying cffi/vengine_gen.py -> build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  copying cffi/pkgconfig.py -> build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  copying cffi/model.py -> build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  copying cffi/ffiplatform.py -> build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  copying cffi/api.py -> build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  copying cffi/vengine_cpy.py -> build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  copying cffi/commontypes.py -> build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  copying cffi/lock.py -> build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  copying cffi/recompiler.py -> build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  copying cffi/cparser.py -> build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  copying cffi/verifier.py -> build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  copying cffi/_cffi_include.h -> build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  copying cffi/parse_c_type.h -> build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  copying cffi/_embedding.h -> build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  copying cffi/_cffi_errors.h -> build/lib.macosx-11.0-iPhone9,1-3.9/cffi
  running build_ext
  building '_cffi_backend' extension
  creating build/temp.macosx-11.0-iPhone9,1-3.9
  creating build/temp.macosx-11.0-iPhone9,1-3.9/c
  cc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -DFFI_BUILDING=1 -DUSE__THREAD -I/usr/include/ffi -I/usr/include/libffi -I/usr/include/python3.9 -c c/_cffi_backend.c -o build/temp.macosx-11.0-iPhone9,1-3.9/c/_cffi_backend.o -iwithsysroot/usr/include/ffi
  In file included from c/_cffi_backend.c:2:
  /usr/include/python3.9/Python.h:25:10: fatal error: 'stdio.h' file not found
  #include <stdio.h>
           ^~~~~~~~~
  1 error generated.
  error: command '/usr/bin/cc' failed with exit code 1
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> cffi

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.
iPhone:~/permasigner mobile%

[BUG] Permasigner executes w no errors but fails to create deb IOS

Describe the bug
A clear and concise description of what the bug is.
Python3 -m permasigner -p /path/to/***.ipa executes with no errors but fails to create deb in IOS. Python3 main.py -p command produces deb as expected.
To reproduce
Steps to reproduce the behavior:

  1. Run '...'
  2. Try and sign '...'
  3. See error

Expected behavior
A clear and concise description of what you expected to happen.

Log
Use the --debug option while running the script, and paste the output into the codeblocks.


Which way are you running the script?
ex. macOS 13.0, Windows with Docker, iOS 14.7.1
Ios 14.8 OddesseyRa1n
Additional context
Add any other context about the problem here (ex. can you identify the location in the source code where the problem exists, any possible solutions).

Checklist

  • All questions were answered if possible.
  • [ x] Bug was reproduced atleast 2 times.
  • [ x] You are using the latest version of the script (git pull).

Add folder examples to the docker page

Please could you add examples to the docker instructions of how to use the command-line switches (to this page: https://permasigner.itsnebula.net/usage/run-in-docker)

This doesn't seem to work, so I assume there's some trickery required (perhaps we need to be able to pass command line switches also as env variables?):

docker run -it --rm -v "$PWD/output":/permasigner/output -v "$PWD/ipas":/permasigner/ipas -e DEBUG=1 itsnebulalol/permasigner -f "$PWD/ipas"

Thank you

Entitlements aren't being correctly merged

Instead of signing everything with the same entitlements, we could dump the original ones using ldid.
We would also need to check if the uppercase team id is present in some keys, and if it does remove it to get stock values.

NameError: name 'copy' is not defined

➜  permasigner git:(main) ✗ python main.py                 
IPA Permasigner | Version main-be24cef
Program created by Nebula | Original scripts created by zhuowei | CoreTrust bypass by Linus Henze

[*] dpkg-deb not found, downloading.
Traceback (most recent call last):
  File "/home/ivan/Documents/permasigner/main.py", line 403, in <module>
    main(args)
  File "/home/ivan/Documents/permasigner/main.py", line 126, in main
    DpkgDeb.download_linux_64(args)
  File "/home/ivan/Documents/permasigner/utils/downloader.py", line 29, in download_linux_64
    copy("usr/bin/dpkg-deb", "dpkg-deb")
NameError: name 'copy' is not defined

I'm using Arch Linux with Python 3.10.5

[BUG] Title Here

Describe the bug
A clear and concise description of what the bug is.

To reproduce
Steps to reproduce the behavior:

  1. Run '...'
  2. Try and sign '...'
  3. See error

Expected behavior
A clear and concise description of what you expected to happen.

Log
Use the --debug option while running the script, and paste the output into the codeblocks.


Which way are you running the script?
ex. macOS 13.0, Windows with Docker, iOS 14.7.1

Additional context
Add any other context about the problem here (ex. can you identify the location in the source code where the problem exists, any possible solutions).

Checklist

  • All questions were answered if possible.
  • Bug was reproduced atleast 2 times.
  • You are using the latest version of the script (git pull).

list index out of range when finding bundle id

Permasigner | Version main_6f5687d
Program created by Nebula | Original scripts created by zhuowei | CoreTrust bypass by Linus Henze

[?] Would you like to use an external or a local IPA? [E, L] L

[?] Paste in the path to an IPA in your file system: /var/mobile/CloneApp/Appcake_7.2.2-Fix.ipa
[*] Unzipping IPA...

Found app directory!
[*] Reading plist...
Traceback (most recent call last):
File "main.py", line 4, in
main.main(False)
File "/private/var/mobile/permasigner/permasigner/main.py", line 72, in main
ps.start()
File "/private/var/mobile/permasigner/permasigner/main.py", line 245, in start
out_dir = self.run(tmpfolder, ldid_in_path, dpkg_in_path, data_dir)
File "/private/var/mobile/permasigner/permasigner/main.py", line 372, in run
app_author = app_bundle.split(".")[1]
IndexError: list index out of range
xXx:~/permasigner root#

ldid in PATH not found in linux/macOS

What is the expected behavior?

use ldid in path

What is the actual behavior?

not found

What are the steps to reproduce this bug?

run main.py

Please provide debug logs:

Use the --debug option while running the script, and paste the output into the codeblocks.

terramoda@terramoda-700T1C:~$ ldid
Link Identity Editor v2.1.5-procursus3

Usage: ldid [-Acputype:subtype] [-a] [-C[adhoc | enforcement | expires | hard |
            host | kill | library-validation | restrict | runtime]] [-D] [-d]
            [-Enum:file] [-e] [-H[sha1 | sha256]] [-h] [-Iname]
            [-Kkey.p12 [-Upassword]] [-M] [-P] [-Qrequirements.xml] [-q]
            [-r | -Sfile.xml | -s] [-u] [-arch arch_type] file ...
Options:
   -S[file.xml]  Pseudo-sign using the entitlements in file.xml
   -Kkey.p12     Sign using private key in key.p12
   -Upassword    Use password to unlock key.p12
   -M            Merge entitlements with any existing
   -h            Print CDHash of file

More information: 'man ldid'
terramoda@terramoda-700T1C:~$ cd permasigner
terramoda@terramoda-700T1C:~/permasigner$ python3 main.py --debug
IPA Permasigner | Version main-77ff19f
Program created by Nebula | Original scripts created by zhuowei | CoreTrust bypass by Linus Henze

[DEBUG] Checking if command ldid is in PATH...
[*] ldid not found, downloading.
[DEBUG] Downloading ldid on Linux x86_64.


Any possible solutions?

Can you identify the location in the source code where the problem exists?

Version Information

  • OS Version: ubuntu 22.04/MacOS 12.4
  • Jailbreak Name and Version: na

The script has errors when the app name has a space in it

For example for the app “Exif Viewer” it gives this error when signing “ldid: /tmp/..../deb/Application/Exif: No such file or directory”.

Ubuntu 20.04.4 lts


Any possible solutions?

Think it’s a quotes issue somewhere

Can you identify the location in the source code where the problem exists?

Version Information

  • iOS Version: 14.5
  • Jailbreak Name and Version: Checkn1x-1.1.7

Similar script on redmi note

Hey,
I have an app I cannot run on my redmi note 7, because it is jailbroken (the app says).
Redmi note runs on LineageOS 18.1

Is there anyway to make a similar script, so this above stated app would work?

thanks for enlightenment
-Martin

[BUG] Paramiko,SSHCLIENT Modules not found LinuX

Describe the bug
A clear and concise description of what the bug is.
Paramiko, SSHCLIENT Modules not found LinuX
To reproduce
Steps to reproduce the behavior:

  1. Run 'poetry run python3 main.py --debug'
  2. Try and sign '...'
  3. See error

Expected behavior
A clear and concise description of what you expected to happen.

Log
Use the --debug option while running the script, and paste the output into the codeblocks.

terramoda@terramoda-700T1C:~/permasigner$ poetry install
Installing dependencies from lock file

No dependencies to install or update
terramoda@terramoda-700T1C:~/permasigner$ poetry update
Updating dependencies
Resolving dependencies... (29.1s)

No dependencies to install or update
terramoda@terramoda-700T1C:~/permasigner$ poetry run python3 main.py --debug
Traceback (most recent call last):
  File "/home/terramoda/permasigner/main.py", line 30, in <module>
    from utils.installer import Installer
  File "/home/terramoda/permasigner/utils/installer.py", line 5, in <module>
    from paramiko.client import AutoAddPolicy, SSHClient
ModuleNotFoundError: No module named 'paramiko'
terramoda@terramoda-700T1C:~/permasigner$ 

Which way are you running the script?
ex. macOS 13.0, Windows with Docker, iOS 14.7.1
Ubuntu 22.04
Additional context
Add any other context about the problem here (ex. can you identify the location in the source code where the problem exists, any possible solutions).

Checklist

  • All questions were answered if possible.
  • [ x] Bug was reproduced atleast 2 times.
  • [ x] You are using the latest version of the script (git pull).

dpkg-deb check issue

✘ am1ncmd@Hack1ntosh  ~/permasigner   main  python3 main.py
IPA Permasigner | Version main-5fe80e9
Program created by Nebula | Original scripts created by zhuowei | CoreTrust bypass by Linus Henze

[*] dpkg-deb not found, downloading.

[?] Would you like to use an IPA stored on the web, or on your system? [external, local] external
[*] Created temporary directory.

[?] Paste in the direct path to an IPA online: https://github.com/BandarHL/BHTwitter/releases/download/2.9.6/Twitter_9.14_BHTwitter_2.9.6.ipa
[*] Downloading file...

[*] Unzipping IPA...

[*] Reading plist...
Found plist!
Executable found.
Found information about the app!

[*] Preparing deb file...
Making directories...
Copying deb file scripts and control...
Copying app files...
Changing deb file scripts permissions...
Changing app executable permissions...

[*] Signing app...
Signing with ldid...

[*] Packaging the deb file...
Traceback (most recent call last):
File "/Users/am1ncmd/permasigner/main.py", line 332, in
main(args)
File "/Users/am1ncmd/permasigner/main.py", line 319, in main
subprocess.run(f"./dpkg-deb -Zxz --root-owner-group -b {tmpfolder}/deb output/{app_name}.deb".split(), stdout=subprocess.DEVNULL)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py", line 501, in run
with Popen(*popenargs, **kwargs) as process:
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py", line 966, in init
self._execute_child(args, executable, preexec_fn, close_fds,
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py", line 1842, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: './dpkg-deb'
✘ am1ncmd@Hack1ntosh  ~/permasigner   main 

dirs_exist_ok error

Traceback (most recent call last):
File "main.py", line 403, in
main(args)
File "main.py", line 274, in main
copytree(f"{tmpfolder}/app/Payload/{folder}", f"{tmpfolder}/deb/Applications/{folder}", dirs_exist_ok=False)
TypeError: copytree() got an unexpected keyword argument 'dirs_exist_ok'

Quote prompt after latest pull, Update.

Did latest pull, notices requirements update so installed them. Now I get a 'quote' response when running script.

Last login: Thu Sep 8 15:07:21 on ttys001
terramoda@Mac-DaDDY ~ % cd permasigner
terramoda@Mac-DaDDY permasigner % python3 -m permasigner -p /Volumes/HD DUE/Bk~Ups/IPA's/Taurine-1.1.6.ipa
quote>

Bug? Fix? New Feature?

[BUG] Title Here

Describe the bug
A clear and concise description of what the bug is.

To reproduce
Steps to reproduce the behavior:

  1. Run '...'
  2. Try and sign '...'
  3. See error

Expected behavior
A clear and concise description of what you expected to happen.

Log
Use the --debug option while running the script, and paste the output into the codeblocks.


Which way are you running the script?
ex. macOS 13.0, Windows with Docker, iOS 14.7.1

Additional context
Add any other context about the problem here (ex. can you identify the location in the source code where the problem exists, any possible solutions).

Checklist

  • All questions were answered if possible.
  • Bug was reproduced atleast 2 times.
  • You are using the latest version of the script (git pull).

dpkg-deb on macOS

The supplied dpkg-deb from procurces results in this error:

[*] Packaging the deb file...
dyld[4327]: Library not loaded: @rpath/libmd.0.dylib
  Referenced from: /Users/syto203/Documents/Repositories/permasigner/dpkg-deb
  Reason: tried: '/opt/procursus/lib/libmd.0.dylib' (no such file), '/opt/procursus/lib/libmd.0.dylib' (no such file), '/usr/local/lib/libmd.0.dylib' (no such file), '/usr/lib/libmd.0.dylib' (no such file)

linking the one already installed (brew or macports) to the path of permasigner instead of downloading from procurses mitigates this error.

[BUG] Requests not found iOS

Describe the bug
A clear and concise description of what the bug is.
After running poetry install, cffi fails as usual. Running main.py fails with ‘requests not found’ error.
To reproduce
Steps to reproduce the behavior:

  1. Run 'poetry run python3 main.py —debug'
  2. Try and sign '...'
  3. See error

Expected behavior
A clear and concise description of what you expected to happen.

Log
Use the --debug option while running the script, and paste the output into the codeblocks.


iPhone:~ mobile% cd permasigner
iPhone:~/permasigner mobile% poetry run python3 main.py --debug
Traceback (most recent call last):
  File "/private/var/mobile/permasigner/main.py", line 5, in <module>
    import requests
ModuleNotFoundError: No module named 'requests'
iPhone:~/permasigner mobile% 

Which way are you running the script?
ex. macOS 13.0, Windows with Docker, iOS 14.7.1
iOS 14.3

Additional context
Add any other context about the problem here (ex. can you identify the location in the source code where the problem exists, any possible solutions).
What component installs requests module? Is it part of cffi?

Checklist

  • All questions were answered if possible.
  • [ x] Bug was reproduced atleast 2 times.
  • [ x] You are using the latest version of the script (git pull).

[BUG] Error on iOS when run from source

xXx:~/permasigner root# 3python3 main.py -p /var
/mobile/CloneApp/Appcake_7.2.2-Fix.ipa
Permasigner | Version 1.1.2_main_445bbbc
Program created by Nebula and supernova | Original scripts created by zhuowei | CoreTrust bypass by Linus Henze

[*] Checking for dependencies...

[*] Extracting IPA
Reading plist...

[*] Making deb directories...
Copying control file and maintainer scripts...
Changing deb file scripts permissions...
Copying application bundle...
Changing app executable permissions...

[*] Signing bundle with ldid...
Traceback (most recent call last):
File "main.py", line 4, in
main.main(False)
File "/private/var/mobile/permasigner/permasigner/main.py", line 52, in main
ps.main()
File "/private/var/mobile/permasigner/permasigner/permasigner.py", line 96, in main
out_dir = self.permasign()
File "/private/var/mobile/permasigner/permasigner/permasigner.py", line 187, in permasign
signer.sign_with_ldid(self.ldid)
File "/private/var/mobile/permasigner/permasigner/sign.py", line 183, in sign_with_ldid
stdout=subprocess.DEVNULL)
File "/usr/local/lib/python3.7/subprocess.py", line 466, in run
with Popen(*popenargs, **kwargs) as process:
File "/usr/local/lib/python3.7/subprocess.py", line 769, in init
restore_signals, start_new_session)
File "/usr/local/lib/python3.7/subprocess.py", line 1516, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
PermissionError: [Errno 1] Operation not permitted: '/var/mobile/.permasigner/ldid'

brew ldid issue

latest main.py hangs before prompt to pick external or local .ipa. prompt never happens? Works on my iPhone. Worked fine before today's latest update? I deleted old permasigner folder and re-Gitted it.

Terminal Output:

terramoda@terraMODAs-Mac-Pro permasigner % python3 main.py
IPA Permasigner | Version main-244b6dc
Program created by Nebula | Original scripts created by zhuowei | CoreTrust bypass by Linus Henze


Just hangs there?

[BUG] Title Here

Describe the bug
A clear and concise description of what the bug is.

To reproduce
Steps to reproduce the behavior:

  1. Run '...'
  2. Try and sign '...'
  3. See error

Expected behavior
A clear and concise description of what you expected to happen.

Log
Use the --debug option while running the script, and paste the output into the codeblocks.


Which way are you running the script?
ex. macOS 13.0, Windows with Docker, iOS 14.7.1

Additional context
Add any other context about the problem here (ex. can you identify the location in the source code where the problem exists, any possible solutions).

Checklist

  • All questions were answered if possible.
  • Bug was reproduced atleast 2 times.
  • You are using the latest version of the script (git pull).

Raspberry Pi Support (requires recompiled ldid)

Would it be possible to offer https://github.com/itsnebulalol/ldid compiled for Raspberry Pi (armv7l)?
It's preventing permasigner working on the pi:

root@infinity:~# permasigner -d
[DEBUG] Running from package, not cloned repo.
[DEBUG] Checking if command ldid is in PATH...
[DEBUG] Checking if command dpkg-deb is in PATH...
[DEBUG] Checking if command git is in PATH...
[DEBUG] Git is in PATH
Permasigner | Version 1.0.4
Program created by Nebula | Original scripts created by zhuowei | CoreTrust bypass by Linus Henze

[*] ldid binary is not found, downloading latest binary.
[DEBUG] Using ldid fork itsnebulalol.
[DEBUG] Downloading ldid from https://github.com/itsnebulalol/ldid/releases/latest/download/None
[!] ldid download URL is not reachable. Status code: 404
root@infinity:~# uname -a
Linux infinity 5.15.55-v7+ #1573 SMP Mon Jul 18 17:40:57 BST 2022 armv7l GNU/Linux

Thanks

Fails to sign on macOS when using -c flag

What is the expected behavior?

codesign succeeds

What is the actual behavior?

codesign fails

What are the steps to reproduce this bug?

run the script with -s flag

Please provide debug logs:

Use the --debug option while running the script, and paste the output into the codeblocks.

Signing with codesign as it was specified...
security: SecKeychainItemImport: MAC verification failed during PKCS12 import (wrong password?)
error: The specified item could not be found in the keychain.
[DEBUG] Frameworks path exists
[DEBUG] Executable found in the Module_Framework.framework
Signing executable in Module_Framework.framework
[DEBUG] Running command: codesign -s 'We Do A Little Trolling iPhone OS Application Signing' --force --deep /var/folders/n_/p90183755b30dtf0wcqlh5bc0000gn/T/tmpy7_0nkpx/deb/Applications/YouTube.app/Frameworks/Module_Framework.framework/Module_Framework
error: The specified item could not be found in the keychain.

Any possible solutions?

use correct password

Can you identify the location in the source code where the problem exists?

cert import

ldid in PATH not found in IOS anymore

Was being recognized in previous main.py version? I had to copy ldid to permasigner dir to make it work again. Just fyi. Thanks.

Term Output:
————————

iPhone:~ mobile% ldid
Link Identity Editor 2.1.5-procursus3

Usage: ldid [-Acputype:subtype] [-a] [-C[adhoc | enforcement | expires | hard |
host | kill | library-validation | restrict | runtime]] [-D] [-d]
[-Enum:file] [-e] [-H[sha1 | sha256]] [-h] [-Iname]
[-Kkey.p12 [-Upassword]] [-M] [-P] [-Qrequirements.xml] [-q]
[-r | -Sfile.xml | -s] [-u] [-arch arch_type] file ...
Options:
-S[file.xml] Pseudo-sign using the entitlements in file.xml
-Kkey.p12 Sign using private key in key.p12
-Upassword Use password to unlock key.p12
-M Merge entitlements with any existing
-h Print CDHash of file

More information: 'man ldid'
iPhone:~ mobile% cd permasigner
iPhone:~/permasigner mobile% python3 main.py
IPA Permasigner | Version main-2f07502
Program created by Nebula | Original scripts created by zhuowei | CoreTrust bypass by Linus Henze

[*] ldid not found, downloading.
[?] Would you like to use an IPA stored on the web, or on your system? [external, local]

Can permasigner be used with a .deb file?

I'm not a dev, just a normal user.
Is there any way to make a .deb file works after losing jailbroken?
Hope it would be a fantastic question for you to upgrade the tool.
Thanks.

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.