1
153806
Gast
Hallo,
ich bin gerade dabei eine App zu programmieren, die Daten einer anderen App modifizieren muss. Dabei ist mir sofort das Problem ausgefallen, dass dann die UID und die GID der modifizierten Dateien 0 (root) sind. Also wollte ich die UID der Datei vorher auslesen um diese nacher wieder zu setzen. Für das Auslesen habe ich mir eine Funktion zusammengebastelt, die wohl glaub ich nicht die beste Lösung ist (eure Meinung?):
Die Klasse RootTools führt hier folgendes aus und liefert das Ergebnis zurück: "stat FILE_NAME".
Diese Funktion funktioniert leider nicht immer, deshalb bin ich jetzt auf die Idee gekommen folgendes zu machen: "ls -l | cut -d ' ' -f 2".
Dies habe ich auf der Seite Finding the Owner of a File in Unix | Unix Tutorial gelesen. Aber in dem Kommentar von jos steht, um den User auszulesen müsse man "ls -l | cut -d ' ' -f 3" ausführen, aber wenn ich dies mache bekomme ich nichts. Wenn ich aber statt "-f 3", "-f 2" schreibe geht es. Also heißt das, dass wenn ich diese Methode auf unterschiedlichen Android-System ausführe auch unterschiedliche Ergebnisse erhalte. Ist diese Methode die UID auszulesen gut?
Oder würdet Ihr es ganz anders lösen?
MfG
cheeseburgerohnekaese
ich bin gerade dabei eine App zu programmieren, die Daten einer anderen App modifizieren muss. Dabei ist mir sofort das Problem ausgefallen, dass dann die UID und die GID der modifizierten Dateien 0 (root) sind. Also wollte ich die UID der Datei vorher auslesen um diese nacher wieder zu setzen. Für das Auslesen habe ich mir eine Funktion zusammengebastelt, die wohl glaub ich nicht die beste Lösung ist (eure Meinung?):
Code:
public static int getUid (String file_name) {
String res = RootTools.cmd("stat", file_name);
try {
return Integer.parseInt(res.split("Uid: \\(")[1].split("/")[0]);
} catch (IndexOutOfBoundsException e) {
e.printStackTrace();
}
return -1;
}
Die Klasse RootTools führt hier folgendes aus und liefert das Ergebnis zurück: "stat FILE_NAME".
Diese Funktion funktioniert leider nicht immer, deshalb bin ich jetzt auf die Idee gekommen folgendes zu machen: "ls -l | cut -d ' ' -f 2".
Dies habe ich auf der Seite Finding the Owner of a File in Unix | Unix Tutorial gelesen. Aber in dem Kommentar von jos steht, um den User auszulesen müsse man "ls -l | cut -d ' ' -f 3" ausführen, aber wenn ich dies mache bekomme ich nichts. Wenn ich aber statt "-f 3", "-f 2" schreibe geht es. Also heißt das, dass wenn ich diese Methode auf unterschiedlichen Android-System ausführe auch unterschiedliche Ergebnisse erhalte. Ist diese Methode die UID auszulesen gut?
Oder würdet Ihr es ganz anders lösen?
MfG
cheeseburgerohnekaese
Zuletzt bearbeitet von einem Moderator: