
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.
sudo pip3 install adb-enhanced
brew install adb-enhanced
sudo pip install adb-enhanced works only for Python 3. Python 2 is no longer supported.adbe might not be configured correctly in the path.sudo pip3 install infi.docopt-completion && docopt-completion $(which adbe) after installing adb-enhanced.adbe doze on
adbe mobile-data off
adbe battery saver on
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
adbe permissions grant com.example storage
adbe permissions revoke com.example storage
adbe start com.example
adbe force-stop com.example
adbe clear-data com.example
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
```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 ```
```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 ```
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
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] debug-app (set [-w] [-p] <app_name> | clear)
adbe [options] devices
adbe [options] display size
adbe [options] display size (ldpi | mdpi | hdpi | xhdpi | xxhdpi | xxxhdpi)
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] press media (next | previous | play | pause)
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)
-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
$ claude mcp add adb-enhanced \
-- python -m otcore.mcp_server <graph>