Frage Wie läuft man Android-System-App ohne Root-Permisson?


Gibt es eine Möglichkeit, Android-System-App ohne root-Berechtigung auszuführen? Ich kann System-App über adb ausführen wie:

adb-Shell / system / bin / screencap -p /sdcard/screen.png

In meiner eigenen Anwendung möchte ich einen Shell-Befehl ohne "su" -Befehl ausführen. Gibt es irgendeinen Weg? Wie verhindert Android, dass Benutzer-Apps die System-App ausführen?


6
2017-09-27 06:20


Ursprung


Antworten:


Sie sollten diesen Befehl in Java-Code ausführen können:

Runtime.getRuntime().exec("screencap -p /sdcard/screen.png");

Es gibt einige Shell-Befehle, die Sie ohne root ausführen können. Sie müssen also nicht "su" ausführen. Ich bin mir nicht sicher, ob Sie screencap ausführen können. Sicherlich benötigen Sie die Erlaubnis, auf die SD_CARD in Ihrer App zu schreiben.

android.permission.WRITE_EXTERNAL_STORAGE

Aber warum verwenden Sie nicht die Android-API, um Ihren Screenshot zu erstellen? Für weitere Informationen lesen Sie diesen Beitrag auf stackoverflow: Wie programmiere ich einen Screenshot in Android?

Das Android-Sicherheitsmodell basiert auf Benutzer-IDs, wie Linux. Jede App erhält eine eigene Benutzer-ID. Ihre Anwendung hat also eine Benutzerkennung wie 1001. Wenn Ihr Benutzer den Befehl ausführen darf, können Sie dies tun, andernfalls erhalten Sie einen Fehler.

BEARBEITEN: 
Sie benötigen root, um Screenshots zu erstellen oder eine Systemanwendung zu sein. Es gibt eine Berechtigung READ_FRAME_BUFFER, die Sie jedoch nur erhalten können, wenn Sie eine Systemanwendung sind. Es ist ein Sicherheitsproblem, wenn eine App Screenshots von Ihrem Gerät machen könnte.

Ich habe diese API gefunden http://code.google.com/p/android-screenshot-library/ was verspricht, ohne root Screenshots zu machen. Ich habe es nicht getestet. Die Bibliothek startet einen nativen Dienst, der die Screenshots für Sie erstellt. Aber Sie müssen den Dienst jedes Mal starten, wenn Ihr Telefon startet. So erhält es die Systemprivilegien. Das ist nicht wirklich bequem ...

Fazit: Es gibt keine gute Möglichkeit Screenshots ohne root aus dem Code zu machen ...


7
2017-09-27 06:57



Gibt es eine Möglichkeit, Android-System-App ohne root-Berechtigung auszuführen?

Es muss sein NEIN, aber manchmal, einige Funktionen, die noch nicht zur öffentlichen Nutzung sind kann verwendet werden. Ich habe Beispiele mit Java-Reflektion gesehen.

Ich kann System-App über ausführen adb sowie: ...

In meiner eigenen Anwendung möchte ich einen Shell-Befehl wie folgt ausführen   "su" -Befehl. Gibt es irgendeinen Weg? Wie verhindert Android Benutzer-Apps zu?   System App ausführen?

Ich denke nicht.

Die Sache ist ADB Shell und Nutzer-App haben unterschiedliche Sicherheitsstufen basierend auf Benutzer- und Gruppen-IDs (UID und GID).

Mehr Info: http://android-dls.com/wiki/index.php?title=Android_UIDs_and_GIDs

Außerdem gibt es Einschränkungen über App-Berechtigungen und hiden & intern Klassen, Verfahren usw., die für den internen Gebrauch gemacht wurden.

P.S .: Über Screenshots. Auf dem Android-Markt (Google Play) gibt es wenige Apps, die Screenshots ohne ROOT-Zugriff bereitstellen. Also, es ist möglich. Obwohl seit Android 4.0 sind Screenshots "von Box" verfügbar.


2
2017-10-03 19:49