Skip to main content

Swiss-army knife for Android testing and development

Project description

adb-enhanced Downloads PyPI version

Swiss-army knife for Android testing and development. A command-line interface to trigger various scenarios like screen rotation, battery saver mode, data saver mode, doze mode, permission grant/revocation.

Release announcement

See Release announcement

Installation

sudo pip3 install adb-enhanced

Note

  1. sudo pip install adb-enhanced for python2 based install works as well but I would recommend moving to python3 since I might deprecate python2 support at some point.
  2. If you don't have sudo access or you are installing without sudo then adbe might not be configured correctly in the path.

Examples

  • Launch an app

    adbe start com.example

  • Kill an app

    adbe force-stop com.example

  • Clear app data - equivalent of uninstall and reinstall

    adbe clear-data com.example

  • Turn doze mode on

    adbe doze on

  • Turn mobile-data off

    adbe mobile-data off

  • Turn on battery saver

    adbe battery saver on

  • Don't keep activities in the background

    adbe dont-keep-activities on

  • Grant storage-related runtime permissions

    adbe permissions grant com.example storage

  • Revoke storage-related runtime permissions

    adbe permissions revoke com.example storage

  • ls/cat any file without worrying about adding "run-as"

    adbe ls /data/data/com.example/databases # Works as long as com.example is a debuggable package

  • Detailed device info including model name, Android API version etc, device serial

     $ adbe devices
     Serial ID: dcc54111
     Manufacturer: OnePlus
     Model: ONEPLUS A5000 (OnePlus 5T)
     Release: 8.1.0
     SDK version: 27
     CPU: arm64-v8a
    
     Serial ID: emulator-5554
     Manufacturer: unknown
     Model: Android SDK built for x86
     Release: 4.4.2
     SDK version: 19
     CPU: x86
    

Usage

adbe.py [options] rotate (landscape | portrait | left | right)
adbe.py [options] gfx (on | off | lines)
adbe.py [options] overdraw (on | off | deut)
adbe.py [options] layout (on | off)
adbe.py [options] airplane (on | off)
adbe.py [options] battery level <percentage>
adbe.py [options] battery saver (on | off)
adbe.py [options] battery reset
adbe.py [options] doze (on | off)
adbe.py [options] jank <app_name>
adbe.py [options] devices
adbe.py [options] top-activity
adbe.py [options] dump-ui <xml_file>
adbe.py [options] mobile-data (on | off)
adbe.py [options] mobile-data saver (on | off)
adbe.py [options] rtl (on | off)
adbe.py [options] screenshot <filename.png>
adbe.py [options] screenrecord <filename.mp4>
adbe.py [options] dont-keep-activities (on | off)
adbe.py [options] animations (on | off)
adbe.py [options] input-text <text>
adbe.py [options] press back
adbe.py [options] open-url <url>
adbe.py [options] permission-groups list all
adbe.py [options] permissions list (all | dangerous)
adbe.py [options] permissions (grant | revoke) <app_name> (calendar | camera | contacts | location | microphone | phone | sensors | sms | storage)
adbe.py [options] standby-bucket get <app_name>
adbe.py [options] standby-bucket set <app_name> (active | working_set | frequent | rare)
adbe.py [options] restrict-background (true | false) <app_name>
adbe.py [options] ls [-l] [-R] <file_path>
adbe.py [options] pull [-a] <remote>
adbe.py [options] pull [-a] <remote> <local>
adbe.py [options] cat <file_path>
adbe.py [options] start <app_name>
adbe.py [options] stop <app_name>
adbe.py [options] force-stop <app_name>
adbe.py [options] clear-data <app_name>
adbe.py [options] app-info <app_name>
adbe.py [options] print-apk-path <app_name>

Options

-e, --emulator          directs the command to the only running emulator
-d, --device            directs the command to the only connected "USB" device
-s, --serial SERIAL     directs the command to the device or emulator with the given serial number or qualifier.
                        Overrides ANDROID_SERIAL environment variable.
-l                      For long list format, only valid for "ls" command
-R                      For recursive directory listing, only valid for "ls" command
-v, --verbose           Verbose mode

Python3 compatibility

As of Nov 27, 2017, the code is python3 compatible, and as of Jan 18, 2018, pip (python package manager) has the updated version.

Note: The inspiration of this project came from android-scripts.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

adb-enhanced-1.8.2.tar.gz (335.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

adb_enhanced-1.8.2-py3-none-any.whl (334.8 kB view details)

Uploaded Python 3

File details

Details for the file adb-enhanced-1.8.2.tar.gz.

File metadata

  • Download URL: adb-enhanced-1.8.2.tar.gz
  • Upload date:
  • Size: 335.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.7.0

File hashes

Hashes for adb-enhanced-1.8.2.tar.gz
Algorithm Hash digest
SHA256 c7b127a7d699790c4c34a6bc33b66e2f8db962b69740714b8c28c15a0dcf613a
MD5 716bcae83dd9827518b1f4b7b6c57609
BLAKE2b-256 c7133a362c932c9c4475394e5f61926a6cdc736132722901b7910900a8f19951

See more details on using hashes here.

File details

Details for the file adb_enhanced-1.8.2-py3-none-any.whl.

File metadata

  • Download URL: adb_enhanced-1.8.2-py3-none-any.whl
  • Upload date:
  • Size: 334.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.7.0

File hashes

Hashes for adb_enhanced-1.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f16a1aa5aeeeb8a1a2cbeccc84787038adfbe270f3be467cd2fb0e9bc05644d9
MD5 352361417efa4fa2a6229cc5b2a96ba2
BLAKE2b-256 8bfa8bc382b2989da60e06ceb90d0aee585df1674c5c228e8717ed6636a990ea

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page