Ich habe ein benutzerdefiniertes ROM erstellt und Plattformschlüssel für diesen Build erhalten. Jetzt erstelle ich eine Systemanwendung, die mit dem Plattformschlüssel signiert ist.Welche Art von Zugriff erhalten wir nach dem Signieren einer Anwendung mit Plattformsignatur?
Jetzt möchte ich die Anwendung schreiben etwas im System/priv-app-Ordner. Wenn ich die Anwendung mit Superuser-Zugriff in einem gerooteten Telefon ausführen, funktioniert der Code.
Aber ist ein solcher Zugriff für die Anwendung möglich, die mit dem Schlüssel der Plattform signiert ist?
Ich habe versucht, die folgende:
public class MainActivity extends AppCompatActivity {
private static final String DEBUG_TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
Log.i(DEBUG_TAG, "Here");
Process process = Runtime.getRuntime().exec("chmod 777 /system/priv-app");
DataOutputStream dataOutputStream = new DataOutputStream(process.getOutputStream());
dataOutputStream.writeBytes("touch /system/priv-app/foo.txt\n");
dataOutputStream.flush();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = reader.readLine())!= null) {
stringBuilder.append(line + "\n");
}
Log.i(DEBUG_TAG, stringBuilder.toString());
} catch (Exception e) {
e.printStackTrace();
Log.i(DEBUG_TAG, "IO Error");
}
}
}
Ich bekomme keine Ausgabe von der Laufzeit in meiner Anwendung, nicht einmal ein Fehler, aber die Datei nicht in dem Verzeichnis erstellt.
Gibt es einen Implementierungsfehler oder ist ein solcher Zugriff nicht möglich?
Meine Frage ist tatsächlich, bekomme ich Root-Zugriff von der Anwendung mit Plattformschlüssel unterzeichnet? Kann ich es rw wieder montieren, ohne vorher den Befehl su zu benutzen? – bpncool