2016-10-26 3 views
2

Ich frage mich, wie ich Port 5555 für Daemon Adb auf Android aktivieren kann? Im Grunde habe ich ein Heimnetzwerk mit einem alten Router eingerichtet, so dass ich alle meine Geräte verbunden halten kann. Aber hier ist das Problem: Ich möchte nicht jedes Mal eine Verbindung zu USB herstellen müssen, um diese Ports zu aktivieren, die den gesamten Zweck vereiteln.Aktivieren Sie Port 5555 für Ad-Netzwerk-Verwaltung programmgesteuert

Ich frage mich, wie man den Port mit Java oder sogar JNI programmgesteuert weiterleitet, indem man auf eine Schaltfläche klickt? Ich habe die telnetd App gesehen. Also ich will es selbst machen. Wie erreiche ich das? Ich habe eine Funktion versucht, hier ist es:

public void openPort() 
    { 
     try 
     { 
      java.lang.Process process = Runtime.getRuntime().exec("setprop service.adb.tcp.port 5555"); 
      int exitCode = process.waitFor(); 
      if (exitCode != 0) 
      { 
       throw new java.io.IOException("Command exited with " + exitCode); 
      } 
      Runtime.getRuntime().exec("adb tcpip 5555"); 
      Toast.makeText(this, "Listening on port "+ port + "...", Toast.LENGTH_LONG).show(); 
     } 
     catch (Exception ex) 
     { 
      ex.printStackTrace(); 
      Toast.makeText(this, "An error has occurred: " + ex, Toast.LENGTH_LONG).show(); 
      port++; 
      openPort(); 
     } 
    } 

Jetzt ist es nie erreicht die Ausnahme, heißt es auf der Port geöffnet, aber wenn ich über das Netzwerk gehen verbinden es funktioniert nicht. Wie kann ich das tun?

Bedenken Sie, dass die App in die System-App mit lucky patcher verschoben wurde, also ist es eine System-App. Wenn das zählt.

+2

hey, Sie sollten Ihre Frage bearbeiten und einen Rollback durchführen, bevor Sie es gelöst haben. Dann posten Sie Ihre Lösung als Antwort. Es wird nicht davon abgeraten, Antworten auf deine eigenen Fragen zu veröffentlichen, aber die Lösung in der Frage ist definitiv. – trooper

Antwort

2

(Posted Lösung im Namen des OP).

Ich habe es ein wenig verändert. Es funktioniert jetzt:

public void openPort() 
{ 
    try 
    { 
     String cmds[] = { 
      "setprop service.adb.tcp.port 2222", 
      "stop adbd", 
      "start adbd" 
     }; 
     for (int i = 0; i < cmds.length; i++) 
     { 
      java.lang.Process process = Runtime.getRuntime().exec(cmds[i]); 
      int exitCode = process.waitFor(); 
      if (exitCode != 0) 
      { 
       throw new java.io.IOException("Command exited with " + exitCode); 
      } 
     } 
     Toast.makeText(this, "Listening on port 2222...", Toast.LENGTH_LONG).show(); 
    } 
    catch (Exception ex) 
    { 
     ex.printStackTrace(); 
     Toast.makeText(this, "An error has occurred: " + ex, Toast.LENGTH_LONG).show(); 
     openPort(); 
    } 
} 
+0

Eigentlich habe ich jetzt ein Problem. Es friert ein und funktioniert nicht mehr. Niemals den Hafen öffnen. Ich habe "su" zur Befehlsliste hinzugefügt, aber es bleibt stehen und ist noch instabiler. Es funktionierte die ersten zwei oder drei Mal, aber dann funktionierte es nicht mehr. Also brauche ich noch eine Antwort –

+0

Würdest du eine neue Frage stellen, um das einzuschließen, @ IgnatiusReborn2.0? Das klingt nach einer anderen Frage als die, die Sie ursprünglich gestellt haben. – halfer

+0

Nein, es ist die gleiche. Aber das macht nichts. Es funktioniert wieder. Nur auf gerooteten Geräten. Was ist in Ordnung. –

Verwandte Themen