Skip to main content

A friendly android adb command-line tool

Project description

Adbtool

A friendly android adb command-line tool

Test 😎 PyPI PyPI

Python Requirements

  • python 3.11+
  • uv
  • Android SDK

Development

uv sync
uv run pytest
uv run pytest tests/test_cmd.py
uv run ruff format adbtool tests
uv build

Commands

adbt -h
usage: adbt [options]

show android device list

options:
  -h, --help            show this help message and exit
  -c CONFIG, --config CONFIG
                        global config
  --version             show program's version number and exit

sub commands:
  {adb,devices,push,install,uninstall,apk,sign,ab,il2cpp}
    adb                 forward adb arguments to selected devices
    devices             show android device list
    push                push files to android device
    install             install apk file
    uninstall           uninstall apk file
    apk                 show apk packageName/activityName
    sign                sign apk with android debug(only windows)
    ab                  extract unity asset bundle information
    il2cpp              extract unity il2cpp information

adbt adb -- devices
adbt adb -d 1 -- shell
adbt adb -d a -- shell pwd
adbt adb -- -H localhost devices
adbt adb -d 1 -- -d shell

adbt adb supports the same device selection flow as install, and adb arguments must be placed after --.

  • -d/--devices before -- belongs to adbt adb
  • everything after -- is passed to the real adb binary without extra parsing
  • adbt adb -h shows the adbt subcommand help
  • adbt adb -- -h shows the real adb help
adbt adb -h
usage: adbt adb [-h] [-d [DEVICES ...]] -- [adb_args ...]

adbt devices -h
usage: adbt [options] devices [-h] [-d DEVICES [DEVICES ...]] [-l]

optional arguments:
  -h, --help            show this help message and exit
  -d DEVICES [DEVICES ...], --devices DEVICES [DEVICES ...]
                        filter of devices, [n | serial | a] n:index of list(start with 1), serial:at least 2 char,
                        a:all
  -l, --list            show devices list

adbt push -h
usage: adbt [options] push [-h] [-r] [-n] [-j [HASHJSON]] [--hash [{sha1,mtime}]] [--localdir LOCALDIR]
                           [--remotedir REMOTEDIR] [--dontpush] [-d [DEVICES [DEVICES ...]]]
                           [path [path ...]]

positional arguments:
  path                  file or directory

optional arguments:
  -h, --help            show this help message and exit
  -r                    recursion all file
  -n                    only push new file by last modify files, see -j
  -j [HASHJSON]         hash json file, default: ./$deviceMode_$deviceSerial.json
  --hash [{sha1,mtime}]
                        hash function: mtime or sha1, default:mtime
  --localdir LOCALDIR   local prefix and remote prefix, will replace local prefix to remote prefix
  --remotedir REMOTEDIR
                        local prefix and remote prefix, will replace local prefix to remote prefix
  --dontpush            only outout json file, not really push file to remote
  -d [DEVICES [DEVICES ...]], --devices [DEVICES [DEVICES ...]]
                        filter of devices, [a | n | serial] a: all devices n: index of devices list(start with 1)
                        serial: devices serial (at least 2 char) not argument is show device list

adbt install -h
usage: adbt [options] install [-h] [-f] [--filter [FILTER ...]] [-r] [-d [DEVICES [DEVICES ...]]] [apkpath ...]

positional arguments:
  apkpath

optional arguments:
  -h, --help            show this help message and exit
  -f, --force           install with adb -d -r
  --filter [FILTER [FILTER ...]]
                        filtered by file name
  -r, --run             run app after install
  -d [DEVICES [DEVICES ...]], --devices [DEVICES [DEVICES ...]]
                        filter of devices, [a | n | serial] a: all devices n: index of devices list(start with 1)
                        serial: devices serial (at least 2 char) not argument is show device list
  • install accepts multiple apk paths and uses adb install-multi-package when more than one apk is provided.
  • default install mode uses adb -r; -f/--force upgrades it to adb -d -r.

adbt apk -h
usage: adbt [options] apk [-h] [-r] [-d [DEVICES [DEVICES ...]]] [apkpath]

positional arguments:
  apkpath

optional arguments:
  -h, --help            show this help message and exit
  -r, --run             run app
  -d [DEVICES [DEVICES ...]], --devices [DEVICES [DEVICES ...]]
                        filter of devices, [a | n | serial] a: all devices n: index of devices list(start with 1)
                        serial: devices serial (at least 2 char) not argument is show device list

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

adbtool-0.0.38.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

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

adbtool-0.0.38-py3-none-any.whl (26.0 kB view details)

Uploaded Python 3

File details

Details for the file adbtool-0.0.38.tar.gz.

File metadata

  • Download URL: adbtool-0.0.38.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for adbtool-0.0.38.tar.gz
Algorithm Hash digest
SHA256 26c5cb3a62ebdd1aa52472592373dee83e81eba636cc955cf8197b7f8922206e
MD5 92b0e2347456d22b9cf013e643e14294
BLAKE2b-256 2cd563161734de21e88f8164db13098820ed86d6a366f1541409e37fb20ccc31

See more details on using hashes here.

Provenance

The following attestation bundles were made for adbtool-0.0.38.tar.gz:

Publisher: pythonpublish.yml on litefeel/adbtool

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file adbtool-0.0.38-py3-none-any.whl.

File metadata

  • Download URL: adbtool-0.0.38-py3-none-any.whl
  • Upload date:
  • Size: 26.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for adbtool-0.0.38-py3-none-any.whl
Algorithm Hash digest
SHA256 5fa451949369f0d355af22c4a76e1796aae664549feffa00242c12f7ebcd2088
MD5 8b2b4906a07fa0ccba49b76e28b8abbc
BLAKE2b-256 3795050f5b6b3038b1b657ef4b541be38ffaec466f21d7e92fe084c3e928fc2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for adbtool-0.0.38-py3-none-any.whl:

Publisher: pythonpublish.yml on litefeel/adbtool

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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