📱 Terminal tool for Android & iOS device management
🛠 Control Android & iOS devices: Capture screen, manage apps, simulate input, examine system logs etc.
⚡️ Speed++ Are you an app developer or a tester? Boost your effectivity, discover new tools!
📲 Control Android and iOS devices or Emulators/Simulators using terminal commands
🛠 Take screeshots, change device settings, gather app & device information
⚙️ Manage mobile applications - install, restart, wipe data and much more
📋 Handle multiple devices effortlessly - select from list or target all connected devices
⏳ Save your precious time - stop doing repetitive tasks manually
🔄 Automatic update - get new features and fixes ASAP
🔩 Maybe you just want to skip to Installation?
💭 Do you want to share Feedback or Contribute?
Note: This tool targets macOS for compatibility, but most interactions should work on any Unix system.
git clone https://github.com/IntergalacticPenguin/mobile-toolkit.git
open -e ~/.zshrc
PATH=$PATH:/Users/dummyuser/Library/Android/sdk/platform-tools export PATH
iscreenshot
, installation of all required tools will be initiated automatically (jq and go-ios)open -e ~/.zshrc
PATH=$PATH:/Users/dummyuser/mobile-toolkit/android
PATH=$PATH:/Users/dummyuser/mobile-toolkit/ios
export PATH
to the end of the file
ascreenshot
Save screenshot to ~/Desktopascreenshot -a
Take screenshot on all connected devicesarecord
Record screenctrl + c
arecord <custom-name>
Specify your own filename by passing it as argumentarecord -l
Use legacy -l
option to record using ADB instead of Scrcpyapaste "[email protected]" password1 "5005 1002 3332 1112" "2/19" 5004
apaste <text>
Insert text into currently focused fieldapaste "[email protected]" password1
Every additional argument will be inserted into subsequent fieldapaste "This is sample multi-word text."
use "" to insert multi-word text into one fieldapaste -l
Insert "Lorem Ipsum paragraph"apaste -a <input-text>
Insert any text input (options displayed above) on all connected devicesapaste -a -l
Insert "Lorem Ipsum paragraph" on all connected devicesaurl "google.com"
Open link in web browser or corresponding applicationaurl -a "google.com"
Open link in web browser or corresponding application on all connected devicesadarkmode
Toggle system dark modeatalkback
Toggle TalkBack screen reader accessiblity optionabounds
Toggle UI layout boundsaanimationspeed
set slower animation speed or restore defaultaanimationspeed <speed>
set animation speed multiplierafontscale
set large font scale (1.3x bigger than default) or restore defaultafontscale <scale>
set font scale multiplieracontrol
start scrcpy sessionalaunch
List third-party apps and choose one to run italaunch -s
List all available apps (including os pre-installed) and choose one to run italaunch com.dummy.package.name.app
Run app by package nameaappinfo
List foreground app information
aappinfo com.dummy.package.name.app
Target specific app by passing package name as argumentakill
Restart the foreground appakill com.dummy.package.name.app
Target specific app by passing package name as argumentaerase
Delete all local data of the foreground app and restart itaerase com.dummy.package.name.app
Target specific app by passing package name as argumentainstall some-app-file.apk
Install and run .apkainstall -a some-app-file.apk
Install and run .apk on all connected devicesauninstall
Uninstall third-party app, choose from the listauninstall com.dummy.package.name.app
pass package name as argumentauninstall -w
Uninstall all-third party packages
agoogleplay "Dummy App"
Search for "Dummy App" on Google Playagoogleplay
Search for currently foreground app on Google Playabuildproject
Build, install and run Android project located in current directoryabuildproject <relative-path>
Build, install and run Android project located in <relative-path>aoptions
Open system settings on a specific activityaoptions A
Choose from exhaustive list of all available optionsaoptions 1,2,3... | dev | locale | date | wifi | storage | power
Use a preset, choose onealog
Print system log outputalog -f <package-name>
Filter log by package nameRequired: Make terminal use Android Studio Java
Edit .bash_profile (or .zshrc if you have zsh shell) open -e ~/.bash_profile
or open -e ~/.zshrc
Add the following line at the end of the file export JAVA_HOME='/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home'
Android emulator supports all listed scripts by default + extra actions listed below
aemulator <option>
Handle various Android emulator activites
start
- choose and launch installed emulatorgprs | edge | 3g
- simulate network latency, choose onecall <number>
- receive fake callsms <number> <text>
- receive fake smsgps <lat> <long>
- set manual GPS locationbattery <0-100>
- set battery leveltelnet <command>
- call command via telnet
event | redir | sensor | physics | finger | rotate | fold | unfold...
see Android emulator documentation for more informationatestmonkey
Default test with random seed and 15000 input eventsatestmonkey <event-count>
Test with random seed and custom input event countatestmonkey <event-count> <seed>
Test with custom seed and custom event countatestmonkeykill
in case something goes wrongiscreenshot
Save screenshot to ~/Desktopiscreenshot -a
Take screenshot on all connected devicesRequired: Install videosnap -> download and install videosnap-0.0.8.pkg
Required: Install ffmpeg brew install ffmpeg
irecord
Record screenctrl + c
irecord
on M1 macs as it is currently not workingiinstall some-app-file.ipa
Install .ipa (make sure to use properly signed build)iinstall -a some-app-file.ipa
Install .ipa to all connected devicesiuninstall
Uninstall third-party app, choose from the listiuninstall com.dummy.package.name.app
pass bundle name as argumentiuninstall -w
Uninstall all third-party packages
ilaunch
List third-party apps and choose one to run itilaunch -s
List os pre-installed apps and choose one to run itilaunch com.dummy.bundle.id.app
Run app by bundle idikill
List third-party apps and choose one to restartikill -s
List os pre-installed apps and choose one to restartikill com.dummy.bundle.id.app
Target specific app by passing bundle id as argumentioptions
Open system settings applicationilang <lang>
Change the device language to different one, according to ISO-639 (i.e. "cs")ilang
Change the device language to different one, choose from a list of all supportedilog
Print system log outputisimulator <option>
Handle various simulator related activites
start
- choose and launch installed simulatorscreenshot
- save screenshot to ~/Desktoprecord
- save screen recording to ~/Desktop (full resolution and frame rate, without QuickTime hassle)paste <text>
- insert text into pasteboardimport <file>
- import image or video to simulator gallery applog
- print simulator logurl <url>
- open link in web browser or corresponding applicationwipe
- wipe all simulator databattery <0-100>
- set battery level displayed in status bar (no functional impact)time <hh:mm>
- set time displayed in status bar (no functional impact)iconsole
Examine iOS or macOS system logs using Console applicationFeedback & Contribution
⁉️ Submit an issue to report any bugs, request a feature or ask questions.
🤝 Pull requests are highly appreciated, see the issue board.
💬 Also visit my NoMo project and leave a star.
🔗 Find me on LinkedIn or Twitter.