{"id":19311280,"url":"https://github.com/derekselander/mobdevim","last_synced_at":"2025-10-03T16:43:11.591Z","repository":{"id":41258175,"uuid":"112987531","full_name":"DerekSelander/mobdevim","owner":"DerekSelander","description":"Command line utility that interacts with plugged in iOS devices. Uses Apple's MobileDevice framework ","archived":false,"fork":false,"pushed_at":"2024-02-01T23:30:02.000Z","size":524,"stargazers_count":121,"open_issues_count":4,"forks_count":29,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-04-02T00:35:54.439Z","etag":null,"topics":["apple","command-line","ios","mobiledevice","reverse-engineering"],"latest_commit_sha":null,"homepage":null,"language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DerekSelander.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-04T02:58:28.000Z","updated_at":"2025-03-18T07:12:42.000Z","dependencies_parsed_at":"2023-11-08T03:46:28.230Z","dependency_job_id":"f9cafe9e-74ad-47f9-bec0-cd4ff4d0750c","html_url":"https://github.com/DerekSelander/mobdevim","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DerekSelander%2Fmobdevim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DerekSelander%2Fmobdevim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DerekSelander%2Fmobdevim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DerekSelander%2Fmobdevim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DerekSelander","download_url":"https://codeload.github.com/DerekSelander/mobdevim/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250258763,"owners_count":21400965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apple","command-line","ios","mobiledevice","reverse-engineering"],"created_at":"2024-11-10T00:28:32.207Z","updated_at":"2025-10-03T16:43:06.540Z","avatar_url":"https://github.com/DerekSelander.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mobdevim\n**Mobile Device Improved**: Command line utility that interacts with plugged in iOS devices. Uses Apple's MobileDevice framework \n\n---\n\nYet another MobileDevice utility\n\n---\n\n## Installation \n\n1. clone\n2. build project\n3. Upon build success,` mobdevim` will be placed in **/usr/local/bin**\n\nMake sure you have permissions to write to `/usr/local/bin` or else the Xcode build script will fail\n\n---\n\nAlternatively, a precompiled version is available \u003ca href=\"https://github.com/DerekSelander/mobdevim/raw/master/compiled\" target=\"_blank\"\u003ehere\u003c/a\u003e.\n\n## Commands\n\n```\t\nName\n  mobdevim -- (mobiledevice-improved) Interact with an iOS device (compiled Nov  7 2023, 15:50:43)\n\n  The mobdevim utlity interacts with your plugged in iOS device over USB using Apple's\n  private framework, MobileDevice.\n\n  The options are as follows:\n\t-F\t# List all available connections, or connect to a specific device\n\n\t\tmobdevim -F       # List all known devices\n\t\tmobdevim -F 00234 # Connect to first device that has a UDID containing 00234\n\t\tmobdevim -F\\?     # Check for devices\n\n\t\tmobdevim -U       # Prefer connection over USB\n\n\t\tmobdevim -W       # Prefer connection over WIFI\n\n\t-f\t# Get device info to a connected device (defaults to first USB connection)\n\n\t-g\t# Get device logs/issues (TODO Broken in 16.5)\n\n\t\tmobdevim -g com.example.name # Get issues for com.example.name app\n\t\tmobdevim -g 3                # Get the 3rd most recent issue\n\t\tmobdevim -g __all            # Get all the logs\n\n\t-l\t# List app information\n\n\t\tmobdevim -l                     # List all apps\n\t\tmobdevim -l com.example.test    # Get detailed info about app, com.example.test\n\t\tmobdevim -l com.example.test Entitlements # List \"Entitlements\" key from com.example.test\n\n\t-r\t# Remove file\n\n\t\tmobdevim -r /fullpath/to/file # removes file (sandbox permitting)\n\n\t-y\t# Yoink sandbox content\n\n\t\tmobdevim -y com.example.test   # Yoink contacts from app\n\n\t-s\t# Send content to device (use content from yoink command)\n\n\t\tmobdevim -s com.example.test /tmp/com.example.test # Send contents in /tmp/com.example.test to app\n\n\t-i\t# Install application (expects path to bundle)\n\n\t-I\t# Install/mount a DDI (via Xcode subdir or repos like https://github.com/mspvirajpatel/Xcode_Developer_Disk_Images\n\n\t\tmobdevim -I /path/to/ddi.signature /path/to/ddi.dmg # Install DDI\n\n\t-M\t# unMount a DDI (via Xcode subdir or repos like https://github.com/mspvirajpatel/Xcode_Developer_Disk_Images\n\n\t\tmobdevim -M # Unmount an alreaady mounted dev DDI\n\n\t-u\t# Uninstall application, expects bundleIdentifier\n\n\t\tmobdevim -u com.example.test # Uninstall app\n\n\t-w\t# Connect device to WiFi mode\n\n\t\tmobdevim -w              # Connect device to wifi for this computer\n\t\tmobdevim -w uuid_here    # Connect device to wifi for UUID\n\t\tmobdevim -w off          # Disable device wifi\n\t\tmobdevim -w uuid         # Display the computer's host uuid\n\n\t-S\t# Arrange SpringBoard icons\n\n\t\tmobdevim -S                # Get current SpringBoard icon layout\n\t\tmobdevim -S /path/to/plist # Set SpringBoard icon layout from plist file\n\t\tmobdevim -S asshole        # Set SpringBoard icon layout to asshole mode\n\t\tmobdevim -S restore        # Restore SpringBoard icon layout (if backup was created)\n\n\t-L\t# Simulate location (requires DDI)\n\n\t\tmobdevim -L 0 0                # Remove location simulation\n\t\tmobdevim -L 40.7128 -73.935242 # Simulate phone in New York\n\n\t-c\t# Dump out the console information. Use ctrl-c to terminate\n\n\t-C\t# Get developer certificates on device\n\n\t-p\t# Display running processes on the device (requiers DDI)\n\n\t-k\t# Kill a process (requiers DDI)\n\n\t\tTODO\t-b\t# Backup device\n\n\t-P\t# Display developer provisioning profile info\n\n\t\tmobdevim -P # List all installed provisioning profiles\n\t\tmobdevim -P b68410a1-d825-4b7c-8e5d-0f76a9bde6b9 # Get detailed provisioning UUID info\n\n\t-o\t# Open application (requires DDI)\n\n\t\tmobdevim -o com.reverse.domain # open app\n\t\tmobdevim -o com.reverse.domain -A \"Some args here\" -V AnEnv=EnValue -V A=Bmobdevim # open app with launch args and env vars\n\n\t-R\t# Use color\n\n\t-Q\t# Quiet mode, ideal for limiting output or checking if a value exists based upon return status\n\nEnvironment variables:           \tDSCOLOR - Use color (same as -R)\n\n           \tDSDEBUG - verbose debugging\n\n           \tDSPLIST - Display output in plist form (mobdevim -l com.test.example)\n\n           \tOS_ACTIVITY_DT_MODE - Combine w/ DSDEBUG to enable MobileDevice logging\n\n```\n \n![mobdevim example](https://github.com/DerekSelander/mobdevim/raw/main/media/color_wow.png)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderekselander%2Fmobdevim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fderekselander%2Fmobdevim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderekselander%2Fmobdevim/lists"}