Skip to main content
  1. All Posts/

mobile-toolkit

Tools Shell

Why should I care?

πŸ›  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!

All features

πŸ“² 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

Table of contents

πŸ”© Maybe you just want to skip to Installation?

πŸ€– Android Commands

🍎 iOS Commands

πŸ’­ Do you want to share Feedback or Contribute?

πŸ’» Installation

Click here to reveal step by step guide ↓
Note: This tool targets macOS for compatibility, but most interactions should work on any Unix system.

  1. Open terminal
  2. Clone this repository git clone https://github.com/IntergalacticPenguin/mobile-toolkit.git
  3. Setup Android tools

    • Download and install Android Studio and Android command line tools (using Android Studio SDK manager)
    • Edit .zshrc (or .bash_profile if you have bash shell) open -e ~/.zshrc

      • Insert this line at the end PATH=$PATH:/Users/dummyuser/Library/Android/sdk/platform-tools export PATH
      • Don’t forget to replace “dummyuser” with your account username
      • Use full path to the “platform-tools” directory
    •   <li>
          <strong><a rel="nofollow noopener" target="_blank" href="https://developer.android.com/studio/debug/dev-options">Allow USB debugging</a> on your device, connect it and authorize your computer</strong> (click OK on the device screen)
        </li>
      </ul>
      
    • Setup iOS tools

      • Install latest Xcode and iOS command line tools using App Store
      • Install Homebrew package manager
      • Run Xcode, connect iOS device to USB and authorize your computer (click “Trust” on the device screen)
      • Run any script i.e. iscreenshot, installation of all required tools will be initiated automatically (jq and go-ios)
    • Add Mobile Toolkit to $PATH, it is mandatory for iOS scripts and it will let you run scripts in any directory

      • Edit .zshrc (or .bash_profile if you have bash shell) open -e ~/.zshrc

        • Insert the following lines at the end PATH=$PATH:/Users/dummyuser/mobile-toolkit/android
          PATH=$PATH:/Users/dummyuser/mobile-toolkit/ios
        • Don’t forget to replace “dummyuser” with your account username
        • Use full path to the “mobile-toolkit” directory (where you cloned this repository)
        • Add export PATH to the end of the file

πŸ€– Android Commands

Capture screen

πŸ“Έ ascreenshot

  • ascreenshot Save screenshot to ~/Desktop
  • ascreenshot -a Take screenshot on all connected devices

πŸŽ₯ arecord

  1. arecord Record screen
  2. End recording using ctrl + c
  3. Save screen video footage to ~/Desktop
  • arecord <custom-name> Specify your own filename by passing it as argument

Control device

✏️ apaste

apaste "john.doe@fakemail.com" password1 "5005 1002 3332 1112" "2/19" 5004

  • apaste <text> Insert text into currently focused field
  • apaste "john.doe@fakemail.com" password1 Every additional argument will be inserted into subsequent field
  • apaste "This is sample multi-word text." use “” to insert multi-word text into one field
  • apaste -l Insert “Lorem Ipsum paragraph”
  • apaste -a <input-text> Insert any text input (options displayed above) on all connected devices
  • apaste -a -l Insert “Lorem Ipsum paragraph” on all connected devices

🌐 aurl

  • aurl "google.com" Open link in web browser or corresponding application
  • aurl -a "google.com" Open link in web browser or corresponding application on all connected devices

🏴 adarkmode

  • adarkmode Toggle system dark mode

πŸ”Š atalkback

  • atalkback Toggle TalkBack screen reader accessiblity option

πŸ“ abounds

  • abounds Toggle UI layout bounds
  • App restart may be necessary on lower APIs

πŸš— aanimationspeed

  • aanimationspeed set slower animation speed or restore default
  • aanimationspeed <speed> set animation speed multiplier

πŸ”  afontscale

  • afontscale set large font scale (1.3x bigger than default) or restore default
  • afontscale <scale> set font scale multiplier

🎹 acontrol

  • acontrol start scrcpy session
  • Provides realtime device screen mirroring and keyboard+mouse control

πŸ“· acamera

  • Start the default camera application

⚑️ awireless

  • Enable or disable wireless ADB connection
  • Use ADB and toolkit without having USB cable attached

Manage packages

