pymobiledevice fork with more recent coding standards and many more features

Overview

Python application Pypi version Language grade: Python

Description

pymobiledevice3 is a fork from pymobiledevice, which is a cross-platform implementation of the mobiledevice library that talks the protocols to support iPhone®, iPod Touch®, iPad® and Apple TV® devices.

This version uses more recent coding standards and adds a lot more features. Also, many of the features not present in libimobiledevice can be found here.

To understand the bits and bytes of the communication with lockdownd you are advised to take a look at this article:

https://jon-gabilondo-angulo-7635.medium.com/understanding-usbmux-and-the-ios-lockdown-service-7f2a1dfd07ae

If you would like to contribute, feel free to reports issues, start new discussions, or create pull requests. You can also contact us on gitter:

https://gitter.im/pymobiledevice3/community

Features

  • TCP port forwarding

    • pymobiledevice3 lockdown forward src_port dst_port
  • Live and past syslogs

    • pymobiledevice3 syslog live
    • pymobiledevice3 syslog archive syslogs.pax
  • Profile installation

    • pymobiledevice3 profile install/remove/list
  • Application management

    • pymobiledevice3 apps
  • File system management (AFC)

    • pymobiledevice3 afc
  • Crash reports management

    • pymobiledevice3 crash
  • Network sniffing

    • pymobiledevice3 pcap [out.pcap]
  • Raw shell for experimenting:

    • pymobiledevice3 lockdown service service_name
  • Mounting images

    • pymobiledevice3 mounter
  • Notification listening and triggering (notify_post() api)

    • pymobiledevice3 notification post notification_name
    • pymobiledevice3 notification observe notification_name
  • DeveloperDiskImage features:

    • Screenshots
      • pymobiledevice3 developer screenshot screen.png
    • Process management
      • pymobiledevice3 developer kill/launch/....
    • Non-chrooted directory listing
      • pymobiledevice3 developer ls /
    • KDebug messgaes
      • pymobiledevice3 developer core-profile-session
    • System monitoring (top like)
      • pymobiledevice3 developer sysmon processes
    • Raw shell for experimenting:
      • pymobiledevice3 developer shell
  • And some more :)

Installation

Make sure swig and openssl is installed for M2Crypto installation:

On MAC:

brew install swig openssl

LDFLAGS="-L$(brew --prefix openssl)/lib" \
CFLAGS="-I$(brew --prefix openssl)/include" \
SWIG_FEATURES="-cpperraswarn -includeall -I$(brew --prefix openssl)/include" \
python3 -m pip install --user -U m2crypto

On Linux:

sudo apt install swig openssl

Now you can install the last released version using pip:

python3 -m pip install --user -U pymobiledevice3

Or install the latest version from sources:

git clone [email protected]:doronz88/pymobiledevice3.git
cd pymobiledevice3
python3 -m pip install --user -U -e .

You can also install auto-completion for all available sub-commands by adding the following into your ~/.zshrc:

eval "$(_PYMOBILEDEVICE3_COMPLETE=source_zsh pymobiledevice3)"

Usage

You can either use the CLI:

