ADB Enhanced
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.
Release announcement
Installation
sudo pip3 install adb-enhanced
Note
sudo pip install adb-enhanced adbe sudo pip3 install infi.docopt-completion && docopt-completion $(which adbe)
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
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
Usage
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] 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] 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 <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" 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 --no-python2-warn Don't warn about Python 2 deprecation
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.
Testing
python -m pytest -v tests/adbe_tests.py # Python2 tests python3 -m pytest -v tests/adbe_tests.py # Python3 tests
Release a new build
A new build can be released using release/release.py
script. A test release can be made using release.py test release
and a production release using release.py production release
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 .
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深度探索C++对象模型
斯坦利•B.李普曼 (Stanley B. Lippman) / 侯捷 / 电子工业出版社 / 2012-1 / 69.00元
作者Lippman参与设计了全世界第一套C++编译程序cfront,这本书就是一位伟大的C++编译程序设计者向你阐述他如何处理各种explicit(明确出现于C++程序代码中)和implicit(隐藏于程序代码背后)的C++语意。 本书专注于C++面向对象程序设计的底层机制,包括结构式语意、临时性对象的生成、封装、继承,以及虚拟——虚拟函数和虚拟继承。这本书让你知道:一旦你能够了解底层实现模......一起来看看 《深度探索C++对象模型》 这本书的介绍吧!