adb-enhanced


Nameadb-enhanced JSON
Version 2.5.24 PyPI version JSON
download
home_pagehttps://github.com/ashishb/adb-enhanced
SummarySwiss-army knife for Android testing and development
upload_time2024-04-11 06:27:26
maintainerNone
docs_urlNone
authorAshish Bhatia
requires_python>=3.8
licenseApache
keywords android adb developer
VCS
bugtrack_url
requirements docopt psutil pytest types-docopt types-psutil
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ADB Enhanced |Downloads| |PyPI version|
=======================================

.. 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, and permission
grant/revocation. It’s a wrapper around ``adb`` and not a replacement.

|Lint Python| |Lint Markdown| |Lint YAML|

|InstallAdbeTest|

|AdbeInstallTests| |AdbeUnitTests|

|Install adb-enhanced via pip| |Install adb-enhanced via homebrew|

|AdbeUnitTests-Api16| |AdbeUnitTests-Api21| |AdbeUnitTests-Api22|
|AdbeUnitTests-Api23| |AdbeUnitTests-Api24| |AdbeUnitTests-Api25|
|AdbeUnitTests-Api26| |AdbeUnitTests-Api27| |AdbeUnitTests-Api28|
|AdbeUnitTests-Api29| |AdbeUnitTests-Api31| |AdbeUnitTests-Api30|
|AdbeUnitTests-Api31| |AdbeUnitTests-Api32| |AdbeUnitTests-Api33|
|AdbeUnitTests-Api34|

|asciicast|

Release announcement
--------------------

See `Release
announcement <https://ashishb.net/tech/introducing-adb-enhanced-a-swiss-army-knife-for-android-development/>`__

Installation
------------

Recommended
~~~~~~~~~~~

``sudo pip3 install adb-enhanced``

Alternative on Mac OS via Homebrew |Homebrew package|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

``brew install adb-enhanced``

Note
----

1. ``sudo pip install adb-enhanced`` works only for Python 3. Python 2
   is no longer supported.
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 set up 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

   .. code:: bash

      $ 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.

   .. code:: bash

      $ 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

   .. code:: bash

      $ 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] airplane (on | off)
   adbe [options] alarm (all | top | pending | history)
   adbe [options] animations (on | off)
   adbe [options] app backup <app_name> [<backup_tar_file_path>]
   adbe [options] app info <app_name>
   adbe [options] app path <app_name>
   adbe [options] app signature <app_name>
   adbe [options] apps list (all | system | third-party | debug | backup-enabled)
   adbe [options] battery level <percentage>
   adbe [options] battery reset
   adbe [options] battery saver (on | off)
   adbe [options] cat <file_path>
   adbe [options] clear-data <app_name>
   adbe [options] dark mode (on | off)
   adbe [options] devices
   adbe [options] (enable | disable) wireless debugging
   adbe [options] dont-keep-activities (on | off)
   adbe [options] doze (on | off)
   adbe [options] dump-ui <xml_file>
   adbe [options] force-stop <app_name>
   adbe [options] gfx (on | off | lines)
   adbe [options] input-text <text>
   adbe [options] install <file_path>
   adbe [options] jank <app_name>
   adbe [options] layout (on | off)
   adbe [options] location (on | off)
   adbe [options] ls [-a] [-l] [-R|-r] <file_path>
   adbe [options] mobile-data (on | off)
   adbe [options] mobile-data saver (on | off)
   adbe [options] mv [-f] <src_path> <dest_path>
   adbe [options] notifications list
   adbe [options] open-url <url>
   adbe [options] overdraw (on | off | deut)
   adbe [options] permission-groups list all
   adbe [options] permissions (grant | revoke) <app_name> (calendar | camera | contacts | location | microphone | notifications | phone | sensors | sms | storage)
   adbe [options] permissions list (all | dangerous)
   adbe [options] press back
   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] restart <app_name>
   adbe [options] restrict-background (true | false) <app_name>
   adbe [options] rm [-f] [-R|-r] <file_path>
   adbe [options] rotate (landscape | portrait | left | right)
   adbe [options] rtl (on | off)
   adbe [options] screen (on | off | toggle)
   adbe [options] screenrecord <filename.mp4>
   adbe [options] screenshot <filename.png>
   adbe [options] show-taps (on | off)
   adbe [options] standby-bucket get <app_name>
   adbe [options] standby-bucket set <app_name> (active | working_set | frequent | rare)
   adbe [options] start <app_name>
   adbe [options] stay-awake-while-charging (on | off)
   adbe [options] stop <app_name>
   adbe [options] top-activity
   adbe [options] uninstall [--first-user] <app_name>
   adbe [options] wifi (on | off)

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
-------

