GithubHelp home page GithubHelp logo

gitblazer / mobile-toolkit Goto Github PK

View Code? Open in Web Editor NEW

This project forked from igpenguin/mobile-toolkit

0.0 1.0 0.0 3.09 MB

Shell scripts for Android and iOS device management

License: MIT License

Shell 100.00%

mobile-toolkit's Introduction

Header

What is this?

πŸ›  Capture screen, manage apps and data, simulate input, print log and gather plenty of various intel in seconds!

⚑️ Boost your effectivity while developing and testing mobile applications and 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

Feedback &Β contribution

⁉️ Submit issue to report bugs, bring inspiration or simply ask questions

🀝 Pull request contribution is highly appreciated, see Issue Status Board

⭐️ Love Mobile Toolkit? -> Hit the star button and bring me joy!

πŸ”— Connect with me on LinkedIn if you want :)

πŸ’» Installation

Click to reveal step by step guide

Note: This repository is mainly focused on macOS compatibility, but majority of 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 or Android command line tools
    • Add the absolute path to the platform-tools folder to PATH variable in .bash_profile (or .zshrc if you have zsh shell) PATH=$PATH:/Users/dummyuser/Library/Android/sdk/platform-tools export PATH
    • Allow USB debugging on your device, connect it and authorize your computer (click OK on device screen)
  4. Setup iOS tools
    • Install latest Xcode and iOS command line tools using App Store
    • Install Homebrew package manager
    • Install usbmuxd, libimobiledevice and ideviceinstaller brew install --HEAD usbmuxd && brew install --HEAD libimobiledevice && brew install --HEAD ideviceinstaller
    • Mount developer image on your device -> connect iOS device to USB, authorize your computer (click "Trust" on device screen) and run Xcode
  5. (Optional) Use following commands in any directory in your terminal
    • Edit your .bash_profile file in your home directory nano ~/.bash_profile
    • Add the path to the script folders to PATH variable in .bash_profile (or equivalent file) -> insert the following lines at the end of the file, make sure to replace "dummyuser" with your profile name and use proper path PATH=$PATH:/Users/dummyuser/mobile-toolkit/android
      PATH=$PATH:/Users/dummyuser/mobile-toolkit/ios

πŸ€– Android scripts

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 "[email protected]" password1 "5005 1002 3332 1112" "2/19" 5004

  • apaste <text> Insert text into currently focused field
  • apaste "[email protected]" 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 Paste Lorem Ipsum paragraph

🌐 aurl

  • aurl "google.com" Open link in web browser or corresponding application

πŸ“ abounds

  • abounds Display or hide 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

  • scrpy start scrcpy session
  • provides realtime device screen mirroring and 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 -a 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 (/mnt/sdcard directory) and delete all third-party apps

🐁 apermissionreset

  • Revoke ALL runtime permissions for ALL (even system) apps

πŸ› 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 <relative-path>

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

  • Android emulator supports all listed scripts by default + extra actions listed below
  • aeimulator <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

🍎 iOS scripts

Capture screen

πŸ“Έ iscreenshot

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

πŸŽ₯ irecord

  • Run QuickTime and open video source picker (so you can choose a device right away)
    • You may have to allow some system permission, so the script can access the picker

πŸ–Ό igif

Required: Install ffmpeg brew install ffmpeg

  1. Record screen (take as many screenshots per second as possible) to ~/Desktop
  2. End recording using ctrl + c
  3. Compose .mp4 from screenshots and save it to ~/Desktop
  4. (Optional) Delete screenshots
  • Specify your own filename by passing it as argument

Manage applications

🚚 iinstall

  • iinstall some-app-file.ipa Install .ipa (make sure to use properly signed build)
  • iinstall -a some-app-file.ipa Install .ipa to all connected devices

πŸ—‘ iuninstall

  • iuninstall Uninstall third-party app, choose from the list
  • iuninstall com.dummy.package.name.app pass bundle name as argument
  • iuninstall -a Uninstall all third-party packages
    • Skips some essential apps, edit IGNORED_PACKAGES in this script to customize the list to your needs

Manage device

πŸ“œ ilog

  • ilog Open console log output
  • Examine macOS or iOS system logs

πŸ’₯ icrashlogs

  • Gather crash logs from the device to ~/Desktop (be patient πŸ˜…)
  • Choose whether to keep the logs on the device afterwards
  • You can import these logs to Xcode to make them more readable via symbolication
    • Open relevant project in Xcode
    • Click on Window > Devices and Simulators > View Device Logs
    • Drag the .crash file onto the log list
    • Readable crash log should appear in the list

πŸ“‹ icheckdevice

  • Print device information
  • (Optional) Search for the device on GSMArena

β™» ireboot

  • Reboot the device

πŸ“± isimulator

  • Simulator has limited functionality (no camera, biometrics, Appstore...), but offers some extra options, unavailable on physical iOS devices
  • isimulator <option> Handle various simulator related activites
    • start - choose and launch installed simulator
    • screenshot - save screenshot to ~/Desktop
    • record - save screen recording to ~/Desktop (full resolution and frame rate, without QuickTime hassle)
    • paste <text> - insert text into pasteboard
    • import <file> - import image or video to simulator gallery app
    • log - print simulator log
    • url <url> - open link in web browser or corresponding application
    • wipe - wipe all simulator data
    • battery <0-100> - set battery level displayed in status bar (no functional impact)
    • time <hh:mm> - set time displayed in status bar (no functional impact)

πŸ’­ About

You can read about my motivation in this blog post, if you made it this far in readme and you like my work, please be so kind and star this repository or leave some claps on Medium. Every appreciation empowers my motivation.

mobile-toolkit's People

Contributors

igpenguin avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.