diff --git a/README.md b/README.md index 5c3a6fdb..aa175a7b 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,13 @@ ![Header](/media/header_v2.png?raw=true) -## What is this? -πŸ›  Capture screen, manage apps, simulate input, print system log and more using simple commands!
+
-⚑️ Boost your effectivity while developing and/or testing mobile applications, discover new tools!
+## 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 @@ -19,21 +23,73 @@ πŸ”„ **Automatic update** - get new features and fixes ASAP
-## Feedback &Β contribution - -⁉️ [Submit issue](https://github.com/IntergalacticPenguin/mobile-toolkit/issues/new/choose) to report bugs, bring inspiration or simply ask questions
- -🀝 [Pull request contribution](https://github.com/IntergalacticPenguin/mobile-toolkit/blob/master/.github/CONTRIBUTING.md "contribution rules") **is highly appreciated, see** [Collossal Challenges](https://github.com/IntergalacticPenguin/mobile-toolkit/projects/3)
- -⭐️ Love Mobile Toolkit? -> Hit the star button and bring me joy!
- -πŸ”— Connect with me on [LinkedIn](https://www.linkedin.com/in/intergalacticpenguin/) if you want :) +## Table of contents +πŸ”© Maybe you just want to skip to [Installation](#section-id-22)?
+
+[πŸ€– Android Commands](#section-id-52) +- [Capture screen](#section-id-54) + - [πŸ“Έ ascreenshot](#section-id-56) + - [πŸŽ₯ arecord](#section-id-60) +- [Control device](#section-id-66) + - [✏️ apaste](#section-id-68) + - [🌐 aurl](#section-id-78) + - [🏴 adarkmode](#section-id-82) + - [πŸ”Š atalkback](#section-id-85) + - [πŸ“ abounds](#section-id-88) + - [πŸš— aanimationspeed](#section-id-92) + - [πŸ”  afontscale](#section-id-96) + - [🎹 acontrol](#section-id-100) + - [πŸ“· acamera](#section-id-104) + - [⚑️ awireless](#section-id-107) +- [Manage packages](#section-id-111) + - [πŸš€ alaunch](#section-id-113) + - [πŸ•΅οΈ aappinfo](#section-id-118) + - [πŸ”ͺ akill](#section-id-128) + - [🧽 aerase](#section-id-132) + - [🚚 ainstall](#section-id-136) + - [πŸ—‘ auninstall](#section-id-140) + - [πŸ”₯ awipe](#section-id-146) + - [🐁 apermissionreset](#section-id-149) + - [πŸ› agoogleplay](#section-id-153) + - [🏭 abuildproject](#section-id-157) +- [Manage device](#section-id-161) + - [βš™οΈ aoptions](#section-id-163) + - [πŸ“œ alog](#section-id-176) + - [πŸ“‹ acheckdevice](#section-id-180) + - [😎 aservices](#section-id-192) + - [β™» areboot](#section-id-196) + - [πŸ“± aemulator](#section-id-199) + - [πŸ’ atestmonkey](#section-id-215) + + +[🍎 iOS Commands](#section-id-233)
+- [Capture screen](#section-id-235) + - [πŸ“Έ iscreenshot](#section-id-237) + - [πŸŽ₯ irecord](#section-id-241) + - [πŸ“Ή iquicktime](#section-id-250) +- [Manage applications](#section-id-255) + - [🚚 iinstall](#section-id-256) + - [πŸ—‘ iuninstall](#section-id-260) + - [πŸš€ ilaunch](#section-id-266) + - [πŸ”ͺ ikill](#section-id-271) +- [Manage device](#section-id-276) + - [βš™οΈ ioptions](#section-id-278) + - [πŸ’¬ ilang](#section-id-281) + - [πŸ“œ ilog](#section-id-285) + - [πŸ“‹ icheckdevice](#section-id-288) + - [β™» ireboot](#section-id-292) + - [πŸ“± isimulator](#section-id-295) + - [πŸ–₯ iconsole](#section-id-309) + +πŸ’­ Do you want to share [Feedback or Contribute](#section-id-312)? + +
# πŸ’» Installation
- Click to reveal step by step guide + Click here 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._ +_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` @@ -59,22 +115,34 @@ _Note: This repository is mainly focused on macOS compatibility, but majority of
-# πŸ€– Android commands +
+ +# πŸ€– 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 ` 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` @@ -85,46 +153,70 @@ _Note: This repository is mainly focused on macOS compatibility, but majority of * `apaste -a ` 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 ` set animation speed multiplier +
+ ### πŸ”  afontscale * `afontscale` set large font scale (1.3x bigger than default) or restore default * `afontscale ` set font scale multiplier +
+ ### 🎹 acontrol * `acontrol` start [scrcpy](https://github.com/Genymobile/scrcpy "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 @@ -135,41 +227,61 @@ _Note: This repository is mainly focused on macOS compatibility, but majority of * (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 ` 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 @@ -183,10 +295,14 @@ _Note: This repository is mainly focused on macOS compatibility, but majority of * `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 ` Filter log by package name +
+ ### πŸ“‹ acheckdevice * Print genereal device information * Perform basic safety-checks and toggle "testing firendly" settings @@ -199,13 +315,19 @@ _Note: This repository is mainly focused on macOS compatibility, but majority of * enUS locale * (Optional) Search for the device on [GSMArena](https://www.gsmarena.com/ "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` @@ -222,6 +344,8 @@ _Note: This repository is mainly focused on macOS compatibility, but majority of * `telnet ` - call command via telnet * example commands `event | redir | sensor | physics | finger | rotate | fold | unfold...` see [Android emulator documentation](https://developer.android.com/studio/run/emulator-console#console-session) for more information +
+ ### πŸ’ atestmonkey * `atestmonkey` Default test with random seed and 15000 input events * `atestmonkey ` Test with random seed and custom input event count @@ -234,22 +358,30 @@ _Note: This repository is mainly focused on macOS compatibility, but majority of *
Google Nexus 5 (Android 6)
You need to bring the app window to foreground, the button is located in bottom right corner.

-
+ *
Google Pixel 3 (Android 11)
You need to click on the app icon, the button is located in popup menu.

-
+ + +
+ +# 🍎 iOS Commands -# 🍎 iOS commands +
## Capture screen +
+ ### πŸ“Έ iscreenshot * `iscreenshot` Save screenshot to ~/Desktop * `iscreenshot -a` Take screenshot on all connected devices +
+ ### πŸŽ₯ irecord -**Required**: Install [videosnap](https://github.com/matthutchinson/videosnap/releases "videosnap") -> download and install `videosnap-0.0.8.pkg` +**Required**: Install [videosnap](https://github.com/matthutchinson/videosnap/releases "videosnap") -> download and install `videosnap-0.0.8.pkg`
**Required**: Install [ffmpeg](https://www.ffmpeg.org/ "ffmpeg") `brew install ffmpeg` 1. `irecord` Record screen @@ -257,51 +389,77 @@ _Note: This repository is mainly focused on macOS compatibility, but majority of 3. Video footage is saved to ~/Desktop 4. File is compressed using ffmpeg +
+ ### πŸ“Ή iquicktime * Run QuickTime and open video source picker (so you can choose a device right away) * You may have to allow security system permission, so the script can access QuickTime application * This is a fallback script for `irecord` on M1 macs as it is currently not working +
+ ## 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 -w` Uninstall all third-party packages * Skips some essential apps, edit IGNORED_PACKAGES in this script to customize the list to your needs +
+ ### πŸš€ ilaunch * `ilaunch` List third-party apps and choose one to run it * `ilaunch -s` List os pre-installed apps and choose one to run it * `ilaunch com.dummy.bundle.id.app` Run app by bundle id +
+ ### πŸ”ͺ ikill * `ikill` List third-party apps and choose one to restart * `ikill -s` List os pre-installed apps and choose one to restart * `ikill com.dummy.bundle.id.app` Target specific app by passing bundle id as argument +
+ ## Manage device +
+ ### βš™οΈ ioptions * `ioptions` Open system settings application +
+ ### πŸ’¬ ilang * `ilang ` 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 supported +
+ ### πŸ“œ ilog * `ilog` Print system log output +
+ ### πŸ“‹ icheckdevice * Print device information * (Optional) Search for the device on [GSMArena](https://www.gsmarena.com/ "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