11

Android デバイスで USB デバッグをプログラムでオン/オフする方法はありますか?

4

5 に答える 5

6

こんにちは、これは私の最初の投稿です。通常は気にしませんが、複数の方法があるにもかかわらず、誰もあなたに答えたがっていないようです。これはすべて私のアプリからのものです。ところで、私は xda-dev で「idone」です。また、このコードの一部はおそらく Samsung MSMxxxx 固有のものです

あなたがルートを持っているなら、あなたは確かにできます。そして、他の人が別の言い方をしているにもかかわらず、これを行う3つの方法があります方法1(秘密のコードをブロードキャストする)方法2(sys.usb.configを設定する)方法3(設定グローバル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 は使用していません。

于 2015-03-12T18:04:20.700 に答える
3

通常のデバイスでは、通常のアプリではできません。

/system/app にアプリがある root 化されたデバイスが必要です。

とにかく、そのようなことを自分で構成するべきではありません。そのような場合、ユーザーは完全に制御する必要があります。

于 2013-09-13T09:19:57.837 に答える
2

にアクセスする必要があるため、これはアンドロイドでは不可能ですSetting.System。詳細については、こちらをご覧ください: How can I disable Android USB debugging programmatically

于 2013-09-13T09:17:33.427 に答える
2

セキュリティ設定へのアクセスを許可する独自のカスタム ファームウェアを使用しないと、これは不可能です。ここのスレッドを参照してください: http://groups.google.com/group/android-developers/browse_frm/thread/953c6f0eb0fa9bed#

usb デバッグは、Android Debug Bridge (ADB) の別名です。お探しの商品はこちら

http://developer.android.com/reference/android/provider/Settings.Secure.html#ADB_EN​​ABLED

于 2013-09-13T09:27:09.717 に答える