Kann chmod nicht verwenden, um Berechtigungen auf emuliertem Telefon zu ändern

Ich versuche also, eine App in Android Studio zu erstellen, und ich muss auf eine bestimmte Datei in der App verweisen. cascade.xml.Ich habe sie ohne Probleme mit adb auf das emulierte Telefon geschoben (es befindet sich im Ordner storage/sdcard). Die App kann jedoch immer noch nicht darauf zugreifen, und ich denke, das liegt an den Dateiberechtigungen -rwxrwx---(dh kein globaler Zugriff). Diese Berechtigungen werden in ADM überprüft und verwendetls -l <filename>

Ich versuche, die Berechtigungen dieser cascade.xmlDatei zu ändern, indem ich mit zurück in die Shell ( adb shell) gehe chmod 777 /storage/sdcard/cascade.xml, aber es schlägt stillschweigend fehl und tut nichts. Habe es mit anderen chmods versucht, aber es passiert überhaupt nichts. Wenn ich suund dann tue chmod 777 /storage/sdcard/cascade.xml, dasselbe. Der Versuch, andere chmodwie chmod 700und dergleichen zu tun, bringt auch nichts (leise scheitern).

Wenn ich jetzt versuche, ein Verzeichnis im Ordner zu erstellen, kann ich das mit mkdir- mkdir /storage/sdcard/cascadesfunktioniert gut, und die Dateiberechtigungen des Ordners sind drwrwx---. Wenn ich jedoch versuche mkdir chmod, den Ordner zu erstellen und dieselben Berechtigungen zu mkdir chmod 770 /storage/sdcards/cascades2erhalten, sagt die Shell mkdir failed for chmod, Read-only file system. Ich kann auch Textdateien erstellen, indem ich so etwas mache echo 'Hello World.' > /storage/sdcard/foo.txt(was es mit Berechtigungen von erstellt -rwxrwx---), aber wenn ich es danach versuche chmod, passiert nichts. Wenn ich versuche, ein Echo von „Hello World“ zu machen. > storage/sdcard/foo2.txt chmod 777, es ist die gleiche Berechtigung, aber die Dateigröße ist 24 statt 14.

Ich habe jede Iteration von gemacht mountund kann mir vorstellen remount, und ich kann chmod immer noch nicht richtig zum Laufen bringen. Ich habe versucht, suvor allem und nichts zu laufen. Ich habe versucht, mit zu beginnen adb root, und es sagt, dass ich bereits root bin. Ich kann den Emulator auch mit ADM und adb push. Leider befindet sich meine gesamte Umgebung auf einem Windows 7-Gerät, daher kann ich nicht einfach eine Datei mit -rwxrwxrwxBerechtigungen erstellen und sie einfach übertragen (es sei denn, es gibt eine Berechtigungseinstellung in Windows, die die Übertragung als 777-Berechtigung bewirkt, die ich habe nicht wissen).

Bearbeiten: Vergessen zu erwähnen, dass das emulierte Telefon API 19 ausführt, Ziel-Google-APIs (x86-System) und KitKat ausführt.

Antworten (1)

Ich habe es herausgefunden - es scheint, als könnten Sie die Berechtigungen für Dateien auf nicht ändern sdcard. Verschob es data/localund chmodfunktionierte wie ein Zauber.