.. code:: bash

   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
-----------------------------

.. code:: bash

   make documentation

Note that this happens automatically during ``make release_production``.

You will have to do ``brew install pandoc`` if you are missing pandoc.

Note: The inspiration for this project came from
`android-scripts <https://github.com/dhelleberg/android-scripts>`__.

|Packaging status|

Contributors
------------

.. figure:: https://contrib.rocks/image?repo=ashishb/adb-enhanced
   :alt: GitHub contributors

   GitHub contributors

.. |Downloads| image:: https://static.pepy.tech/badge/adb-enhanced
   :target: https://pepy.tech/project/adb-enhanced
.. |PyPI version| image:: https://badge.fury.io/py/adb-enhanced.svg
   :target: https://badge.fury.io/py/adb-enhanced
.. |Lint Python| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/lint-python.yaml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/lint-python.yaml
.. |Lint Markdown| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/lint-markdown.yaml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/lint-markdown.yaml
.. |Lint YAML| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/lint-yaml.yaml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/lint-yaml.yaml
.. |InstallAdbeTest| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/install-adbe.yml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/install-adbe.yml
.. |AdbeInstallTests| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-installtests.yml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-installtests.yml
.. |AdbeUnitTests| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests.yml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests.yml
.. |Install adb-enhanced via pip| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/install-adb-enhanced-from-pip.yml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/install-adb-enhanced-from-pip.yml
.. |Install adb-enhanced via homebrew| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/install-adb-enhanced-from-homebrew.yml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/install-adb-enhanced-from-homebrew.yml
.. |AdbeUnitTests-Api16| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api16.yml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api16.yml
.. |AdbeUnitTests-Api21| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api21.yml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api21.yml
.. |AdbeUnitTests-Api22| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api22.yml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api22.yml
.. |AdbeUnitTests-Api23| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api23.yml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api23.yml
.. |AdbeUnitTests-Api24| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api24.yml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api24.yml
.. |AdbeUnitTests-Api25| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api25.yml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api25.yml
.. |AdbeUnitTests-Api26| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api26.yml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api26.yml
.. |AdbeUnitTests-Api27| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api27.yml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api27.yml
.. |AdbeUnitTests-Api28| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api28.yml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api28.yml
.. |AdbeUnitTests-Api29| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api29.yml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api29.yml
.. |AdbeUnitTests-Api31| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api31.yml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api31.yml
.. |AdbeUnitTests-Api30| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api30.yml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api30.yml
.. |AdbeUnitTests-Api32| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api32.yml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api32.yml
.. |AdbeUnitTests-Api33| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api33.yml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api33.yml
.. |AdbeUnitTests-Api34| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api34.yml/badge.svg
   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api34.yml
.. |asciicast| image:: https://asciinema.org/a/0IhbOF6QNIhBlgtO6VgzNmTbK.png
   :target: https://asciinema.org/a/0IhbOF6QNIhBlgtO6VgzNmTbK
.. |Homebrew package| image:: https://repology.org/badge/version-for-repo/homebrew/adb-enhanced.svg
   :target: https://formulae.brew.sh/formula/adb-enhanced
