Metadata-Version: 2.1
Name: adb-enhanced
Version: 2.5.10
Summary: Swiss-army knife for Android testing and development
Home-page: https://github.com/ashishb/adb-enhanced
Author: Ashish Bhatia
Author-email: ashishb@ashishb.net
License: Apache
Description: ADB Enhanced |Downloads| |PyPI version|
        =======================================
        
        |LintPython3| |InstallAdbeTest| |AdbeInstallTestsPython3|
        |AdbeUnitTestsPython3|
        
        |AdbeUnitTestsPython3-Api16| |AdbeUnitTestsPython3-Api21|
        |AdbeUnitTestsPython3-Api22| |AdbeUnitTestsPython3-Api23|
        |AdbeUnitTestsPython3-Api24| |AdbeUnitTestsPython3-Api25|
        |AdbeUnitTestsPython3-Api26| |AdbeUnitTestsPython3-Api27|
        |AdbeUnitTestsPython3-Api28| |AdbeUnitTestsPython3-Api29|
        
        .. figure:: docs/logo.png
           :alt: Logo
        
           Logo
        
        ADB-Enhanced is a 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. Its a wrapper around ``adb`` and not a replacement.
        
        Release announcement
        --------------------
        
        See `Release
        announcement <https://ashishb.net/tech/introducing-adb-enhanced-a-swiss-army-knife-for-android-development/>`__
        
        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 will deprecate
           python2 support anytime after Dec 31, 2018.
        2. If you don’t have sudo access or you are installing without sudo then
           ``adbe`` might not be configured correctly in the path.
        3. To setup bash/z-sh auto-completion, execute
           ``sudo pip3 install infi.docopt-completion && docopt-completion $(which adbe)``
           after installing adb-enhanced.
        
        Examples
        --------
        
        Device configuration
        ~~~~~~~~~~~~~~~~~~~~
        
        -  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``
        
        -  Take a screenshot ``adbe screenshot ~/Downloads/screenshot1.png``
        
        -  Take a video ``adbe screenrecord video.mp4 # Press ^C when finished``
        
        -  Turn Wireless Debug mode on ``adbe enable wireless debugging``
        
        Permissions
        ~~~~~~~~~~~
        
        -  Grant storage-related runtime permissions
        
           ``adbe permissions grant com.example storage``
        
        -  Revoke storage-related runtime permissions
        
           ``adbe permissions revoke com.example storage``
        
        Interacting with app
        ~~~~~~~~~~~~~~~~~~~~
        
        -  Start 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``
        
        -  ls/cat/rm any file without worrying about adding “run-as” or “su
           root”
        
           ``adbe ls /data/data/com.example/databases`` # Works as long as
           com.example is a debuggable package or shell has the root permission
           or directory has been made publicly accessible
        
        Device info
        ~~~~~~~~~~~
        
        -  Detailed device info including model name, Android API version etc,
           device serial
        
           ::
        
              $ adbe devices
              Unlock Device "dcc54112" and give USB debugging access to this PC/Laptop by unlocking and reconnecting the device. More info about this device: "unauthorized usb:339869696X transport_id:17"
        
              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
        
        App info
        ~~~~~~~~
        
        -  Detailed information about app version, target SDK version,
           permissions (requested, granted, denied), installer package name,
           etc.
        
           ::
        
              $ adbe app info com.google.android.youtube
              App name: com.google.android.youtube
              Version: 12.17.41
              Version Code: 121741370
              Is debuggable: False
              Min SDK version: 21
              Target SDK version: 26
        
              Permissions:
        
              Install time granted permissions:
              com.google.android.c2dm.permission.RECEIVE
              android.permission.USE_CREDENTIALS
              com.google.android.providers.gsf.permission.READ_GSERVICES
              com.google.android.youtube.permission.C2D_MESSAGE
              android.permission.MANAGE_ACCOUNTS
              android.permission.SYSTEM_ALERT_WINDOW
              android.permission.NFC
              android.permission.CHANGE_NETWORK_STATE
              android.permission.RECEIVE_BOOT_COMPLETED
              com.google.android.gms.permission.AD_ID_NOTIFICATION
              android.permission.INTERNET
              android.permission.GET_PACKAGE_SIZE
              android.permission.ACCESS_NETWORK_STATE
              android.permission.VIBRATE
              android.permission.ACCESS_WIFI_STATE
              android.permission.WAKE_LOCK
        
              Runtime Permissions not granted and not yet requested:
              android.permission.WRITE_EXTERNAL_STORAGE
              android.permission.MANAGE_DOCUMENTS
              android.permission.GET_ACCOUNTS
              android.permission.CAMERA
              android.permission.RECORD_AUDIO
              android.permission.READ_CONTACTS
              android.permission.ACCESS_FINE_LOCATION
              android.permission.ACCESS_COARSE_LOCATION
              android.permission.READ_PHONE_STATE
              android.permission.SEND_SMS
              android.permission.RECEIVE_SMS
              com.sec.android.provider.badge.permission.READ
              com.sec.android.provider.badge.permission.WRITE
              com.htc.launcher.permission.READ_SETTINGS
              com.htc.launcher.permission.UPDATE_SHORTCUT
              com.sonyericsson.home.permission.BROADCAST_BADGE
              com.sonymobile.home.permission.PROVIDER_INSERT_BADGE
              android.permission.READ_EXTERNAL_STORAGE
        
              Installer package name: None
        
        -  App backup to a tar file unlike the Android-specific .ab format
        
           ::
        
              $ adbe app backup com.google.android.youtube backup.tar
              you might have to confirm the backup manually on your device's screen, enter "00" as password...
              Successfully backed up data of app com.google.android.youtube to backup.tar
        
        Usage
        ~~~~~
        
        .. code:: bash
        
           adbe [options] rotate (landscape | portrait | left | right)
           adbe [options] gfx (on | off | lines)
           adbe [options] overdraw (on | off | deut)
           adbe [options] layout (on | off)
           adbe [options] airplane (on | off)
           adbe [options] battery level <percentage>
           adbe [options] battery saver (on | off)
           adbe [options] battery reset
           adbe [options] doze (on | off)
           adbe [options] jank <app_name>
           adbe [options] devices
           adbe [options] top-activity
           adbe [options] dump-ui <xml_file>
           adbe [options] mobile-data (on | off)
           adbe [options] mobile-data saver (on | off)
           adbe [options] wifi (on | off)
           adbe [options] rtl (on | off)
           adbe [options] screenshot <filename.png>
           adbe [options] screenrecord <filename.mp4>
           adbe [options] dont-keep-activities (on | off)
           adbe [options] animations (on | off)
           adbe [options] show-taps (on | off)
           adbe [options] stay-awake-while-charging (on | off)
           adbe [options] input-text <text>
           adbe [options] press back
           adbe [options] open-url <url>
           adbe [options] permission-groups list all
           adbe [options] permissions list (all | dangerous)
           adbe [options] permissions (grant | revoke) <app_name> (calendar | camera | contacts | location | microphone | phone | sensors | sms | storage)
           adbe [options] notifications list
           adbe [options] apps list (all | system | third-party | debug | backup-enabled)
           adbe [options] standby-bucket get <app_name>
           adbe [options] standby-bucket set <app_name> (active | working_set | frequent | rare)
           adbe [options] restrict-background (true | false) <app_name>
           adbe [options] ls [-a] [-l] [-R|-r] <file_path>
           adbe [options] rm [-f] [-R|-r] <file_path>
           adbe [options] mv [-f] <src_path> <dest_path>
           adbe [options] pull [-a] <file_path_on_android>
           adbe [options] pull [-a] <file_path_on_android> <file_path_on_machine>
           adbe [options] push <file_path_on_machine> <file_path_on_android>
           adbe [options] cat <file_path>
           adbe [options] start <app_name>
           adbe [options] stop <app_name>
           adbe [options] restart <app_name>
           adbe [options] force-stop <app_name>
           adbe [options] clear-data <app_name>
           adbe [options] app info <app_name>
           adbe [options] app path <app_name>
           adbe [options] app signature <app_name>
           adbe [options] app backup <app_name> [<backup_tar_file_path>]
           adbe [options] install <file_path>
           adbe [options] uninstall [--first-user] <app_name>
           adbe [options] enable wireless debugging
           adbe [options] disable wireless debugging
           adbe [options] screen (on | off | toggle)
           adbe [options] alarm (all | top | pending | history)
        
        Options
        ~~~~~~~
        
        .. code:: bash
        
           -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" and "rm" command
           -r                      For delete file, only valid for "ls" and "rm" command
           -f                      For forced deletion of a file, only valid for "rm" command
           -v, --verbose           Verbose mode
        
        Python3 migration timeline
        --------------------------
        
        -  Nov 27, 2017 - Code is Python3 compatible
        -  Jan 18, 2018 - pip (python package manager) has the updated version
           which is Python3 compatible
        -  Nov 15, 2018 - Python2 based installation discouraged. Python3 is
           recommended.
        -  Dec 31, 2018 - Python2 will not be officially supported after Dec 31,
           2018.
        -  May 7, 2020 - Python2 no longer works with the current master branch
        
        Testing
        -------
        
        ::
        
           make lint
           make test
        
        Release a new build
        -------------------
        
        A new build can be released using
        ```release/release.py`` <https://github.com/ashishb/adb-enhanced/blob/master/release/release.py>`__
        script. Build a test release via ``make release_debug``. Build a
        production release via ``make release_production``
        
        Updating docs for ReadTheDocs
        -----------------------------
        
        ``pandoc --from=markdown --to=rst --output=docs/README.rst README.md && cd docs && make html``
        You will have to do ``brew install pandoc`` if you are missing pandoc.
        
        Note: The inspiration of this project came from
        `android-scripts <https://github.com/dhelleberg/android-scripts>`__.
        
        .. |Downloads| image:: http://pepy.tech/badge/adb-enhanced
           :target: http://pepy.tech/project/adb-enhanced
        .. |PyPI version| image:: https://badge.fury.io/py/adb-enhanced.svg
           :target: https://badge.fury.io/py/adb-enhanced
        .. |LintPython3| image:: https://github.com/ashishb/adb-enhanced/workflows/LintPython3/badge.svg
        .. |InstallAdbeTest| image:: https://github.com/ashishb/adb-enhanced/workflows/InstallAdbeTest/badge.svg
        .. |AdbeInstallTestsPython3| image:: https://github.com/ashishb/adb-enhanced/workflows/AdbeInstallTestsPython3/badge.svg
        .. |AdbeUnitTestsPython3| image:: https://github.com/ashishb/adb-enhanced/workflows/AdbeUnitTestsPython3/badge.svg
        .. |AdbeUnitTestsPython3-Api16| image:: https://github.com/ashishb/adb-enhanced/workflows/AdbeUnitTestsPython3-Api16/badge.svg
        .. |AdbeUnitTestsPython3-Api21| image:: https://github.com/ashishb/adb-enhanced/workflows/AdbeUnitTestsPython3-Api21/badge.svg
        .. |AdbeUnitTestsPython3-Api22| image:: https://github.com/ashishb/adb-enhanced/workflows/AdbeUnitTestsPython3-Api22/badge.svg
        .. |AdbeUnitTestsPython3-Api23| image:: https://github.com/ashishb/adb-enhanced/workflows/AdbeUnitTestsPython3-Api23/badge.svg
        .. |AdbeUnitTestsPython3-Api24| image:: https://github.com/ashishb/adb-enhanced/workflows/AdbeUnitTestsPython3-Api24/badge.svg
        .. |AdbeUnitTestsPython3-Api25| image:: https://github.com/ashishb/adb-enhanced/workflows/AdbeUnitTestsPython3-Api25/badge.svg
        .. |AdbeUnitTestsPython3-Api26| image:: https://github.com/ashishb/adb-enhanced/workflows/AdbeUnitTestsPython3-Api26/badge.svg
        .. |AdbeUnitTestsPython3-Api27| image:: https://github.com/ashishb/adb-enhanced/workflows/AdbeUnitTestsPython3-Api27/badge.svg
        .. |AdbeUnitTestsPython3-Api28| image:: https://github.com/ashishb/adb-enhanced/workflows/AdbeUnitTestsPython3-Api28/badge.svg
        .. |AdbeUnitTestsPython3-Api29| image:: https://github.com/ashishb/adb-enhanced/workflows/AdbeUnitTestsPython3-Api29/badge.svg
        
Keywords: Android ADB developer
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Requires-Python: >=3.4
Description-Content-Type: text/x-rst
