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.
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:
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#
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 can enable adb programmatically by requesting WRITE_SECURE_SETTINGS in manifest and granting it over adb shell:
Then you can enable adb on API 17 and above by calling:
For API 16 to API 3 call:
To disable adb replace "1" with "0" in commands