Android Debug Bridge (adb)
Android Debug Bridge (adb) is a versatile command-line tool,
included in the Android Studio, that lets you communicate with a device.
It can be used to grant certain privileges which would otherwise require a rooted device.
Start by listing the connected devices and their serial number by executing the
adb devices shell command,
then to grant a privilege:
- modify secure system settings:
adb -s <serial number> shell pm grant com.llamalab.automate android.permission.WRITE_SECURE_SETTINGS
- change system display settings:
adb -s <serial number> shell pm grant com.llamalab.automate android.permission.CHANGE_CONFIGURATION
- limit number of running processes:
adb -s <serial number> shell pm grant com.llamalab.automate android.permission.SET_PROCESS_LIMIT
- intercept volume key long press:
adb -s <serial number> shell pm grant com.llamalab.automate android.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER
- read sensitive log data:
adb -s <serial number> shell pm grant com.llamalab.automate android.permission.READ_LOGS
- write sms:
adb -s <serial number> shell appops set com.llamalab.automate WRITE_SMS allow
Some manufacturers require additional steps before the above commands can be executed:
- System Settings →
Security settings →
USB debugging →
choose Allow granting permissions
When the commands has been executed the app may have to be restarted, e.g. by using the “Force close” button in system App setting,
before taking full affect.
Connecting over TPC/IP
By default an Android device only allow a ADB host, e.g. a PC, to connection through USB.
To make a device accept connections over TCP/IP, e.g. Wi-Fi, execute the shell command
adb tcpip 5555, then disconnect the USB cable. This has to be repeated after every device reboot.
Warning! When a new ADB host connects, the user has to authorize it. Never confirm/grant access when an unknown device tries to connect!