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:
adb -s <serial number> shell pm grant com.llamalab.automate android.permission.WRITE_SECURE_SETTINGS
adb -s <serial number> shell pm grant com.llamalab.automate android.permission.CHANGE_CONFIGURATION
adb -s <serial number> shell pm grant com.llamalab.automate android.permission.SET_PROCESS_LIMIT
adb -s <serial number> shell pm grant com.llamalab.automate android.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER
adb -s <serial number> shell pm grant com.llamalab.automate android.permission.READ_LOGS
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:
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.
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!