Usage: pymobiledevice3 [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  afc           FileSystem utils
  apps          application options
  crash         crash report options
  developer     developer options.
  diagnostics   diagnostics options
  list-devices  list connected devices
  lockdown      lockdown options
  mounter       mounter options
  notification  API for notify_post() & notify_register_dispatch().
  pcap          sniff device traffic
  profile       profile options
  ps            show process list
  syslog        syslog options

Or import and use the API yourself:

from pymobiledevice3.lockdown import LockdownClient
from pymobiledevice3.services.syslog import SyslogService

lockdown = LockdownClient()
for line in SyslogService(lockdown=lockdown).watch():
    # just print all syslog lines as is
    print(line)

Sending your own messages

Lockdown messages

Every such subcommand may wrap several relay requests underneath. If you wish to try and play with some the relays yourself, you can run:

pymobiledevice3 lockdown service <service-name>

This will start an IPython shell where you already have the connection established using the client variable and you can send & receive messages.

# This shell allows you to communicate directly with every service layer behind the lockdownd daemon.

# For example, you can do the following:
client.send_plist({"Command": "DoSomething"})

# and view the reply
print(client.recv_plist())

# or just send raw message
client.sendall(b"hello")

# and view the result
print(client.recvall(20))

Instruments messages

If you want to play with DTServiceHub which lies behind the developer options, you can also use:

pymobiledevice3 developer shell

To also get an IPython shell, which lets you call ObjC methods from the exported objects in the instruments' namespace like so:

# This shell allows you to send messages to the DVTSecureSocketProxy and receive answers easily.
# Generally speaking, each channel represents a group of actions.
# Calling actions is done using a selector and auxiliary (parameters).
# Receiving answers is done by getting a return value and seldom auxiliary (private / extra parameters).
# To see the available channels, type the following:
developer.supported_identifiers

# In order to send messages, you need to create a channel:
channel = developer.make_channel('com.apple.instruments.server.services.deviceinfo')

# After creating the channel you can call allowed selectors:
channel.runningProcesses()

# If an answer is expected, you can receive it using the receive method:
processes = channel.receive_plist()

# Sometimes the selector requires parameters, You can add them using MessageAux. For example lets kill a process:
channel = developer.make_channel('com.apple.instruments.server.services.processcontrol')
args = MessageAux().append_obj(80)  # This will kill pid 80
channel.killPid_(args, expects_reply=False)  # Killing a process doesn't require an answer.

# In some rare cases, you might want to receive the auxiliary and the selector return value.
# For that cases you can use the recv_plist method.
return_value, auxiliary = developer.recv_plist()

Example

Lockdown services

Support Service Process Description
DONE com.apple.afc /usr/libexec/afcd File access for /var/mobile/Media
DONE com.apple.crashreportcopymobile /usr/libexec/afcd -r File access for /var/mobile/Library/Logs/CrashReports
DONE com.apple.pcapd /usr/libexec/pcapd Sniff device's network traffic
DONE com.apple.syslog_relay /usr/libexec/diagnosticd Just streams syslog lines as raw strings
DONE com.apple.os_trace_relay /usr/libexec/diagnosticd More extensive syslog monitoring
DONE com.apple.mobile.diagnostics_relay com.apple.mobile.diagnostics_relay General diagnostic tools
DONE com.apple.mobile.notification_proxy /usr/libexec/notification_proxy API wrapper for notify_post() & notify_register_dispatch()
DONE com.apple.crashreportmover /usr/libexec/crash_mover Just trigger crash_mover to move all crash reports into crash directory
DONE com.apple.mobile.MCInstall /usr/libexec/mc_mobile_tunnel Profile management
DONE com.apple.mobile.screenshotr /Developer/Library/PrivateFrameworks/DVTInstrumentsFoundation.framework/XPCServices/com.apple.dt.DTScreenshotService.xpc/com.apple.dt.DTScreenshotService Take screenshot into a PNG format
DONE com.apple.instruments.remoteserver.DVTSecureSocketProxy /Developer/Library/PrivateFrameworks/DVTInstrumentsFoundation.framework/DTServiceHub Developer instrumentation service
DONE com.apple.mobile.mobile_image_mounter /usr/libexec/mobile_storage_proxy
DONE com.apple.mobile.house_arrest /usr/libexec/mobile_house_arrest Get AFC utils (file management per application bundle)
DONE com.apple.mobile.installation_proxy /usr/libexec/mobile_installation_proxy Application managementNot yet
Not yet com.apple.atc /usr/libexec/atc AirTraffic related
Not yet com.apple.mobile.assertion_agent /usr/libexec/mobile_assertion_agent Create power assertion to prevent different kinds of sleep
Not yet com.apple.ait.aitd /usr/libexec/atc AirTraffic related
Not yet com.apple.misagent /usr/libexec/misagent Profile related
Not yet com.apple.mobile.file_relay /usr/libexec/mobile_file_relay File access for iOS <= 8
Not yet com.apple.mobile.heartbeat /usr/libexec/lockdownd
Not yet com.apple.mobile.insecure_notification_proxy /usr/libexec/notification_proxy -i API wrapper for notify_post() & notify_register_dispatch() from whitelist
Not yet com.apple.mobilebackup /usr/libexec/BackupAgent --lockdown
Not yet com.apple.mobilebackup2 /usr/libexec/BackupAgent2 --lockdown
Not yet com.apple.mobilesync /usr/libexec/SyncAgent --lockdown --oneshot -v
Not yet com.apple.purpletestr /usr/libexec/PurpleTestr --lockdown --oneshot
Not yet com.apple.radios.wirelesstester.mobile /usr/local/bin/WirelessTester -l 1 -o /var/mobile/WirelessTester_mobile.log
Not yet com.apple.radios.wirelesstester.root /usr/local/bin/WirelessTester -l 1 -o /var/mobile/WirelessTester_mobile.log
Not yet com.apple.springboardservices /usr/libexec/springboardservicesrelay
Not yet com.apple.thermalmonitor.thermtgraphrelay /usr/libexec/thermtgraphrelay
Not yet com.apple.webinspector /usr/libexec/webinspectord
BUG com.apple.iosdiagnostics.relay /usr/libexec/ios_diagnostics_relay Failed to connect to it from some reason

com.apple.instruments.remoteserver.DVTSecureSocketProxy

Exports several ObjC objects and allows calling their respective selectors. The /Developer/Library/PrivateFrameworks/DVTInstrumentsFoundation.framework/DTServiceHub service reads the configuration stored from [[NSUserDefaults standardUserDefaults] boolForKey:@"DTXConnectionTracer"] If the value is true, then /tmp/DTServiceHub[PID].DTXConnection.RANDOM.log is created and can be used to debug the transport protocol.

For example:

[email protected] (/var/root)# tail -f /tmp/DTServiceHub[369].DTXConnection.qNjM2U.log
170.887982 x4 resuming [c0]: <DTXConnection 0x100d20670 : x4>
170.889120 x4   sent   [c0]: < DTXMessage 0x100d52b10 : i2.0 c0 dispatch:[_notifyOfPublishedCapabilities:<NSDictionary 0x100d0e1b0 | 92 key/value pairs>] >
170.889547 x4 received [c0]: < DTXMessage 0x100d0a550 : i1.0 c0 dispatch:[_notifyOfPublishedCapabilities:<NSDictionary 0x100d16a40 | 2 key/value pairs>] >
170.892101 x4 received [c0]: < DTXMessage 0x100d0a550 : i3.0e c0 dispatch:[_requestChannelWithCode:[1]identifier :"com.apple.instruments.server.services.deviceinfo"] >
170.892238 x4   sent   [c0]: < DTXMessage 0x100d61830 : i3.1 c0 >
170.892973 x4 received [c1f]: < DTXMessage 0x100d0a550 : i4.0e c1 dispatch:[runningProcesses] >
171.204957 x4   sent   [c1f]: < DTXMessage 0x100c557a0 : i4.1 c1 object:(__NSArrayM*)<NSArray 0x100c199d0 | 245 objects> { <NSDictionary 0x100c167c0 | 5 key/value pairs>, <NSDictionary 0x100d17970 | 5 key/value pairs>, <NSDictionary 0x100d17f40 | 5 key/value pairs>, <NSDictionary 0x100d61750 | 5 key/value pairs>, <NSDictionary 0x100c16760 | 5 key/value pairs>, ...  } >
171.213326 x4 received [c0]: < DTXMessage : kDTXInterruptionMessage >
171.213424 x4  handler [c0]: < DTXMessage : i1 kDTXInterruptionMessage >
171.213477 x4 received [c1f]: < DTXMessage : kDTXInterruptionMessage >

For editing the configuration we can simply add the respected key into: /var/mobile/Library/Preferences/.GlobalPreferences.plist and kill cfprefsd

The valid selectors for triggering can be found using the following Frida script the same way Troy Bowman used for iterating all classes which implement the protocol DTXAllowedRPC:

frida -U DTServiceHub
for (var name in ObjC.protocols) {
    var protocol = ObjC.protocols[name]
    if ('DTXAllowedRPC' in protocol.protocols) {
        console.log('@protocol', name)
        console.log('  ' + Object.keys(protocol.methods).join('\n  '))
    }
}

The complete list for the following XCode versions can be found in:

com.apple.os_trace_relay

Provides API for the following operations:

  • Show process list (process name and pid)
  • Stream syslog lines in binary form with optional filtering by pid.
  • Get old stored syslog archive in PAX format (can be extracted using pax -r < filename).
    • Archive contain the contents are the /var/db/diagnostics directory

com.apple.mobile.diagnostics_relay

Provides an API to:

  • Query MobileGestalt & IORegistry keys.
  • Reboot, shutdown or put the device in sleep mode.

com.apple.mobile.file_relay

On older iOS versions, this was the main relay used for file operations, which was later replaced with AFC.

com.apple.pcapd

Starting iOS 5, apple added a remote virtual interface (RVI) facility that allows mirroring networks trafic from an iOS device. On Mac OSX the virtual interface can be enabled with the rvictl command. This script allows to use this service on other systems.

Comments
  • Installation error while installing in mac

    Installation error while installing in mac

    sbts-MacBook-Pro:pymobiledevice3-master nbt$ python3 -m pip install --user -U -e . Obtaining file:///Users/sbts/Desktop/pymobiledevice3-master Collecting M2Crypto Using cached M2Crypto-0.37.1.tar.gz (1.2 MB) Requirement already satisfied, skipping upgrade: construct>=2.9.29 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from pymobiledevice3==1.6.0) (2.10.56) Requirement already satisfied, skipping upgrade: pyasn1 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from pymobiledevice3==1.6.0) (0.4.8) Collecting termcolor Using cached termcolor-1.1.0.tar.gz (3.9 kB) Collecting click Using cached click-7.1.2-py2.py3-none-any.whl (82 kB) Collecting coloredlogs Using cached coloredlogs-15.0-py2.py3-none-any.whl (45 kB) Requirement already satisfied, skipping upgrade: IPython in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from pymobiledevice3==1.6.0) (7.21.0) Collecting bpylist2>=4.0.1 Using cached bpylist2-4.0.1-py3-none-any.whl (30 kB) Requirement already satisfied, skipping upgrade: pygments in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from pymobiledevice3==1.6.0) (2.8.0) Collecting hexdump Using cached hexdump-3.3.zip (12 kB) Collecting arrow Using cached arrow-1.1.0-py3-none-any.whl (58 kB) Collecting daemonize Using cached daemonize-2.5.0-py2.py3-none-any.whl (5.2 kB) Requirement already satisfied, skipping upgrade: parameterized in /Users/nbt/Library/Python/3.9/lib/python/site-packages (from M2Crypto->pymobiledevice3==1.6.0) (0.8.1) Collecting humanfriendly>=9.1 Using cached humanfriendly-9.1-py2.py3-none-any.whl (86 kB) Requirement already satisfied, skipping upgrade: pexpect>4.3; sys_platform != "win32" in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from IPython->pymobiledevice3==1.6.0) (4.8.0) Requirement already satisfied, skipping upgrade: appnope; sys_platform == "darwin" in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from IPython->pymobiledevice3==1.6.0) (0.1.2) Requirement already satisfied, skipping upgrade: pickleshare in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from IPython->pymobiledevice3==1.6.0) (0.7.5) Requirement already satisfied, skipping upgrade: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from IPython->pymobiledevice3==1.6.0) (3.0.16) Requirement already satisfied, skipping upgrade: jedi>=0.16 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from IPython->pymobiledevice3==1.6.0) (0.18.0) Requirement already satisfied, skipping upgrade: backcall in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from IPython->pymobiledevice3==1.6.0) (0.2.0) Requirement already satisfied, skipping upgrade: setuptools>=18.5 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from IPython->pymobiledevice3==1.6.0) (49.2.1) Requirement already satisfied, skipping upgrade: traitlets>=4.2 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from IPython->pymobiledevice3==1.6.0) (5.0.5) Requirement already satisfied, skipping upgrade: decorator in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from IPython->pymobiledevice3==1.6.0) (4.4.2) Requirement already satisfied, skipping upgrade: python-dateutil>=2.7.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from arrow->pymobiledevice3==1.6.0) (2.8.1) Requirement already satisfied, skipping upgrade: ptyprocess>=0.5 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from pexpect>4.3; sys_platform != "win32"->IPython->pymobiledevice3==1.6.0) (0.7.0) Requirement already satisfied, skipping upgrade: wcwidth in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->IPython->pymobiledevice3==1.6.0) (0.2.5) Requirement already satisfied, skipping upgrade: parso<0.9.0,>=0.8.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from jedi>=0.16->IPython->pymobiledevice3==1.6.0) (0.8.1) Requirement already satisfied, skipping upgrade: ipython-genutils in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from traitlets>=4.2->IPython->pymobiledevice3==1.6.0) (0.2.0) Requirement already satisfied, skipping upgrade: six>=1.5 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from python-dateutil>=2.7.0->arrow->pymobiledevice3==1.6.0) (1.15.0) Using legacy 'setup.py install' for M2Crypto, since package 'wheel' is not installed. Using legacy 'setup.py install' for termcolor, since package 'wheel' is not installed. Using legacy 'setup.py install' for hexdump, since package 'wheel' is not installed. Installing collected packages: M2Crypto, termcolor, click, humanfriendly, coloredlogs, bpylist2, hexdump, arrow, daemonize, pymobiledevice3 Running setup.py install for M2Crypto ... error ERROR: Command errored out with exit status 1: command: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/pj/7dh7v3g501z6jhrjh_9zljdw0000gn/T/pip-install-o8t69hjp/m2crypto/setup.py'"'"'; file='"'"'/private/var/folders/pj/7dh7v3g501z6jhrjh_9zljdw0000gn/T/pip-install-o8t69hjp/m2crypto/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /private/var/folders/pj/7dh7v3g501z6jhrjh_9zljdw0000gn/T/pip-record-k6l92jva/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /Users/nbt/Library/Python/3.9/include/python3.9/M2Crypto cwd: /private/var/folders/pj/7dh7v3g501z6jhrjh_9zljdw0000gn/T/pip-install-o8t69hjp/m2crypto/ Complete output (53 lines): running install running build running build_py copying M2Crypto/callback.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/EVP.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/AuthCookie.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/m2.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/ftpslib.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/EC.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/httpslib.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/X509.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/util.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/RSA.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/BIO.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/DH.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/init.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/threading.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/Rand.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/SMIME.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/Engine.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/m2xmlrpclib.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/RC4.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/m2urllib2.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/DSA.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/six.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/m2urllib.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/BN.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/m2crypto.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/Err.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto copying M2Crypto/ASN1.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto creating build/lib.macosx-10.9-x86_64-3.9/M2Crypto/SSL copying M2Crypto/SSL/cb.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto/SSL copying M2Crypto/SSL/Session.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto/SSL copying M2Crypto/SSL/timeout.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto/SSL copying M2Crypto/SSL/init.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto/SSL copying M2Crypto/SSL/TwistedProtocolWrapper.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto/SSL copying M2Crypto/SSL/Cipher.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto/SSL copying M2Crypto/SSL/Connection.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto/SSL copying M2Crypto/SSL/Context.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto/SSL copying M2Crypto/SSL/SSLServer.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto/SSL copying M2Crypto/SSL/ssl_dispatcher.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto/SSL copying M2Crypto/SSL/Checker.py -> build/lib.macosx-10.9-x86_64-3.9/M2Crypto/SSL running build_ext building 'M2Crypto._m2crypto' extension swigging SWIG/_m2crypto.i to SWIG/_m2crypto_wrap.c swig -python -py3 -I/usr/local/include -I/Applications/Xcode_11.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.3/include -I/Applications/Xcode_11.4.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include -I/Applications/Xcode_11.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -I/Applications/Xcode_11.4.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks (framework directory) -I/usr/local/include -I/Applications/Xcode_11.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.3/include -I/Applications/Xcode_11.4.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include -I/Applications/Xcode_11.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -I/Applications/Xcode_11.4.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks (framework directory) -I/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 -I/usr/include/openssl -includeall -modern -builtin -outdir /private/var/folders/pj/7dh7v3g501z6jhrjh_9zljdw0000gn/T/pip-install-o8t69hjp/m2crypto/M2Crypto -o SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i Deprecated command line option: -modern. This option is now always on. SWIG/_m2crypto.i:62: Error: Unable to find 'openssl/opensslv.h' SWIG/_m2crypto.i:68: Error: Unable to find 'openssl/safestack.h' SWIG/_evp.i:12: Error: Unable to find 'openssl/opensslconf.h' SWIG/_rc4.i:5: Error: Unable to find 'openssl/opensslconf.h' SWIG/_ec.i:7: Error: Unable to find 'openssl/opensslconf.h' error: command '/usr/local/bin/swig' failed with exit code 1 ---------------------------------------- ERROR: Command errored out with exit status 1: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/pj/7dh7v3g501z6jhrjh_9zljdw0000gn/T/pip-install-o8t69hjp/m2crypto/setup.py'"'"'; file='"'"'/private/var/folders/pj/7dh7v3g501z6jhrjh_9zljdw0000gn/T/pip-install-o8t69hjp/m2crypto/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /private/var/folders/pj/7dh7v3g501z6jhrjh_9zljdw0000gn/T/pip-record-k6l92jva/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /Users/nbt/Library/Python/3.9/include/python3.9/M2Crypto Check the logs for full command output.

    I am getting this error while running

    python3 -m pip install --user -U -e .

    command

    opened by bikee1235 17
  • BrokenPipeError: [Errno 32] Broken pipe

    BrokenPipeError: [Errno 32] Broken pipe

    Test environment

    • Host: macOS Big Sur
    • Target: iPhone 7 iOS 14.6

    Describe the bug

    import os, sys
    import traceback
    import struct
    import time
    
    from pymobiledevice3.lockdown import LockdownClient
    from pymobiledevice3.services.pcapd import PcapdService, PCAP_HEADER, PACKET_HEADER
    
    from exynex import utils, frida_utils
    from exynex.termcolors import *
    
    
    def capture_network_to_pcap(lockdown_device: LockdownClient, frida_device, remote_pid,
    	pcap_output, keylog_output, packets_count, capturing_timeout):
    	""" Capture packets on a device and log SSLKEYLOG. """
    	session = frida_device.attach(remote_pid)
    	with open(pcap_output, "wb") as pcap_output_fd, \
    	     open(keylog_output, "w") as keylog_output_fd:
    		# Run sslkeydump
    		sslkeylog_script = frida_utils.get_agent_script("sslkeylog.js")
    		sslkeylog_agent = session.create_script(sslkeylog_script)
    		sslkeylog_agent.on("message", frida_utils.message_handler(on_payload=keylog_output_fd.write))
    
    		# Start capturing packets
    		service = PcapdService(lockdown=lockdown_device)
    		packets_generator = service.watch(process=remote_pid)
    
    		...
    
    BrokenPipeError: [Errno 32] Broken pipe
     File "/Users/x/Downloads/Projects/ios-apps-research-2022/exynex/process.py", line 26, in capture_network_to_pcap
       service = PcapdService(lockdown=lockdown_device)
     File "/Users/x/.pyenv/versions/3.9.0/lib/python3.9/site-packages/pymobiledevice3/services/pcapd.py", line 327, in __init__
       self.service = self.lockdown.start_service(self.SERVICE_NAME)
     File "/Users/x/.pyenv/versions/3.9.0/lib/python3.9/site-packages/pymobiledevice3/lockdown.py", line 300, in start_service
       attr = self.get_service_connection_attributes(name, escrow_bag=escrow_bag)
     File "/Users/x/.pyenv/versions/3.9.0/lib/python3.9/site-packages/pymobiledevice3/lockdown.py", line 290, in get_service_connection_attributes
       self.service.send_plist(request)
     File "/Users/x/.pyenv/versions/3.9.0/lib/python3.9/site-packages/pymobiledevice3/service_connection.py", line 110, in send_plist
       return self.sendall(message + payload)
     File "/Users/x/.pyenv/versions/3.9.0/lib/python3.9/site-packages/pymobiledevice3/service_connection.py", line 61, in sendall
       self.socket.sendall(data)
     File "/Users/x/.pyenv/versions/3.9.0/lib/python3.9/ssl.py", line 1204, in sendall
       v = self.send(byte_view[count:])
     File "/Users/x/.pyenv/versions/3.9.0/lib/python3.9/ssl.py", line 1173, in send
       return self._sslobj.write(data)
    

    This exception throws from time to time when I start the script too often.

    opened by vadim-a-yegorov 14
  • Lockdown suggestions

    Lockdown suggestions

    1. Is it possible to make saving/loading pairing record to the home folder optional?
    2. Ideally we could skip writing ssl.txt to the filesystem as well, but it seems python's api doesn't let us load ssl context from byte array rather then file. Unless you can think of some other way?
    opened by vToMy 13
  • Adding devmodctl to lockdown to enable developer mode for iOS 16

    Adding devmodctl to lockdown to enable developer mode for iOS 16

    Hello,

    In iOS 16, coming in a few months, the way to activate developer mode on an iPhone is changing. We will now have to go to Settings > Privacy & Security > Developer mode on the device, and activate a toggle, as explained in this article :

    https://medium.com/@ant_one/enable-developer-mode-on-ios-16-20dd25b58fc0

    A new tool will be available on macOS to enable the developer mode in cmdline, which is devmodctl.

    On libimobiledevice github, there is a thread about iOS 16 here : https://github.com/libimobiledevice/libimobiledevice/issues/1333

    Someone decided to add in the lockdown commands the tool to be able to enable developer mode using libimobiledevice, as seen here ( not in python but still able to see the implementation) : https://gist.github.com/nikias/262bd709c1651e0139eb9e3a2e2d33f4

    I think this could also be a great addition to pymobiledevice3 to be able to activate developer mode for iOS 16. I think it may also be necessary to be in macOS Ventura to use this feature, as devmodctl is only available with Ventura for the moment.

    Thanks a lot!

    opened by Valkhes 10
  • Will HTTP proxy support be set on the monitored device?

    Will HTTP proxy support be set on the monitored device?

    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 or screenshots about the feature request here.

    opened by timwang-ai 7
  • SSL internal error

    SSL internal error

    Test environment

    • Ubuntu 21.04
    • iPhone X, iOS 15.0b5

    Describe the bug When trying to use lockdown services, I get the following error: ssl.SSLError: [SSL] internal error (_ssl.c:1129)

    To Reproduce Steps to reproduce the behavior:

    1. Connect a device via USB
    2. Run pymobiledevice3 lockdown service com.apple.mobile.heartbeat

    Expected behavior The command should complete successfully.

    Logs

    ❯ pymobiledevice3 lockdown service com.apple.mobile.heartbeat
    2021-08-12 13:41:58 athena root[234679] WARNING Using iTunes pair record: [REDACTED].plist
    Traceback (most recent call last):
      File "/home/nyuszika7h/getnonce/.venv/bin/pymobiledevice3", line 8, in <module>
        sys.exit(cli())
      File "/home/nyuszika7h/getnonce/.venv/lib/python3.9/site-packages/pymobiledevice3/__main__.py", line 41, in cli
        cli_commands()
      File "/home/nyuszika7h/getnonce/.venv/lib/python3.9/site-packages/click/core.py", line 1137, in __call__
        return self.main(*args, **kwargs)
      File "/home/nyuszika7h/getnonce/.venv/lib/python3.9/site-packages/click/core.py", line 1062, in main
        rv = self.invoke(ctx)
      File "/home/nyuszika7h/getnonce/.venv/lib/python3.9/site-packages/click/core.py", line 1668, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/home/nyuszika7h/getnonce/.venv/lib/python3.9/site-packages/click/core.py", line 1666, in invoke
        sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)
      File "/home/nyuszika7h/getnonce/.venv/lib/python3.9/site-packages/click/core.py", line 923, in make_context
        self.parse_args(ctx, args)
      File "/home/nyuszika7h/getnonce/.venv/lib/python3.9/site-packages/click/core.py", line 1379, in parse_args
        value, args = param.handle_parse_result(ctx, opts, args)
      File "/home/nyuszika7h/getnonce/.venv/lib/python3.9/site-packages/click/core.py", line 2364, in handle_parse_result
        value = self.process_value(ctx, value)
      File "/home/nyuszika7h/getnonce/.venv/lib/python3.9/site-packages/click/core.py", line 2326, in process_value
        value = self.callback(ctx, self, value)
      File "/home/nyuszika7h/getnonce/.venv/lib/python3.9/site-packages/pymobiledevice3/cli/cli_common.py", line 44, in udid
        return LockdownClient(udid=value)
      File "/home/nyuszika7h/getnonce/.venv/lib/python3.9/site-packages/pymobiledevice3/lockdown.py", line 101, in __init__
        if not self.validate_pairing():
      File "/home/nyuszika7h/getnonce/.venv/lib/python3.9/site-packages/pymobiledevice3/lockdown.py", line 188, in validate_pairing
        self.service.ssl_start(self.ssl_file, self.ssl_file)
      File "/home/nyuszika7h/getnonce/.venv/lib/python3.9/site-packages/pymobiledevice3/service_connection.py", line 120, in ssl_start
        self.socket = context.wrap_socket(self.socket)
      File "/usr/lib/python3.9/ssl.py", line 500, in wrap_socket
        return self.sslsocket_class._create(
      File "/usr/lib/python3.9/ssl.py", line 1040, in _create
        self.do_handshake()
      File "/usr/lib/python3.9/ssl.py", line 1309, in do_handshake
        self._sslobj.do_handshake()
    ssl.SSLError: [SSL] internal error (_ssl.c:1129)
    

    Additional context N/A

    opened by 0xallie 7
  • Replace M2Crypto with pyOpenSSL

    Replace M2Crypto with pyOpenSSL

    M2Crypto doesn't support windows (the windows port is unmaintained and cannot be installed on newer systems). I suggest using pyOpenSSL instead. It might be possible to use just cryptography but I'm not sure.

    opened by vToMy 7
  • pymobiledevice3: command not found

    pymobiledevice3: command not found

    Test environment

    • Host OS version. Debian 9 Stretch
    • Target device model and iOS version. iOS14.6 on iPhone XR

    Describe the bug A clear and concise description of what the bug is. This is great project and I looked up pymobiledevice and found this project: followed installation using pip install successful, but got pymobiledevice3: command not found

    and I also tried in cmd line and got the following commands, I dont know if it's installed right? py3clean pycompile pyfilerelay pymobilebackup python2.7 python3.5m-config py3compile pydeviceinfo pygettext pymobilebackup2 python2.7-config python3-config py3versions pydiagnosticsrelay pygettext2.7 pymobileconfig python2-config python3m pyafc pydoc pygettext3 pypcapd python3 python3m-config pyappsmanager pydoc2.7 pygettext3.5 pyscreenshotr python3.5 python-config pybuild pydoc3 pyhousearrest python python3.5-config pyversions pyclean pydoc3.5 pylockdown python2 python3.5m

    Any ideas is welcomed, thanks!

    To Reproduce Steps to reproduce the behavior:

    1. Go to '...'
    2. Click on '....'
    3. Scroll down to '....'
    4. See error

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

    Logs If applicable, add logs including backtraces for the given error that help explain your problem.

    Additional context Add any other context about the problem here.

    opened by beckietech 7
  • No iTunes pairing record found

    No iTunes pairing record found

    Getting errors of no iTunes Pairing record found, even though it's paired with the system (shows up in Finder/Music) using macOS Big Sur 11.3. Do I need to disable SIP or something?

    2021-04-30 14:09:02 MacBook-Pro.local root[29316] WARNING No iTunes pairing record found for device eb3480da40d4568698db8e6509447e67122bxxxx
    2021-04-30 14:09:02 MacBook-Pro.local pymobiledevice3.lockdown[29316] WARNING Getting pair record from usbmuxd```
    opened by exiva 7
  • MuxException: Invalid packet type received: Container

    MuxException: Invalid packet type received: Container

    Running on Linux Mint 21, using iOS 15.6. I have libimobiledevice running and have paired and used successfully. Using usbmuxd2 for wifi capability.

    I get the following error when running:

    from pymobiledevice3.lockdown import LockdownClient
    from pymobiledevice3.services.syslog import SyslogService
    lockdown = LockdownClient()
    
    Traceback (most recent call last):
      File '<stdin>', line 1, in <module>
      File "/home/x/.local/lib/python3.10/site-packages/pymobiledevice3/lockdown.py", line 126, in __init__
        self.service = ServiceConnection.create(self.medium, self.identifier, self.SERVICE_PORT,
      File "/home/x/.local/lib/python3.10/site-packages/pymobiledevice3/service_connection.py", line 104, in create
        return ServiceConnection.create_using_usbmux(identifier, port, connection_type=connection_type)
      File "/home/x/.local/lib/python3.10/site-packages/pymobiledevice3/service_connection.py", line 87, in create_using_usbmux
        target_device = select_device(udid, connection_type=connection_type)
      File "/home/x/.local/lib/python3.10/site-packages/pymobiledevice3/usbmux.py", line 381, in select_device
        for device in list_devices():
      File "/home/x/.local/lib/python3.10/site-packages/pymobiledevice3/usbmux.py", line 369, in list_devices
        mux.get_device_list(0.1)
      File "/home/x/.local/lib/python3.10/site-packages/pymobiledevice3/usbmux.py", line 227, in get_device_list
        self._receive_device_state_update()
      File "/home/x/.local/lib/python3.10/site-packages/pymobiledevice3/usbmux.py", line 293, in _receive_device_state_update
        raise MuxException(f'Invalid packet type received: {response}')
    pymobiledevice3.exceptions.MuxException: Invalid packet type received: Container:
        header = Container:
            version = (enum) BINARY 0
            message = (enum) PLIST 8
            tag = 0
        data = b'<?xml version="1'... (truncated, total 840)
    

    Am pretty new to python, so not very sure about where to start? Any ideas?

    opened by johnfgoodman 6
  • Unable to enable developer mode

    Unable to enable developer mode

    Test environment

    • macOS 12.4
    • iPhone 8 Plus on iOS Developer Beta 3 (B)

    Describe the bug When enabling developer mode with pymobiledevice3 amfi enable-developer-mode, it is unable to enable developer mode.

    To Reproduce Steps to reproduce the behavior:

    1. Pair device (pymobiledevice3 lockdown pair)
    2. Try and enable developer mode with above command
    3. Get error

    Expected behavior Developer mode should be enabled

    Logs If applicable, add logs including backtraces for the given error that help explain your problem.

    Traceback (most recent call last):
      File "/Users/jjtech/pymobiledevice3/pymobiledevice3/./__main__.py", line 74, in <module>
        cli()
      File "/Users/jjtech/pymobiledevice3/pymobiledevice3/./__main__.py", line 54, in cli
        cli_commands()
      File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1130, in __call__
        return self.main(*args, **kwargs)
      File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1055, in main
        rv = self.invoke(ctx)
      File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1657, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1657, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "/usr/local/lib/python3.9/site-packages/click/core.py", line 760, in invoke
        return __callback(*args, **kwargs)
      File "/usr/local/lib/python3.9/site-packages/pymobiledevice3/cli/amfi.py", line 26, in enable_developer_mode
        AmfiService(lockdown).enable_developer_mode()
      File "/usr/local/lib/python3.9/site-packages/pymobiledevice3/services/amfi.py", line 32, in enable_developer_mode
        if not resp['success']:
    KeyError: 'success'
    

    Additional context I added a print() statement before the if not resp['success'] line, and resp is equal to {'Error': 'Device has a passcode set'}

    opened by JJTech0130 6
  • Does pymobiledevice3 developer support the Open and practice VoiceOver on iPhone?

    Does pymobiledevice3 developer support the Open and practice VoiceOver on iPhone?

    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 or screenshots about the feature request here.

    opened by timwang-ai 4
  • Collect iPhone Battery Health from Device

    Collect iPhone Battery Health from Device

    Hi , Currently there is a way to collect iphone battery health using ioreg via IOPMPowerSource or AppleSmartBattery AppleRawMaxCapacity NominalChargeCapacity

    but its dsnt return value which matches device inside Battery Health "Setting -> Battery -> BatteryHealth -> Maximum Capacity" is there a way to collect that information using pymobildevice ? @doronz88

    opened by Dantee296 10
  • FEATURE REQUEST: Music Transfer (`iTunes_Control`)

    FEATURE REQUEST: Music Transfer (`iTunes_Control`)

    Is your feature request related to a problem? Please describe. The only program I can find to transfer mp3's to your phone's music library without using iTunes is rhythmbox, which you can't use from the command line.

    Describe the solution you'd like A command in pymobiledevice3 that allows us to transfer mp3's to our Apple Music local songs.

    Describe alternatives you've considered I have researched to find a program, and looked at GNOME's rhythmbox, the only tool I could find.

    help wanted 
    opened by CRKatri 3
  • Error Sending RestoreLogo

    Error Sending RestoreLogo

    iphone 7 ios 15.5 After the device is connected and starts the flashing process, the error occurs

    **2022-06-20 07:58:58 DESKTOP-N7PN00F pymobiledevice3.restore.tss[256] INFO response successfully received
    2022-06-20 07:58:58 DESKTOP-N7PN00F pymobiledevice3.restore.ipsw.component[256] DEBUG NOTE: No path for component iBEC in TSS, will fetch from build_identity
    2022-06-20 07:58:58 DESKTOP-N7PN00F pymobiledevice3.restore.ipsw.component[256] DEBUG Extracting iBEC.d10.RELEASE.im4p (Firmware/dfu/iBEC.d10.RELEASE.im4p)
    2022-06-20 07:58:58 DESKTOP-N7PN00F pymobiledevice3.restore.img4[256] INFO Personalizing IMG4 component iBEC...
    2022-06-20 07:58:58 DESKTOP-N7PN00F pymobiledevice3.restore.img4[256] DEBUG Tag found
    2022-06-20 07:58:58 DESKTOP-N7PN00F pymobiledevice3.restore.recovery[256] INFO Sending iBEC (555165 bytes)...
      0%|                                                                                           | 0/17 [00:00<?, ?it/s]
    2022-06-20 07:58:58 DESKTOP-N7PN00F pymobiledevice3.restore.recovery[256] DEBUG waiting for device to reconnect...
    2022-06-20 07:58:58 DESKTOP-N7PN00F pymobiledevice3.irecv[256] DEBUG set_configuration: 1
    2022-06-20 07:58:58 DESKTOP-N7PN00F pymobiledevice3.irecv[256] DEBUG set_interface_altsetting: 0 0
    2022-06-20 07:58:58 DESKTOP-N7PN00F pymobiledevice3.restore.recovery[256] DEBUG connected mode: Mode.RECOVERY_MODE_2
    2022-06-20 07:58:58 DESKTOP-N7PN00F pymobiledevice3.restore.recovery[256] INFO device booted into recovery
    2022-06-20 07:58:58 DESKTOP-N7PN00F pymobiledevice3.restore.recovery[256] INFO iBoot build-version=bytearray(b'iBoot-7459.120.62.0.3\x00')
    2022-06-20 07:58:58 DESKTOP-N7PN00F pymobiledevice3.restore.recovery[256] INFO iBoot build-style=bytearray(b'RELEASE\x00')
    2022-06-20 07:58:58 DESKTOP-N7PN00F pymobiledevice3.restore.ipsw.component[256] DEBUG NOTE: No path for component RestoreLogo in TSS, will fetch from build_identity
    2022-06-20 07:58:58 DESKTOP-N7PN00F pymobiledevice3.restore.ipsw.component[256] DEBUG Extracting [email protected]~iphone.im4p (Firmware/all_flash/[email protected]~iphone.im4p)
    2022-06-20 07:58:58 DESKTOP-N7PN00F pymobiledevice3.restore.img4[256] INFO Personalizing IMG4 component RestoreLogo...
    2022-06-20 07:58:58 DESKTOP-N7PN00F pymobiledevice3.restore.img4[256] DEBUG Tag found
    2022-06-20 07:58:58 DESKTOP-N7PN00F pymobiledevice3.restore.recovery[256] INFO Sending RestoreLogo (13547 bytes)...
      0%|                                                                                            | 0/1 [00:00<?, ?it/s]
    Traceback (most recent call last):
      File "F:\Downloads\walton\pymobiledevice3-master\pymobiledevice3-master\pymobiledevice3\cli\restore.py", line 157, in restore_update
        Restore(ipsw, device, tss=tss, behavior=behavior, ignore_fdr=ignore_fdr).update()
      File "F:\Downloads\walton\pymobiledevice3-master\pymobiledevice3-master\pymobiledevice3\restore\restore.py", line 1231, in update
        self.recovery.boot_ramdisk()
      File "F:\Downloads\walton\pymobiledevice3-master\pymobiledevice3-master\pymobiledevice3\restore\recovery.py", line 462, in boot_ramdisk
        self.enter_restore()
      File "F:\Downloads\walton\pymobiledevice3-master\pymobiledevice3-master\pymobiledevice3\restore\recovery.py", line 363, in enter_restore
        self.send_applelogo()
      File "F:\Downloads\walton\pymobiledevice3-master\pymobiledevice3-master\pymobiledevice3\restore\recovery.py", line 274, in send_applelogo
        self.send_component(component)
      File "F:\Downloads\walton\pymobiledevice3-master\pymobiledevice3-master\pymobiledevice3\restore\recovery.py", line 252, in send_component
        self.device.irecv.send_buffer(data)
      File "F:\Downloads\walton\pymobiledevice3-master\pymobiledevice3-master\pymobiledevice3\irecv.py", line 156, in send_buffer
        n = self._device.write(0x04, chunk, timeout=USB_TIMEOUT)
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\site-packages\usb\core.py", line 986, in write
        intf, ep = self._ctx.setup_request(self, endpoint)
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\site-packages\usb\core.py", line 113, in wrapper
        return f(self, *args, **kwargs)
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\site-packages\usb\core.py", line 229, in setup_request
        self.managed_claim_interface(device, intf)
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\site-packages\usb\core.py", line 113, in wrapper
        return f(self, *args, **kwargs)
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\site-packages\usb\core.py", line 178, in managed_claim_interface
        self.backend.claim_interface(self.handle, i)
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\site-packages\usb\backend\libusb0.py", line 537, in claim_interface    _check(_lib.usb_claim_interface(dev_handle, intf))
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\site-packages\usb\backend\libusb0.py", line 447, in _check
        raise USBError(errmsg, ret)
    usb.core.USBError: [Errno None] b'libusb0-dll:err [claim_interface] could not claim interface 0, invalid configuration 0\n'
    Traceback (most recent call last):
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\runpy.py", line 197, in _run_module_as_main
        return _run_code(code, main_globals, None,
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\runpy.py", line 87, in _run_code
        exec(code, run_globals)
      File "F:\Downloads\walton\pymobiledevice3-master\pymobiledevice3-master\pymobiledevice3\__main__.py", line 62, in <module>
        cli()
      File "F:\Downloads\walton\pymobiledevice3-master\pymobiledevice3-master\pymobiledevice3\__main__.py", line 52, in cli
        cli_commands()
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\site-packages\click\core.py", line 1130, in __call__
        return self.main(*args, **kwargs)
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\site-packages\click\core.py", line 1055, in main
        rv = self.invoke(ctx)
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\site-packages\click\core.py", line 1657, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\site-packages\click\core.py", line 1657, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\site-packages\click\core.py", line 1404, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\site-packages\click\core.py", line 760, in invoke
        return __callback(*args, **kwargs)
      File "F:\Downloads\walton\pymobiledevice3-master\pymobiledevice3-master\pymobiledevice3\cli\restore.py", line 157, in restore_update
        Restore(ipsw, device, tss=tss, behavior=behavior, ignore_fdr=ignore_fdr).update()
      File "F:\Downloads\walton\pymobiledevice3-master\pymobiledevice3-master\pymobiledevice3\restore\restore.py", line 1231, in update
        self.recovery.boot_ramdisk()
      File "F:\Downloads\walton\pymobiledevice3-master\pymobiledevice3-master\pymobiledevice3\restore\recovery.py", line 462, in boot_ramdisk
        self.enter_restore()
      File "F:\Downloads\walton\pymobiledevice3-master\pymobiledevice3-master\pymobiledevice3\restore\recovery.py", line 363, in enter_restore
        self.send_applelogo()
      File "F:\Downloads\walton\pymobiledevice3-master\pymobiledevice3-master\pymobiledevice3\restore\recovery.py", line 274, in send_applelogo
        self.send_component(component)
      File "F:\Downloads\walton\pymobiledevice3-master\pymobiledevice3-master\pymobiledevice3\restore\recovery.py", line 252, in send_component
        self.device.irecv.send_buffer(data)
      File "F:\Downloads\walton\pymobiledevice3-master\pymobiledevice3-master\pymobiledevice3\irecv.py", line 156, in send_buffer
        n = self._device.write(0x04, chunk, timeout=USB_TIMEOUT)
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\site-packages\usb\core.py", line 986, in write
        intf, ep = self._ctx.setup_request(self, endpoint)
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\site-packages\usb\core.py", line 113, in wrapper
        return f(self, *args, **kwargs)
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\site-packages\usb\core.py", line 229, in setup_request
        self.managed_claim_interface(device, intf)
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\site-packages\usb\core.py", line 113, in wrapper
        return f(self, *args, **kwargs)
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\site-packages\usb\core.py", line 178, in managed_claim_interface
        self.backend.claim_interface(self.handle, i)
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\site-packages\usb\backend\libusb0.py", line 537, in claim_interface    _check(_lib.usb_claim_interface(dev_handle, intf))
      File "C:\FDTool\MTK\SP_Flash_Tool\Adb\Python39\lib\site-packages\usb\backend\libusb0.py", line 447, in _check
        raise USBError(errmsg, ret)
    usb.core.USBError: [Errno None] b'libusb0-dll:err [claim_interface] could not claim interface 0, invalid configuration 0\n'**
    
    opened by deyvs02 4
Releases(v1.35.0)
  • v1.35.0(Dec 26, 2022)

    What's Changed

    • a58e2c02412098cf95aaf010adff301e87fc0260 webinspector: add timeout for open_app function (@guysalt)
    • 4972d77ce355a7a1931fe57563bda12c6656dc07 services: add inspector_session (@guysalt)
    • f8f4145314432cee460069ac208f8c771f8b82b3 cli: add inspector-jsshell to webinspector (@guysalt)
    • 3bce5153a8958e9bcd7dcf61b502bc38c4bad1ae cli: webinspector - change name jsshell to automation_jsshell (@guysalt)
    • 0095f252bfd10fee7f228935cce98142949786ae cli: add timeout for automation_jsshell (@guysalt)
    • cf94f99824ae3fc3f6daf1906199560d94d93ad3 irecv: fix set_configuration in some cases (@m1stadev)
    • e62c2d59a25df262ecb139790c7ae400655e4f0d requirements: use ipsw_parser (@doronz88)
    • f02b7badc5d716222dd2ab034a12e68bc9ac4879 cli: fix har tapping (@doronz88)

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.34.2...v1.35.0

    Source code(tar.gz)
    Source code(zip)
  • v1.34.2(Dec 15, 2022)

    What's Changed

    • 9194ecffcd1fa79dbed0e1ea093bd3faf3a58815 house_arrest: fix shell functionality to use HouseArrestService instead of standard AfcService (@tzahish-deci)
    • 06b3e1626fdee0fd4591610eec7e2512bbc37703 activity_trap_tap: add har support (@doronz88)
    • 8676555187031d3eb027b3cefb26d19d75e9f377 activity_trace_tap: allow more verbose logging (@doronz88)

    New Contributors

    • @tzahish-deci made their first contribution in https://github.com/doronz88/pymobiledevice3/pull/375

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.34.1...v1.34.2

    Source code(tar.gz)
    Source code(zip)
  • v1.34.1(Dec 7, 2022)

    What's Changed

    • ad4c25c9a5b723d183c3124f9b47051b8795499c activity_trace_tap: add support for errno-value (@doronz88)
    • 4820da5858d10691e9e75f5f1a1906ad03dc2fff activity_trace_tap: add support for null processes (kernel) (@doronz88)
    • d0b83422d05661c6d5909d1deb96078bbd95cf1e activity_trace_tap: make default formatting concat using str() (@doronz88)
    • bece16320e03ac6ebd6077384049bc261c1d21d4 lockdown: add InvalidServiceError as a seperate LockdownError (@doronz88)
    • 1b407a7b0dfd6e649918d2b7c399a7ddbd11118f cli: show a friendly error message for DeveloperModeIsNotEnabledError (@doronz88)
    • e27dbe5dd04af12045f6c22a53fb9813a7fe1441 activity_trace_tap: handle None bytes format objects (@doronz88)

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.34.0...v1.34.1

    Source code(tar.gz)
    Source code(zip)
  • v1.34.0(Dec 7, 2022)

    What's Changed

    • f3a855f7736ff9de9080bf0dc33ee9031d330f1b crash_reports: add enter and exit to CrashReportsManager (@guysalt)
    • f13c74bfd9f9c864da475d5b8f5ea92ae0235ccd tests: add test_crash_reports (@guysalt)
    • 5612f5c6c84284bdfbb7ce1372b722c4339d9fa6 afc: change rm function to return list of undeleted items (@guysalt)
    • f8ae6997f4230eace883d6b36e41914c01bd38e3 crash_reports: add to clear function to throw exception (@guysalt)
    • 17071412fc4ba03a75b7a74db086cce9fdc1a0a4 crash_reports: add return typing hints (@guysalt)
    • 7af2535e5efd38637c1dae12e147f8bcd3e0b5b2 img4: use pyimg4 for IMG4 serialization (@doronz88) (huge thanks to @m1stadev great help!)
    • df7c201d0b68ba07943a34944987c64b11fc3478 refactor pep8 type hints (@doronz88)

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.33.0...v1.34.0

    Source code(tar.gz)
    Source code(zip)
  • v1.33.0(Dec 1, 2022)

    What's Changed

    • mobile_image_mounter: refactor list_images() -> copy_devices() by @doronz88 in https://github.com/doronz88/pymobiledevice3/pull/369
    • cli: allow dir-listing from unreadable local paths by @doronz88 in https://github.com/doronz88/pymobiledevice3/pull/371

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.32.4...v1.33.0

    Source code(tar.gz)
    Source code(zip)
  • v1.32.4(Nov 27, 2022)

    What's Changed

    • mobile_image_mounter: add many changes for ios16 by @doronz88 in https://github.com/doronz88/pymobiledevice3/pull/366
    • requirements: pygnuutils>=0.0.6 by @doronz88 in https://github.com/doronz88/pymobiledevice3/pull/367

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.32.3...v1.32.4

    Source code(tar.gz)
    Source code(zip)
  • v1.32.3(Nov 24, 2022)

    What's Changed

    • becc93f61549745a4925b81d8d54b7656f2a2808 crash_reports: fix get_new_sysdiagnose() for iOS 16.1 (@doronz88)
    • 78399d95b3b7cfa3399b4d948775656d700e845c crash: add flush option to clear command (@guysalt)
    • 583e4e0b6cc70cec3fa41b9d3a09aa3aee6f6ad6 cli: add device selection query if more than one device connected (@guysalt)
    • ff2c2c8067694aabefb4669455577aebba3d51c1 lockdown: add developer_mode_status proeprty (@doronz88)
    • 97c4f79f08f2c90d837821e43b11a3b2fc3314f6 cli: add amfi developer-mode-status subcommand (#360) (@doronz88) (Thanks @DanTheMinotaur for the help! 🙃)
    • d1812ff42ccf912a0667f11e5ac7c20dffc5502a cli: handle device selection abort (@doronz88)

    New Contributors

    • @guysalt made their first contribution in https://github.com/doronz88/pymobiledevice3/pull/362

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.32.2...v1.32.3

    Source code(tar.gz)
    Source code(zip)
  • v1.32.2(Nov 8, 2022)

    What's Changed

    • github: add workflow test for python 3.11 by @doronz88 in https://github.com/doronz88/pymobiledevice3/pull/354
    • CoreProfileSessionTap: Add timeout to dump by @matan1008 in https://github.com/doronz88/pymobiledevice3/pull/356
    • requirements: pykdebugparser>=1.2.4 by @doronz88 in https://github.com/doronz88/pymobiledevice3/pull/359

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.32.1...v1.32.2

    Source code(tar.gz)
    Source code(zip)
  • v1.32.1(Oct 28, 2022)

    What's Changed

    • mobilebackup2: Write upload files in chunks. by @matan1008 in https://github.com/doronz88/pymobiledevice3/pull/352
    • lockdown: make board_id and chip_id into properties by @doronz88 in https://github.com/doronz88/pymobiledevice3/pull/353

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.32.0...v1.32.1

    Source code(tar.gz)
    Source code(zip)
  • v1.32.0(Oct 26, 2022)

    What's Changed

    • 0cc65527633eb75e265379dc19bf84c441d83f55 irecv: improve exception handling (@doronz88)
    • a0bac5bf7faae1e1253120f5b6fb027310cb046c cli: add restore restart (@doronz88)
    • b18a49b4795e8a3defe388d3933175d7caaf2497 irecv: Make IRecv into a context manager (@doronz88)
    • ff65f2f7cdad205f4d564c226f603570c116d36f lockdown: add chip_id, board_id and hardware_model properties (@doronz88)
    • a2428a7b7db5aae0f74b0febcbe059a10e40dcd4 ipsw: add support for RemoteZip (@doronz88)
    • 17f63ab3a88e24742b793c49dd201f6a5b22e8f6 fdr: fix pep8 (@doronz88)
    • 13c52dca06c91e98b9f474ae20ccea3a19a620c6 img4: fix pep8 (@doronz88)

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.31.0...v1.32.0

    Source code(tar.gz)
    Source code(zip)
  • v1.31.0(Oct 24, 2022)

    What's Changed

    • usbmux: fix pair record lookup on newer devices by @doronz88 in https://github.com/doronz88/pymobiledevice3/pull/349
    • lockdown: get default system_buid and host-id from usbmuxd when possible by @doronz88 in https://github.com/doronz88/pymobiledevice3/pull/350
    • usbmux: use msgtype to get correct protocol (#346) by @doronz88 in https://github.com/doronz88/pymobiledevice3/pull/348

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.30.2...v1.31.0

    Source code(tar.gz)
    Source code(zip)
  • v1.30.2(Oct 19, 2022)

    What's Changed

    • 9d7313e48e02bd9aefccecc37c3dd54741cc1eff irecv_devices: fix iphone 14 board ids (@doronz88)
    • b9c93daccccc1b6a905444533318e41440c0b15b img4: fix ucon and ucer support (@doronz88)
    • fc39d678bfe696b7056ee13928a56bad8cd3437c tss: fix cryptex1 request for iphone 14 (@doronz88)
    • 1d76bb42985afbb2c875d38aea569e85c8b3dd5e img4: fix tbm data packing (@doronz88)
    • 9de34ba3c43a31a3e3d7272203b1199e3f50432f fdr: use select() to better handle data proxying (@doronz88)

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.30.1...v1.30.2

    Source code(tar.gz)
    Source code(zip)
  • v1.30.1(Oct 18, 2022)

    What's Changed

    • recovery: wait between iterations of reconnecting irecv by @doronz88 in https://github.com/doronz88/pymobiledevice3/pull/342
    • workflow: replace lgtm with github's codeql by @doronz88 in https://github.com/doronz88/pymobiledevice3/pull/343

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.30.0...v1.30.1

    Source code(tar.gz)
    Source code(zip)
  • v1.30.0(Oct 16, 2022)

    What's Changed

    • e7794453467fd56b1fc4c32282a37c051156dcd7 usbmux: raise UsbmuxConnectionError when failed to connect (#337) (@doronz88)
    • b94c9bd6d2602e43c9d4ca498b6f2234f939227f tss: Add preliminary code to set UID_MODE (@doronz88)
    • b1160f86489943fc8c78a7b2aea0c5c4cb325f61 img4: Add support for stitching with additional TBM data (@doronz88)
    • 1b19b344f6bc471775e11a229c8b856b4d350c3e recovery: set bRequest to 1 for certain messages (@doronz88)
    • 48bdeffa060e278a5f797396a772f3bfb20f4c51 cli: fix pep8 (@doronz88)
    • e79fee5d9d0fc9cfa8d2f4f4bdb65029be0e378e fdr: avoid proxying null responses (@doronz88)
    • 966988b14224fb195146f2dc16c2cebd3ab715df tss: add @BBTicket for @ApImg4Ticket (@doronz88)
    • 0f9bcccb105440ac43cb7052381ca6a18de7079f recovery: make enter_restore() wait for iBEC so variables are readable (@doronz88)

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.29.3...v1.30.0

    Source code(tar.gz)
    Source code(zip)
  • v1.29.3(Sep 25, 2022)

    What's Changed

    • 740960189310de2d8c03ba266557cd0e1207a170 cli: fix xcode path parsing when running on non-macOS (@doronz88)
    • bcdd1999b087f5a34eac74329e834edb3448c862 restore: support ios16.1 update (@doronz88)
    • c2d8dbe9d6b2f7e722755f830ce06c6a023718de img4: Add some more component tags (@doronz88)
    • a5c0ae78d37ed809ecf2cf250bdaaa74442f2f01 tss: dont add @BBTicket in all requests (@doronz88)
    • 2420dd32b325b5e8739f47053ca43c09b6206baf tss: add more vinyl tags (@doronz88)
    • 2cf3b84bb7c6edf6688566987c316f815d5b7894 irecv_devices: Add M2 MacBook models (@doronz88)
    • fa406a047b8f2b4b1de7073a7c6b0fa677ecb535 irecv_devices: Add iPhone 14 family (@doronz88)

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.29.2...v1.29.3

    Source code(tar.gz)
    Source code(zip)
  • v1.29.2(Sep 20, 2022)

    What's Changed

    • 2514bee170cf217ca5a66a23f9b7e71f75136abd docs: update README (@doronz88)
    • 316ddcbcb1bbb681751618ac9d0dcd955cd82e82 fix overall pep8 errors (@doronz88)
    • 852de6f45a77bd3ec2ba0c99c09dbb6299c6d162 service_connection: fix type returned by recv_plist() (@doronz88)
    • a4c5ee95687674f091efb16b9a93f084e624878f mobile_config: implement most of mc_install relay (@doronz88)
    • 3d0b21613992a40a70a160098410de4d1f70dc54 docs: update README with all relays known to us up to 16.0 (@doronz88)

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.29.1...v1.29.2

    Source code(tar.gz)
    Source code(zip)
  • v1.29.1(Sep 15, 2022)

    What's Changed

    • dcf7786946e23c7d98f613effa4f91bfcf7c5801 lockdown: reload udid after validate_pairing() (@doronz88)
    • 982aaa91df1a50f9dc086d67d042eac3c85b6554 mobilebackup2: use udid instead of identifier (@doronz88)
    • 6c9cfc3c5406eb1f5232208b290b0887112982a6 lockdown: make pair records volatile option (#294) (@doronz88)
    • f4efabc42d978b3f63317ff7c54ce69c3df82874 cli: add lockdown save-pair-record command (@doronz88)
    • dbf85543bf22f7811a5fe7d8cc513df41a24fb99 lockdown: add pairing keys required for wifi (@doronz88)

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.29.0...v1.29.1

    Source code(tar.gz)
    Source code(zip)
  • v1.29.0(Sep 14, 2022)

    What's Changed

    • 34d3334adca03166f95c9ac3731cb36fb1288e7f lockdown: support connecting via tcp directly (no usbmuxd required) (@doronz88)
    • 0597a45c87e0cba55d9c79ad32c84070a9c0f5fa cli: refactor usbmuxd commands (@doronz88)
    • 850c297e974293ec752e969a8b005b01d98785bc cli: remove unused imports (@doronz88)

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.28.0...v1.29.0

    Source code(tar.gz)
    Source code(zip)
  • v1.28.0(Sep 6, 2022)

    What's Changed

    • developer: make fetch-symbols into a category by @doronz88 in https://github.com/doronz88/pymobiledevice3/pull/327

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.27.7...v1.28.0

    Source code(tar.gz)
    Source code(zip)
  • v1.27.7(Sep 4, 2022)

    What's Changed

    • dddde6a2b786c28c3385c85324a20416948107f7 amfi: handle developer-mode enable errors (#301) (@doronz88)
    • 86a58d0ed005ae873d8da889a50d877ab3d625c3 doc: improve README (@doronz88)
    • bdca7aab8cd6936ed1129b389c6c0e8a4eb4d655 notification_proxy: fix timeout handling in receive_notification() (@doronz88)

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.27.6...v1.27.7

    Source code(tar.gz)
    Source code(zip)
  • v1.27.6(Aug 21, 2022)

    What's Changed

    • 2407f494a874c76b6fe084470cb3ead430f86035 irecv: add default timeout to all ctrl_transfer() (@doronz88)
    • 31a90dafa1480f302275e071afa28652ac75ce0c irecv: fix stage1 log lines (@doronz88)
    • 2504f2d4df52627c4b34cba3b161b5c6c37ecb50 tss: skip IsFTAB entries in add_ap_tags() (@doronz88)
    • 5fc48cd34646dfae03f938ef87fed795086a5eac requirements: remove pyasn1 (@doronz88)

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.27.5...v1.27.6

    Source code(tar.gz)
    Source code(zip)
  • v1.27.5(Aug 11, 2022)

    What's Changed

    • tcp_forwarder: fix ssl connections by @doronz88 in https://github.com/doronz88/pymobiledevice3/pull/316

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.27.4...v1.27.5

    Source code(tar.gz)
    Source code(zip)
  • v1.27.4(Aug 8, 2022)

    What's Changed

    • lockdown: fix _ssl_file() on windows by @doronz88 in https://github.com/doronz88/pymobiledevice3/pull/314

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.27.3...v1.27.4

    Source code(tar.gz)
    Source code(zip)
  • v1.27.3(Aug 4, 2022)

    What's Changed

    • lockdown: Fix asyncio service connection start. by @matan1008 in https://github.com/doronz88/pymobiledevice3/pull/311

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.27.2...v1.27.3

    Source code(tar.gz)
    Source code(zip)
  • v1.27.2(Aug 4, 2022)

    What's Changed

    • requirements: Update pykdebugparser version. by @matan1008 in https://github.com/doronz88/pymobiledevice3/pull/309
    • notification_proxy: add optional timeout by @doronz88 in https://github.com/doronz88/pymobiledevice3/pull/310

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.27.1...v1.27.2

    Source code(tar.gz)
    Source code(zip)
  • v1.27.1(Jul 28, 2022)

    What's Changed

    • cli: force flush of syslog prints by @doronz88 in https://github.com/doronz88/pymobiledevice3/pull/308

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.27.0...v1.27.1

    Source code(tar.gz)
    Source code(zip)
  • v1.27.0(Jul 27, 2022)

    What's Changed

    • 4010265e617f386d4511a2c1dc90d6746f94d5ea remove python3.6 support (@doronz88)
    • 34a76f98c6195906a6d667d90033b116d6d7bec4 Developer: Support more stackshot kcdata types. (@matan1008)
    • 5f7772e51046c928e2cab042a9e11bfabd038b07 ServiceConnection: Ignore SSL error in aio_close. (@matan1008)
    • c6eb345fc84334fd7d7e427253f413ce610937f7 Webinspector: Fix python3.10 support. (@matan1008)
    • 2fdeb6a1e67e3dd13cb7f50aca88a7d6e711275e Developer: Fix applist ios16 test support. (@matan1008)
    • 0da95e975f6670ce472ece27093f20ef478bfe37 lockdown: add pairing_records_cache_folder option (#294) (@doronz88)
    • 4d36c196bc151c285b3b1feea8452d94b9a2af15 lockdown: use a temp file for ssl connections (@doronz88)
    • 894dd610e855e0b16bb95e398bbe995b95db19df lockdown: fix ssl_start() usage of temporary files (@doronz88)
    • fed9be15166b3dbcfd9c570b8812a2a7565750a4 requirements: update certain packages minumum version (@doronz88)

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.26.1...v1.27.0

    Source code(tar.gz)
    Source code(zip)
  • v1.26.1(Jul 21, 2022)

    What's Changed

    • Developer: Add vfs and traces events to BSC class. by @matan1008 in https://github.com/doronz88/pymobiledevice3/pull/300
    • Bugfix/developer mode passcode set by @doronz88 in https://github.com/doronz88/pymobiledevice3/pull/304

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.26.0...v1.26.1

    Source code(tar.gz)
    Source code(zip)
  • v1.26.0(Jul 20, 2022)

    What's Changed

    • Developer: Add class, subclass and process filters. by @matan1008 in https://github.com/doronz88/pymobiledevice3/pull/298
    • lockdown: add reset_pairing() by @doronz88 in https://github.com/doronz88/pymobiledevice3/pull/299

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.25.1...v1.26.0

    Source code(tar.gz)
    Source code(zip)
  • v1.25.1(Jul 18, 2022)

    What's Changed

    • lockdown: fix wifi-connections when passcode set by @doronz88 in https://github.com/doronz88/pymobiledevice3/pull/296

    Full Changelog: https://github.com/doronz88/pymobiledevice3/compare/v1.25.0...v1.25.1

    Source code(tar.gz)
    Source code(zip)
Owner
Cyber security researcher. Currently focused mainly on iOS. cyber cyber bitim bitim...
Official Python client for the MonkeyLearn API. Build and consume machine learning models for language processing from your Python apps.

MonkeyLearn API for Python Official Python client for the MonkeyLearn API. Build and run machine learning models for language processing from your Pyt

MonkeyLearn 157 Nov 22, 2022
Actively maintained, pure Python wrapper for the Twitter API. Supports both normal and streaming Twitter APIs.

Twython Twython is a Python library providing an easy way to access Twitter data. Supports Python 3. It's been battle tested by companies, educational

Ryan McGrath 1.9k Jan 02, 2023
User-Bot for reporting russian propaganda channels

Юзер-Бот, що автоматизує репортування Телеграм каналів пропагандистів Цей Телеграм Юзер-Бот використовується для автоматизації репорту пропагандистьск

58 Nov 07, 2022
A secure and customizable bot for controlling cross-server announcements and interactions within Discord

DiscordBot A secure and customizable bot for controlling cross-server announcements and interactions within Discord. Within the code of the bot, you c

Jacob Dorfmeister 1 Jan 22, 2022
Um simples bot público para todos usarem no discord!

Discord Bot - Código Público Características: Linguagem de Programação: Python Quantidade de comandos: 17 Comandos: Prefixo do bot: O prefixo desse bo

Kevin 3 Dec 31, 2021
thumbor is an open-source photo thumbnail service by globo.com

Survey If you use thumbor, please take 1 minute and answer this survey? It's only 2 questions and one is multiple choice!!! thumbor is a smart imaging

Thumbor (by @globocom) 9.3k Dec 31, 2022
Updater for PGCG (Paradox Game Converters Group) converters written in Python.

Updater Updater for PGCG (Paradox Game Converters Group) converters written in Python. Needs to be put inside an "Updater" directory in the root conve

Paradox Game Converters 2 Jan 10, 2022
A python discord client interaction emulator for the DC29 badge code channel

dc29-discord-signalbot A python discord client interaction emulator for the DC29 badge code channel Prep Open Developer mode Open the developer mode f

8 Aug 23, 2021
Invites link generator for telegram(made for channel referral links)

InviteLinkGen Invites link generator for telegram(for channel referral links) made for @HelakuruEsana channel Spotify Giveaway

Jaindu Charindith 7 Feb 01, 2022
procedurally-generated catppuccin wallpapers

Catppuccin Wallpapers I was in need of wallpapers conforming to the catppuccin colorscheme. So, I wrote a simple script to iteratively generate a set

daylin 11 Nov 29, 2022
The fastest nuker on discord, Proxy support and more

About okuru nuker is a nuker for discord written in python, It uses methods such as threading and requests to ban faster and perform at higher speeds.

63 Dec 31, 2022
Python library wrapping and enhancing the Invenio RDM REST API.

Iridium The metal Iridium is used to refine and enhance metal alloys. Similarly, this package provides an enhanced coating around the Invenio RDM APIs

Materials Data Science and Informatics 2 Mar 29, 2022
Moderation and Utility Discord bot.

Qrista An advanced Moderation and Utility Discord bot. Features Uses Hikari and Lightbulb as a command handler Advance Logging & Whole new enviroment

Blaze Camp 2 Jan 11, 2022
A Discord Bot - has a few commands. Built using python - Discord.py - RIP.

Discord_Bot A Discord Bot has been built here. It is capable of running a few commands. The below present screenshot should suffice in terms of explai

Manab Kumar Biswas 1 May 22, 2022
A Telegram Calculator to calculate your maths sums

CalculatorBot A Telegram Calculator to calculate your maths sums! Made by /Team

TeamOctave 2 Dec 31, 2021
Ig-Crackv2 - Crack Instagram Version 2.9

★★ Information ★★ ★★Menu Special Crack Melalui Pengikut Crack Melalui Mengikuti

Risky [ Zero Tow ] 11 Aug 30, 2022
veez music bot is a telegram music bot project, allow you to play music on voice chat group telegram.

🎶 VEEZ MUSIC BOT Veez Music is a telegram bot project that's allow you to play music on telegram voice chat group. Requirements 📝 FFmpeg NodeJS node

levina 143 Jun 19, 2022
A simple MTProto-based bot that can download various types of media (>10MB) on a local storage

TG Media Downloader Bot 🤖 A telegram bot based on Pyrogram that downloads on a local storage the following media files: animation, audio, document, p

Alessio Tudisco 11 Nov 01, 2022
Properly-formatted dynamic timestamps for Discord messages

discord-timestamps discord-timestamps generates properly-formatted dynamic timestamps for Discord messages, with support for Arrow objects. format

Ben Soyka 2 Mar 10, 2022
A simple and easy to use musicbot in python and it uses lavalink.

Lavalink-MusicBot A simple and easy to use musicbot in python and it uses lavalink. ✨ Features plays music in your discord server well thats it i gues

Afnan 1 Nov 29, 2021