.. |Packaging status| image:: https://repology.org/badge/vertical-allrepos/python:adb-enhanced.svg
   :target: https://repology.org/project/python:adb-enhanced/versions

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/ashishb/adb-enhanced",
    "name": "adb-enhanced",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "Android ADB developer",
    "author": "Ashish Bhatia",
    "author_email": "ashishb@ashishb.net",
    "download_url": "https://files.pythonhosted.org/packages/8d/7d/baff371b8795aec480c607b08473502dde2dcaf4b887f22aa30c42979293/adb-enhanced-2.5.24.tar.gz",
    "platform": null,
    "description": "ADB Enhanced |Downloads| |PyPI version|\n=======================================\n\n.. figure:: docs/logo.png\n   :alt: Logo\n\n   Logo\n\nADB-Enhanced is a Swiss army knife for Android testing and development.\n\nA command-line interface to trigger various scenarios like screen\nrotation, battery saver mode, data saver mode, doze mode, and permission\ngrant/revocation. It\u2019s a wrapper around ``adb`` and not a replacement.\n\n|Lint Python| |Lint Markdown| |Lint YAML|\n\n|InstallAdbeTest|\n\n|AdbeInstallTests| |AdbeUnitTests|\n\n|Install adb-enhanced via pip| |Install adb-enhanced via homebrew|\n\n|AdbeUnitTests-Api16| |AdbeUnitTests-Api21| |AdbeUnitTests-Api22|\n|AdbeUnitTests-Api23| |AdbeUnitTests-Api24| |AdbeUnitTests-Api25|\n|AdbeUnitTests-Api26| |AdbeUnitTests-Api27| |AdbeUnitTests-Api28|\n|AdbeUnitTests-Api29| |AdbeUnitTests-Api31| |AdbeUnitTests-Api30|\n|AdbeUnitTests-Api31| |AdbeUnitTests-Api32| |AdbeUnitTests-Api33|\n|AdbeUnitTests-Api34|\n\n|asciicast|\n\nRelease announcement\n--------------------\n\nSee `Release\nannouncement <https://ashishb.net/tech/introducing-adb-enhanced-a-swiss-army-knife-for-android-development/>`__\n\nInstallation\n------------\n\nRecommended\n~~~~~~~~~~~\n\n``sudo pip3 install adb-enhanced``\n\nAlternative on Mac OS via Homebrew |Homebrew package|\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n``brew install adb-enhanced``\n\nNote\n----\n\n1. ``sudo pip install adb-enhanced`` works only for Python 3. Python 2\n   is no longer supported.\n2. If you don\u2019t have sudo access or you are installing without sudo then\n   ``adbe`` might not be configured correctly in the path.\n3. To set up bash/z-sh auto-completion, execute\n   ``sudo pip3 install infi.docopt-completion && docopt-completion $(which adbe)``\n   after installing adb-enhanced.\n\nExamples\n--------\n\nDevice configuration\n~~~~~~~~~~~~~~~~~~~~\n\n-  Turn doze mode on\n\n   ``adbe doze on``\n\n-  Turn mobile-data off\n\n   ``adbe mobile-data off``\n\n-  Turn on battery saver\n\n   ``adbe battery saver on``\n\n-  Don\u2019t keep activities in the background\n\n   ``adbe dont-keep-activities on``\n\n-  Take a screenshot ``adbe screenshot ~/Downloads/screenshot1.png``\n\n-  Take a video ``adbe screenrecord video.mp4 # Press ^C when finished``\n\n-  Turn Wireless Debug mode on ``adbe enable wireless debugging``\n\nPermissions\n~~~~~~~~~~~\n\n-  Grant storage-related runtime permissions\n\n   ``adbe permissions grant com.example storage``\n\n-  Revoke storage-related runtime permissions\n\n   ``adbe permissions revoke com.example storage``\n\nInteracting with app\n~~~~~~~~~~~~~~~~~~~~\n\n-  Start an app\n\n   ``adbe start com.example``\n\n-  Kill an app\n\n   ``adbe force-stop com.example``\n\n-  Clear app data - equivalent of uninstall and reinstall\n\n   ``adbe clear-data com.example``\n\n-  ls/cat/rm any file without worrying about adding \u201crun-as\u201d or \u201csu\n   root\u201d\n\n   ``adbe ls /data/data/com.example/databases`` # Works as long as\n   com.example is a debuggable package or shell has the root permission\n   or directory has been made publicly accessible\n\nDevice info\n~~~~~~~~~~~\n\n-  Detailed device info including model name, Android API version etc,\n   device serial\n\n   .. code:: bash\n\n      $ adbe devices\n      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\"\n\n      Serial ID: dcc54111\n      Manufacturer: OnePlus\n      Model: ONEPLUS A5000 (OnePlus 5T)\n      Release: 8.1.0\n      SDK version: 27\n      CPU: arm64-v8a\n\n      Serial ID: emulator-5554\n      Manufacturer: unknown\n      Model: Android SDK built for x86\n      Release: 4.4.2\n      SDK version: 19\n      CPU: x86\n\nApp info\n~~~~~~~~\n\n-  Detailed information about app version, target SDK version,\n   permissions (requested, granted, denied), installer package name,\n   etc.\n\n   .. code:: bash\n\n      $ adbe app info com.google.android.youtube\n      App name: com.google.android.youtube\n      Version: 12.17.41\n      Version Code: 121741370\n      Is debuggable: False\n      Min SDK version: 21\n      Target SDK version: 26\n\n      Permissions:\n\n      Install time granted permissions:\n      com.google.android.c2dm.permission.RECEIVE\n      android.permission.USE_CREDENTIALS\n      com.google.android.providers.gsf.permission.READ_GSERVICES\n      com.google.android.youtube.permission.C2D_MESSAGE\n      android.permission.MANAGE_ACCOUNTS\n      android.permission.SYSTEM_ALERT_WINDOW\n      android.permission.NFC\n      android.permission.CHANGE_NETWORK_STATE\n      android.permission.RECEIVE_BOOT_COMPLETED\n      com.google.android.gms.permission.AD_ID_NOTIFICATION\n      android.permission.INTERNET\n      android.permission.GET_PACKAGE_SIZE\n      android.permission.ACCESS_NETWORK_STATE\n      android.permission.VIBRATE\n      android.permission.ACCESS_WIFI_STATE\n      android.permission.WAKE_LOCK\n\n      Runtime Permissions not granted and not yet requested:\n      android.permission.WRITE_EXTERNAL_STORAGE\n      android.permission.MANAGE_DOCUMENTS\n      android.permission.GET_ACCOUNTS\n      android.permission.CAMERA\n      android.permission.RECORD_AUDIO\n      android.permission.READ_CONTACTS\n      android.permission.ACCESS_FINE_LOCATION\n      android.permission.ACCESS_COARSE_LOCATION\n      android.permission.READ_PHONE_STATE\n      android.permission.SEND_SMS\n      android.permission.RECEIVE_SMS\n      com.sec.android.provider.badge.permission.READ\n      com.sec.android.provider.badge.permission.WRITE\n      com.htc.launcher.permission.READ_SETTINGS\n      com.htc.launcher.permission.UPDATE_SHORTCUT\n      com.sonyericsson.home.permission.BROADCAST_BADGE\n      com.sonymobile.home.permission.PROVIDER_INSERT_BADGE\n      android.permission.READ_EXTERNAL_STORAGE\n\n      Installer package name: None\n\n-  App backup to a tar file unlike the Android-specific .ab format\n\n   .. code:: bash\n\n      $ adbe app backup com.google.android.youtube backup.tar\n      you might have to confirm the backup manually on your device's screen, enter \"00\" as password...\n      Successfully backed up data of app com.google.android.youtube to backup.tar\n\nUsage\n~~~~~\n\n.. code:: bash\n\n   adbe [options] airplane (on | off)\n   adbe [options] alarm (all | top | pending | history)\n   adbe [options] animations (on | off)\n   adbe [options] app backup <app_name> [<backup_tar_file_path>]\n   adbe [options] app info <app_name>\n   adbe [options] app path <app_name>\n   adbe [options] app signature <app_name>\n   adbe [options] apps list (all | system | third-party | debug | backup-enabled)\n   adbe [options] battery level <percentage>\n   adbe [options] battery reset\n   adbe [options] battery saver (on | off)\n   adbe [options] cat <file_path>\n   adbe [options] clear-data <app_name>\n   adbe [options] dark mode (on | off)\n   adbe [options] devices\n   adbe [options] (enable | disable) wireless debugging\n   adbe [options] dont-keep-activities (on | off)\n   adbe [options] doze (on | off)\n   adbe [options] dump-ui <xml_file>\n   adbe [options] force-stop <app_name>\n   adbe [options] gfx (on | off | lines)\n   adbe [options] input-text <text>\n   adbe [options] install <file_path>\n   adbe [options] jank <app_name>\n   adbe [options] layout (on | off)\n   adbe [options] location (on | off)\n   adbe [options] ls [-a] [-l] [-R|-r] <file_path>\n   adbe [options] mobile-data (on | off)\n   adbe [options] mobile-data saver (on | off)\n   adbe [options] mv [-f] <src_path> <dest_path>\n   adbe [options] notifications list\n   adbe [options] open-url <url>\n   adbe [options] overdraw (on | off | deut)\n   adbe [options] permission-groups list all\n   adbe [options] permissions (grant | revoke) <app_name> (calendar | camera | contacts | location | microphone | notifications | phone | sensors | sms | storage)\n   adbe [options] permissions list (all | dangerous)\n   adbe [options] press back\n   adbe [options] pull [-a] <file_path_on_android>\n   adbe [options] pull [-a] <file_path_on_android> <file_path_on_machine>\n   adbe [options] push <file_path_on_machine> <file_path_on_android>\n   adbe [options] restart <app_name>\n   adbe [options] restrict-background (true | false) <app_name>\n   adbe [options] rm [-f] [-R|-r] <file_path>\n   adbe [options] rotate (landscape | portrait | left | right)\n   adbe [options] rtl (on | off)\n   adbe [options] screen (on | off | toggle)\n   adbe [options] screenrecord <filename.mp4>\n   adbe [options] screenshot <filename.png>\n   adbe [options] show-taps (on | off)\n   adbe [options] standby-bucket get <app_name>\n   adbe [options] standby-bucket set <app_name> (active | working_set | frequent | rare)\n   adbe [options] start <app_name>\n   adbe [options] stay-awake-while-charging (on | off)\n   adbe [options] stop <app_name>\n   adbe [options] top-activity\n   adbe [options] uninstall [--first-user] <app_name>\n   adbe [options] wifi (on | off)\n\nOptions\n~~~~~~~\n\n.. code:: bash\n\n   -e, --emulator          directs the command to the only running emulator\n   -d, --device            directs the command to the only connected \"USB\" device\n   -s, --serial SERIAL     directs the command to the device or emulator with the given serial number or qualifier.\n                           Overrides ANDROID_SERIAL environment variable.\n   -l                      For long list format, only valid for \"ls\" command\n   -R                      For recursive directory listing, only valid for \"ls\" and \"rm\" command\n   -r                      For delete file, only valid for \"ls\" and \"rm\" command\n   -f                      For forced deletion of a file, only valid for \"rm\" command\n   -v, --verbose           Verbose mode\n\nPython3 migration timeline\n--------------------------\n\n-  Nov 27, 2017 - Code is Python3 compatible\n-  Jan 18, 2018 - pip (python package manager) has the updated version\n   which is Python3 compatible\n-  Nov 15, 2018 - Python2 based installation discouraged. Python3 is\n   recommended.\n-  Dec 31, 2018 - Python2 will not be officially supported after Dec 31,\n   2018.\n-  May 7, 2020 - Python2 no longer works with the current master branch\n\nTesting\n-------\n\n.. code:: bash\n\n   make lint\n   make test\n\nRelease a new build\n-------------------\n\nA new build can be released using\n```release/release.py`` <https://github.com/ashishb/adb-enhanced/blob/master/release/release.py>`__\nscript. Build a test release via ``make release_debug``. Build a\nproduction release via ``make release_production``\n\nUpdating docs for ReadTheDocs\n-----------------------------\n\n.. code:: bash\n\n   make documentation\n\nNote that this happens automatically during ``make release_production``.\n\nYou will have to do ``brew install pandoc`` if you are missing pandoc.\n\nNote: The inspiration for this project came from\n`android-scripts <https://github.com/dhelleberg/android-scripts>`__.\n\n|Packaging status|\n\nContributors\n------------\n\n.. figure:: https://contrib.rocks/image?repo=ashishb/adb-enhanced\n   :alt: GitHub contributors\n\n   GitHub contributors\n\n.. |Downloads| image:: https://static.pepy.tech/badge/adb-enhanced\n   :target: https://pepy.tech/project/adb-enhanced\n.. |PyPI version| image:: https://badge.fury.io/py/adb-enhanced.svg\n   :target: https://badge.fury.io/py/adb-enhanced\n.. |Lint Python| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/lint-python.yaml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/lint-python.yaml\n.. |Lint Markdown| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/lint-markdown.yaml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/lint-markdown.yaml\n.. |Lint YAML| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/lint-yaml.yaml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/lint-yaml.yaml\n.. |InstallAdbeTest| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/install-adbe.yml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/install-adbe.yml\n.. |AdbeInstallTests| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-installtests.yml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-installtests.yml\n.. |AdbeUnitTests| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests.yml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests.yml\n.. |Install adb-enhanced via pip| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/install-adb-enhanced-from-pip.yml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/install-adb-enhanced-from-pip.yml\n.. |Install adb-enhanced via homebrew| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/install-adb-enhanced-from-homebrew.yml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/install-adb-enhanced-from-homebrew.yml\n.. |AdbeUnitTests-Api16| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api16.yml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api16.yml\n.. |AdbeUnitTests-Api21| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api21.yml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api21.yml\n.. |AdbeUnitTests-Api22| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api22.yml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api22.yml\n.. |AdbeUnitTests-Api23| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api23.yml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api23.yml\n.. |AdbeUnitTests-Api24| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api24.yml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api24.yml\n.. |AdbeUnitTests-Api25| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api25.yml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api25.yml\n.. |AdbeUnitTests-Api26| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api26.yml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api26.yml\n.. |AdbeUnitTests-Api27| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api27.yml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api27.yml\n.. |AdbeUnitTests-Api28| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api28.yml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api28.yml\n.. |AdbeUnitTests-Api29| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api29.yml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api29.yml\n.. |AdbeUnitTests-Api31| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api31.yml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api31.yml\n.. |AdbeUnitTests-Api30| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api30.yml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api30.yml\n.. |AdbeUnitTests-Api32| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api32.yml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api32.yml\n.. |AdbeUnitTests-Api33| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api33.yml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api33.yml\n.. |AdbeUnitTests-Api34| image:: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api34.yml/badge.svg\n   :target: https://github.com/ashishb/adb-enhanced/actions/workflows/adbe-unittests-api34.yml\n.. |asciicast| image:: https://asciinema.org/a/0IhbOF6QNIhBlgtO6VgzNmTbK.png\n   :target: https://asciinema.org/a/0IhbOF6QNIhBlgtO6VgzNmTbK\n.. |Homebrew package| image:: https://repology.org/badge/version-for-repo/homebrew/adb-enhanced.svg\n   :target: https://formulae.brew.sh/formula/adb-enhanced\n.. |Packaging status| image:: https://repology.org/badge/vertical-allrepos/python:adb-enhanced.svg\n   :target: https://repology.org/project/python:adb-enhanced/versions\n",
    "bugtrack_url": null,
    "license": "Apache",
    "summary": "Swiss-army knife for Android testing and development",
    "version": "2.5.24",
    "project_urls": {
        "Homepage": "https://github.com/ashishb/adb-enhanced"
    },
    "split_keywords": [
        "android",
        "adb",
        "developer"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dc03e6dbdfddda9ec98b5695aa089dc321b0f161c1d55ba94b657d157909266e",
                "md5": "6b41549c79e1c90977fd30b4c670f627",
                "sha256": "421fe40d320e30a2e098c7c3ab5551e31e7f55108e55db2ea631ec43ee812e0a"
            },
            "downloads": -1,
            "filename": "adb_enhanced-2.5.24-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6b41549c79e1c90977fd30b4c670f627",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 7791416,
            "upload_time": "2024-04-11T06:27:17",
            "upload_time_iso_8601": "2024-04-11T06:27:17.507605Z",
            "url": "https://files.pythonhosted.org/packages/dc/03/e6dbdfddda9ec98b5695aa089dc321b0f161c1d55ba94b657d157909266e/adb_enhanced-2.5.24-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8d7dbaff371b8795aec480c607b08473502dde2dcaf4b887f22aa30c42979293",
                "md5": "4770058de1e78f30027588c757c1583a",
                "sha256": "1b26a774bb6de61910f9cc53cd1b6ff5480d4d69cc07dd9768712f316263920d"
            },
            "downloads": -1,
            "filename": "adb-enhanced-2.5.24.tar.gz",
            "has_sig": false,
            "md5_digest": "4770058de1e78f30027588c757c1583a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 7794072,
            "upload_time": "2024-04-11T06:27:26",
            "upload_time_iso_8601": "2024-04-11T06:27:26.416636Z",
            "url": "https://files.pythonhosted.org/packages/8d/7d/baff371b8795aec480c607b08473502dde2dcaf4b887f22aa30c42979293/adb-enhanced-2.5.24.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-11 06:27:26",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ashishb",
    "github_project": "adb-enhanced",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "docopt",
            "specs": []
        },
        {
            "name": "psutil",
            "specs": []
        },
        {
            "name": "pytest",
            "specs": []
        },
        {
            "name": "types-docopt",
            "specs": []
        },
        {
            "name": "types-psutil",
            "specs": []
        }
    ],
    "lcname": "adb-enhanced"
}
        
Elapsed time: 0.24967s