Dateirechte setzen

S

Snipestyle

Erfahrenes Mitglied
3
Abend zusammen :)

Besteht die Möglichkeit, die Berechtigungen von Dateien zu ändern?
Also sowas wie chmod?

Ich habe bis jetzt nicht wirklich ne Lösung gefunden, daher die Frage


Viele Grüße
 
Um berechtigungen von Dateien zu ändern brauchst du root und z.b. root explorer der sowas kann.
 
Das ist mir bewusst, jedoch nicht meine Lösung.
Möchte, das gerne meine App machen lassen
 
Ihm geht es aber nicht um Tasker sondern App Programmierung (ist im falsche Unterforum)

Kommt halt darauf an, bei was für einer Datei er die Rechte ändern will. Du änderst die Recht wahrscheinlich bei einer System Datei, die host. Du weißt aber nicht, ob er auch ähnliches vor hat oder nur die Rechte von einer zu seiner App gehörigen Datei ändern will, also z.B. einer in /data/data/app-name, denn dann hat er andere Möglichkeiten mit JAVA direkt beim Programmieren. Diese Punkte muss er erläutern (wenn der Thread im richtigen Forum ist), dann können unsere App-Entwickler sie ihm auch mit der richtigen Vorgehensweise beantworten
 
Ist mir Klar aber mit dem Tasker kann man auch Apps machen wenn du den Link auch mal anschaust.
 
Das weiß ich :)

Hat aber nicht viel mit seinem Anliegen zu tun, Taskerfunktionen sind etwas anders als direkt programmieren. Er sitzt ja schon an seiner App und will da natürlich für diese Funktion nicht auf Tasker zugreifen sondern sie mit einprogrammieren. Das Bedarf einer anderen Vorgehensweise. Weil Tasker das kann ist es ja kein Grund, die App nicht mehr selber zu programmieren ;)
 
Habe es ja auch nur mal erwähnt weil ich das selbe Problem hatte.
er wird schon wissen ob ihm das was nützt oder nicht.
Und wie weit er mit seiner App ist oder erst angefangen hat.

Das ist auf jeden fall eine alternative und man muss sich nicht mit JAVA rumschlagen.
 
Die alternative hat aber seine Nachteile, man kann nun mal nicht alles mit Tasker machen, ist begrenzt. Ein anderes Problem ist, dass bei einer App, die mit Tasker erstellt wurde, die Funktionen vor Tasker nicht wirklich verborgen sind, d.h. wenn ein User schon Tasker hat und nutzt seine Profile und Tasks mit denen einer Tasker App kollidieren. Ist daher keiner gute alternative, wenn man eine App auch in der Breite veröffentlichen will.
 
für mich ist es eine alternative wenn man keine ahnung hat von App Entwicklung
und habe es auch nicht gesagt das es alles kann aber Rechte Setzen geht ausnahmsweise mal ganz leicht.
Und für mich habe ich die Trotzdem nicht gemacht bei mir erledigt das der Tasker automatisch beim starten und einer bestimmten Uhrzeit.
 
So...

Also was ich vor habe: Ich brauche Zugriff auf eine Datei von welcher ich nicht der Besitzer bin. Die Datei ist von einer anderen app und befindet sich im Pfad: /data/data/appname/

Um auf die Datei zugreifen zu können und mit dieser arbeiten zu können brauche ich ja read,write bzw execute rechte. Und diese Rechte möchte ich gerne mit meiner EIGENEN App setzen. Also nichts mit Tasker, oder einem Root Explorer.
 
Geht nur auf einem gerooteten Gerät! Sonst würdest du das Sicherheitskonzept von Android umgehen.

Du hast die Wahl:
1) rooten
2) oder schaust nach, ob die App eine Schnittstelle zum Datenaustausch hat (Was aber nicht sehr wahrscheinlich ist).
 
Dass das Gerät gerootet sein muss kann ich akzeptieren. Und wie realisiere ich das dann in einer App?
 
Auf How-To SU findest du eine Anleitung wie du in deiner eigenen App Su nutzen kannst. Dann musst du im Grunde nur wie unter Linux chmod ausführen, wenn du die Rechte ändern willst oder liest die Datei eben einfach nur ein, was empfehlenswerter ist, und verarbeitest die Daten dann weiter.
 
Snipestyle schrieb:
Dass das Gerät gerootet sein muss kann ich akzeptieren. Und wie realisiere ich das dann in einer App?

Ich kann dir da ein paar Gedanken geben.

Und zwar gehst du die Sache folgendermaßen an:

  1. Gerät rooten (klare sache :p)
  2. Im Manifest den Root-Zugriff als Permission deklarieren
  3. Eine "Terminalsitzung" starten, besser gesagt von deiner app aus einen befehl ins terminal schicken. Und zwar ist das "su"
  4. Mit chmod777 (dann hast du alle rechte) die datei rechte ändern
  5. sitzung verlassen

Sieht dann codemäßig ca. so aus:

Code:
    private class changepermissions extends AsyncTask<Void, Void, Void> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();

        }

        @Override
        protected Void doInBackground(Void... voids) {
            try{
                Process suProcess = Runtime.getRuntime().exec("su");
                DataOutputStream os= new DataOutputStream(suProcess.getOutputStream());

                os.writeBytes("chmod 777 " + "/data/data/blablabla" + "\n");
                os.flush();

                os.writeBytes("exit\n");
                os.flush();
            }
            catch (IOException e) {
                throw new RuntimeException(e);
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
        }

    }


Am besten in einem Async-Task lösen. (wie oben)
 
  • Danke
Reaktionen: Snipestyle
Das klappt 1a !
Tausend dank :)
 

Ähnliche Themen

A
Antworten
1
Aufrufe
633
swa00
swa00
L
Antworten
8
Aufrufe
1.306
jogimuc
J
kukuk
Antworten
1
Aufrufe
1.289
kukuk
kukuk
Zurück
Oben Unten