android - 我们可以在 Android 设备上以编程方式启用/禁用 USB 调试吗?

标签 android

<分区>

有什么方法可以在 Android 设备上以编程方式打开/关闭 USB 调试?

最佳答案

您好,这是我在这里发表的第一篇文章,通常我不会打扰,但我发现没有人愿意给您答案,尽管有多种方法可以这样做。 这全部来 self 的应用程序,顺便说一句,我在 xda-dev 上是“idone”。还有一些代码可能是三星 MSMxxxx 特定的

如果你有根,你确实可以。尽管其他人另有说法,但这里有 3 种方法可以做到这一点 方法一(广播密码) 方法二(设置sys.usb.config) 方法三(set settings global adb_enabled 1)

public  String[] SET_DM_PORT_STATUS_LIST = new String[9];{
    SET_DM_PORT_STATUS_LIST[0] = "setMTP";
    SET_DM_PORT_STATUS_LIST[1] = "setMTPADB";
    SET_DM_PORT_STATUS_LIST[2] = "setPTP";
    SET_DM_PORT_STATUS_LIST[3] = "setPTPADB";
    SET_DM_PORT_STATUS_LIST[4] = "setRNDISDMMODEM";
    SET_DM_PORT_STATUS_LIST[5] = "setRMNETDMMODEM";
    SET_DM_PORT_STATUS_LIST[6] = "setDMMODEMADB";
    SET_DM_PORT_STATUS_LIST[7] = "setMASSSTORAGE";
    SET_DM_PORT_STATUS_LIST[8] = "setMASSSTORAGEADB";}

public  String[] SET_DM_PORT_CONFIG_LIST = new String[9];{
    SET_DM_PORT_CONFIG_LIST[0] = "mtp";
    SET_DM_PORT_CONFIG_LIST[1] = "mtp,adb";
    SET_DM_PORT_CONFIG_LIST[2] = "ptp";
    SET_DM_PORT_CONFIG_LIST[3] = "ptp,adb";
    SET_DM_PORT_CONFIG_LIST[4] = "rndis,acm,diag";
    SET_DM_PORT_CONFIG_LIST[5] = "rmnet,acm,diag";
    SET_DM_PORT_CONFIG_LIST[6] = "diag,acm,adb";
    SET_DM_PORT_CONFIG_LIST[7] = "mass_storage";
    SET_DM_PORT_CONFIG_LIST[8] = "mass_storage,adb";}

Process su = Runtime.getRuntime().exec("su");
             DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());
outputStream.writeBytes("am broadcast -a android.provider.Telephony.SECRET_CODE -d android_secret_code://" + SET_DM_PORT_STATUS_LIST[paramInt]+"\n");
outputStream.writeBytes("setprop sys.usb.config " + SET_DM_PORT_CONFIG_LIST[paramInt]+"\n");
            if(SET_DM_PORT_STATUS_LIST[paramInt].contains("adb")){
                outputStream.writeBytes("settings put global adb_enabled 1\n");
            }

我正在逆向 IOTHIDDENMENU.apk 并重新创建它的方法,但没有它使用的内部和隐藏的 api。

关于android - 我们可以在 Android 设备上以编程方式启用/禁用 USB 调试吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18782546/

相关文章:

android - 无法使用自动生成的后端 API 更新 appengine 后端中的实体

java - 无法使按钮对其他 Activity 不可见

android - Espresso : How to validate messages in logcat

android - 任何人都可以在 android 中使用 9-patch 设置此图像吗

android - 在 Android 上构建兼容性 PreferenceFragment

java - Fragment中的内存泄漏问题

android - 搜索 View 展开时如何隐藏抽屉导航切换按钮

android - createWindowSurface 失败 : EGL_BAD_MATCH?

java - Android LRU 缓存未显示正确的位图?

android - 在android上显示yuv420p