πŸš€ alaunch

  • alaunch List third-party apps and choose one to run it
  • alaunch -s List all available apps (including os pre-installed) and choose one to run it
  • alaunch com.dummy.package.name.app Run app by package name

πŸ•΅οΈ aappinfo

  • aappinfo List foreground app information

    • Package name
    • Version
    • Last update
    • minSdk and targetSdk
    • Permissions
  • (Optional) Open application settings
  • aappinfo com.dummy.package.name.app Target specific app by passing package name as argument

πŸ”ͺ akill

  • akill Restart the foreground app
  • akill com.dummy.package.name.app Target specific app by passing package name as argument

🧽 aerase

  • aerase Delete all local data of the foreground app and restart it
  • aerase com.dummy.package.name.app Target specific app by passing package name as argument

🚚 ainstall

  • ainstall some-app-file.apk Install and run .apk
  • ainstall -a some-app-file.apk Install and run .apk on all connected devices

πŸ—‘ auninstall

  • auninstall Uninstall third-party app, choose from the list
  • auninstall com.dummy.package.name.app pass package name as argument
  • auninstall -w Uninstall all-third party packages

    • Skips some essential apps, edit IGNORED_PACKAGES in this script to customize the list to your needs

πŸ”₯ awipe

  • Wipe internal storage and delete all third-party apps

🐁 apermissionreset

  • Revoke ALL GRANTED runtime permissions for ALL apps
    • You’ll have to handle permission requests upon opening almost any app

πŸ› agoogleplay

  • agoogleplay "Dummy App" Search for “Dummy App” on Google Play
  • agoogleplay Search for currently foreground app on Google Play

🏭 abuildproject

  • abuildproject Build, install and run Android project located in current directory
  • abuildproject <relative-path> Build, install and run Android project located in

Manage device

βš™οΈ aoptions

  • aoptions Open system settings on a specific activity
  • You can choose from quick presets
    • Developer settings
    • Locale settings
    • Date & time
    • Wifi settings
    • Storage management
    • Power usage
    • Root settings activity
  • aoptions A Choose from exhaustive list of all available options
  • aoptions 1,2,3... | dev | locale | date | wifi | storage | power Use a preset, choose one

πŸ“œ alog

  • alog Print system log output
  • alog -f <package-name> Filter log by package name

πŸ“‹ acheckdevice

  • Print genereal device information
  • Perform basic safety-checks and toggle “testing firendly” settings
    • 10 minutes screen timeout
    • Highest brightness
    • Automatic date
    • Disabled notification sounds
    • Internet connectivity and WIFI name
    • Font scale
    • enUS locale
  • (Optional) Search for the device on GSMArena

😎 aservices

  • Print running background services
  • Search for more information via Google

β™» areboot

  • Reboot the device

πŸ“± aemulator

Required: 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 emulator
    • gprs | edge | 3g – simulate network latency, choose one
    • call <number> – receive fake call
    • sms <number> <text> – receive fake sms
    • gps <lat> <long> – set manual GPS location
    • battery <0-100> – set battery level
    • telnet <command> – call command via telnet

πŸ’ atestmonkey

  • atestmonkey Default test with random seed and 15000 input events
  • atestmonkey <event-count> Test with random seed and custom input event count
  • atestmonkey <event-count> <seed> Test with custom seed and custom event count
  • Perform automated stress test using Application Excersciser Monkey
  • You can end test prematurely using ctrl^c or atestmonkeykill in case something goes wrong
  • App under test needs to be pinned to fullscreen mode to prevent unwanted interactions elsewhere
  • Screen pinning button location is directly tied to OS version and device manufacturer skin.
    • It may be tricky to turn on, see examples below:
    • Google Nexus 5 (Android 6)
      You need to bring the app window to foreground, the button is located in bottom right corner.

    •   <li>
          <p>
            Google Pixel 3 (Android 11)<br /> You need to click on the app icon, the button is located in popup menu.
          </p>
        </li>
      </ul>
      

    🍎 iOS Commands

    Capture screen

    πŸ“Έ iscreenshot

    • iscreenshot Save screenshot to ~/Desktop
    • iscreenshot -a Take screenshot on all connected devices

    πŸŽ₯ irecord

    Required: Install videosnap -> download and install…