Führen Sie beim Booten mehrere Befehle in init.d aus

2405
Enigma83

Ich habe eine Anleitung zum Korrigieren von Berechtigungen für ein EXT4-Dateisystem auf einer MicroSD-Karte gefunden. Die AOSP / CyanogenMod-ROMs, die ich ausprobiert habe, werden zwar eingebunden, aber die Berechtigungen sind durcheinander. Der Leitfaden hat auf KitKat gut funktioniert, aber ich habe vor kurzem eine Note 4 gekauft, verwurzelt und SlimRemix (5.1.x Lollipop) geblitzt, und der Leitfaden funktioniert nicht mehr vollständig.

Was ich versuche zu tun, ist, die Berechtigungen von / mnt / media_rw / sdcard1 in 777 zu ändern (Standardeinstellung ist 755). Es scheint im Besitz der Gruppe / des Benutzers "media_rw" zu sein. Der Wechsel von 755 auf 777 funktioniert, und ich habe keine Probleme beim Lesen / Schreiben. Die Berechtigungen werden jedoch beim Neustart auf 755 zurückgesetzt. Ich bin mir der Ursache nicht sicher.

Als temporäre Lösung habe ich festgestellt, dass ich mit init.d-Skripts (/system/etc/init.d) Befehle beim Booten automatisch ausführen kann. Mein ROM wird auch beim Booten von Skripts ausgeführt, die sich in /data/local/userinit.sh und / oder userinit.d (im selben Pfad) befinden.

Ich habe jedoch Probleme beim Ausführen mehrerer Befehle. Was ich jetzt habe:

! / system / bin / sh

su && chmod 777 -R / mnt / media_rw / sdcard1

Die Berechtigungen für die Datei sind korrekt auf 755 festgelegt. Es scheint, dass nur der su-Abschnitt ausgeführt wird und dann angehalten wird. Es treten keine Änderungen der Berechtigungen auf. Wenn ohne ausgeführt, bekomme ich wie erwartet "Permission denied". Ich kann die Skript-Manager-App verwenden, das "su &&" -Bit weglassen, das Skript (in SM) als "Execute", "su" und "on boot" markieren und es funktioniert. Da ich jedoch native Unterstützung für die automatische Skriptausführung beim Booten habe, möchte ich dazu lieber keine App verwenden.

Ich weiß, dass eine bessere Lösung darin besteht, einen Weg zu finden, Berechtigungen dauerhaft zu ändern. Wenn jemand weiß, wie dies ausgeführt werden kann, würde ich die Informationen zu schätzen wissen, aber ein Skript wird für meine Zwecke ausreichen. Kann jemand sagen, was ich falsch mache? Vielen Dank!

0
Was versuchst du, Su zu mischen? vielleicht sollte dein Befehl su -c [Befehl] sein? Francisco Tapia vor 8 Jahren 0
Ich versuche, zuerst den Befehl su auszuführen, gefolgt von "chmod 777 -R / mnt / media_rw / sdcard1". Bei der tatsächlichen Ausführung stoppt es jedoch bei su und geht nicht weiter. Deshalb sagte ich "mehrere Befehle". Natürlich teilt "#! / System / bin / sh" Android mit, dass es sich um ein Skript handelt und welche Shell verwendet werden sollte (aus irgendeinem Grund hat Superuser das # nicht in meinen Post aufgenommen, obwohl ich weiß, dass ich es eingetippt habe). Ich werde mein Skript mit Ihrem Vorschlag modifizieren und sehen, was passiert. Enigma83 vor 8 Jahren 0

0 Antworten auf die Frage