Android-ioctl -, root-Rechte und Nutzung
Arbeite ich auf einige routing-Funktionalität in einer Android-app, und Zugriff ioctls. Da apps, die ioctls benötigen Sie root-Berechtigung ausgeführt werden, der einzige Weg, ich in der Lage gewesen, Sie zu nennen, ist die Verknüpfung eine separate ausführbare Datei und der Aufruf von Java mit Runtime.getRuntime().exec()
.
Gibt es eine Möglichkeit, Zugriff auf root-Berechtigungen, die von JNI unter Android, ohne Gebäude eine separate ausführbare Datei? Ist das erstellen einer ausführbaren Datei für den besten Ansatz, um den Zugriff auf eine ioctl?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine Mittel für einen nicht-root-Prozess, um root zu werden (über exploits), also ja, müssen Sie einen separaten Prozess.
Diese unverändert geerbt von linux - mit dem Unterschied, dass es keinen direkten Weg, der zum starten einer android-Anwendung-Prozess als root aus dem launcher, denn das sendet eine Absicht zur zygote, die Gabeln ab und Privileg-reduziert ein Kind, das spezialisiert ist, in eine Anwendung Prozess. (Möglicherweise gibt es einen Kreisverkehr Methode erstellen Sie manuell eine Anwendung Prozess, aber man müsste eine Anwendung Prozess, es zu tun, so wäre es per definition ein sekundärer Prozess. Und es wäre ineffizient, da eine Anwendung, die war kein Kind der zygote würde nicht Erben die gemeinsame Zuordnung von system-Bibliotheken, und so müsste die Last seiner eigenen, einzigartigen Kopien in den Speicher)
ioctl() ist nur ein Systemaufruf, und benötigt nur root werden, wenn die Zugriffsrechte zu, die fd (von der device-Datei) führt. Offensichtlich, dass der Fall für diejenigen, die Sie verwenden möchten, aber andere sind unpriveleged. Zum Beispiel die Mehrheit der Android-framework IPC letztlich umgesetzt wird mit Bindemittel ioctl ' s, und Sie werden Häufig verwendet, um die Kontrolle über eine Netzwerk-Buchse.
ioctl () - Aufrufe nicht explizit erfordern root-Berechtigung (oder einer besonderen Erlaubnis) zu verwenden. Als Chris Stratton sagte, Sie müssen die Berechtigung zum Zugriff auf das jeweilige Gerät in Frage. Wenn Sie nicht gesagt haben, die Berechtigung, Sie gehen nicht, um es anderen als nutzt.
Was Sie letztlich versuchen, zu erreichen?