Is it possible to enable USB debugging (under settings/applications/development) programmatically from within my app?
I was looking at Permission.WRITE_SETTINGS and
http://developer.android.com/reference/android/provider/Settings.System.html,
but I couldn't find anything appropriate.
First: Your app must be a system app
This line of code may help:
Settings.Global.putInt(getContentResolver(), Global.ADB_ENABLED, 1);
and you need this permission:
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
but after adding this permission in manifest you will get this error: Permission is only granted to system apps
which means your app must be a system app.
You need to follow these 3 steps
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
Settings.Secure.putInt(requireActivity().contentResolver, Settings.Global.ADB_ENABLED, 1) or Settings.Secure.putInt(requireActivity().contentResolver, Settings.Global.ADB_ENABLED, 0) to disable itadb shell pm grant your.package.name android.permission.WRITE_SECURE_SETTINGS. The device has to be attached to the computer with USB debug active.I developed a simple app that uses this approach to enable/disable some developer options such as Debug USB and Keep Device Screen Active https://play.google.com/store/apps/details?id=it.stzan.devtools
Disclaimer: I am the actual developer of DevTools
You will need root permissions to do so from an app.
That said, it is possible to enable ADB by executing the following terminal commands:
setprop persist.service.adb.enable 1
start adbd
This blog post gives an excellent example of how to execute these commands with escalated permissions through su.
It's not possible without using your own custom firmware that grants access to the security settings. See thread here: http://groups.google.com/group/android-developers/browse_frm/thread/953c6f0eb0fa9bed#
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With