Systemdateien im r/o-Dateisystem ändern

  • 11 Antworten
  • Letztes Antwortdatum
L

linuxnutzer

Enthusiast
179
Wie editiert man am besten Sytemdateien unter Lollipop? Ich habe mir da schon mehrmals die Zähne dabei ausgebissen. IMHO wäre es am einfachsten in einer TWRP-Shell, aber da wird nicht alles angezeigt, was vorhanden ist.

Das ist eine allgemeine Frage, solange es nicht driftige Gründe das Custom-ROM spezifisch abzuhandeln. Ich brauche das für mehrere ROMS, insbesondere Euophoria und AOSP. Vorerst spare ich mir alles zu erwähnen, das nicht funktioniert, hängt vermutlich auch mit den Dateirechten der einzelnen Datei zusammen.
 
Ohne nennung eines genauen Ziels oder der betreffenden Dateien, kann dir keiner Helfen.

Die einzige logische Erklärung lautet: Mit Root ;)

Du musst schon erklären was du vor hast, sonst kann dir hier aus der Ferne niemand helfen und wir können nicht in deinen Kopf sehen.
 
  • Danke
Reaktionen: djxspeedy
Ok, ich habe einfach Angst eine auf die Rübe zu bekommen, weil das ja irgendwie mit meinen anderen Postings zusammenhängt. Meine Frage ist aber wirklich allgemein gemeint, weil ich so ähnliche Situationen schon manchmal hatte und immer mit ES-File-Explorer rumwursteln muss.

Ich würde gerne die System-Dateien nicht ro sondern rw am Linux-PC via ssh mounten. In der Shell am PC die Dateien ändern und danach wieder ro setzen. Wenn ich Pech habe, wie gerade eben, dann startet das Handy gar nicht mehr oder installiert wieder die alte Konfiguration und verwirft meine. Eben war mein Problem, dass nach der Änderung die Datei die falschen Rechte hatte (bcmdhd.cal als Beispiel) Sind solche Änderungen also extrem dateispezifisch? Wenn das Dateisystem ro ist, sollte es dann nicht egal sein, wenn die Datei rw ist? Gibt es da eine Regel wie man da am besten vorgeht oder muss man da vor der Änderung bei jeder Datei genau die Rechte notieren? Ein chmod 644 kann passen, muss aber nicht.
 
Zuletzt bearbeitet:
Dass es unter Linux nicht nur Dateirechte sondern auch die Gruppenzugehörigkeit zu beachten gilt, weißt Du ja. Auch da könnte die Ursache für so manches Problem liegen. Eine weitere Ursache kann auch sein, dass die Datei gar nicht in der Systempartition liegt, sondern in einer anderen Partition, die lediglich dorthin gemountet wird / wurde. Das betrifft häufig Teile des Brandings, aber eben auch der vom tatsächlichen OS-Anbieter (und nicht etwa von seinem "Vorlieferanten") vorgenommen "Customization". Zumindest sind das meine Wahrnehmungen im Zusammenhang mit einigen Tablets (vornehmlich solchen mit irgendwelchen MTK- oder Softwinner-Chipsätzen), aber auch beim einen oder anderen renommierten OS-Anbieter wie Motorola (z.B. beim Moto G 2013).
 
Eine weitere Ursache kann auch sein, dass die Datei gar nicht in der Systempartition liegt, sondern in einer anderen Partition, die lediglich dorthin gemountet wird / wurde.

Genau daran scheitere ich auch manchmal, dass ich eine Datei gar nicht finde, wenn man zB im TWRP-FIlemanager sucht.

Was ist eigentlich legacy?

zB

/storage/emulated/legacy/Android/data/com.estrongs.android.pop/.app_icon_back/ver/com.appgenix.biztasks_149000
./storage/emulated/legacy/Android/data/com.estrongs.android.pop/.app_icon_back/ver/com.appgenix.bizcal_208001
./storage/emulated/legacy/Android/data/com.estrongs.android.pop/.app_icon_back/com.appgenix.biztasks.png
./storage/emulated/legacy/Android/data/com.estrongs.android.pop/.app_icon_back/com.appgenix.bizcal.png
./storage/emulated/legacy/.estrongs/.app_icon_back/com.appgenix.biztasks.png
./storage/emulated/legacy/.estrongs/.app_icon_back/com.appgenix.bizcal.png
./storage/emulated/legacy/.estrongs/.app_icon_back/ver/com.appgenix.biztasks_149000
./storage/emulated/legacy/.estrongs/.app_icon_back/ver/com.appgenix.bizcal_208001

./storage/emulated/0/Android/data/com.estrongs.android.pop/.app_icon_back/ver/com.appgenix.biztasks_149000
./storage/emulated/0/Android/data/com.estrongs.android.pop/.app_icon_back/ver/com.appgenix.bizcal_208001
./storage/emulated/0/Android/data/com.estrongs.android.pop/.app_icon_back/com.appgenix.biztasks.png
./storage/emulated/0/Android/data/com.estrongs.android.pop/.app_icon_back/com.appgenix.bizcal.png
./storage/emulated/0/.estrongs/.app_icon_back/com.appgenix.biztasks.png
./storage/emulated/0/.estrongs/.app_icon_back/com.appgenix.bizcal.png
./storage/emulated/0/.estrongs/.app_icon_back/ver/com.appgenix.biztasks_149000
./storage/emulated/0/.estrongs/.app_icon_back/ver/com.appgenix.bizcal_208001

Das ist offensichtlich doppelt.
 
Bei "emulated" bzw. "legacy" geht's darum, ob das eine reale bzw. virtuelle Speicherkarte ist, aber auch um die von vielen Apps erwarteten Pfade für den Zugriff auf diese Datenträger. Nur, was willst Du dort machen? :confused: Da geht's ja nicht um die Systempartition.
 
War nur eine Frage zum besseren Verständnis. Letztlich wollte ich nur einen symbolischen Link auf ein Verzeichnis erstellen, weil das Stock ROM andere Pfade hat als das Custom ROM, musste aber aufgeben, mein symbolischer Link war nach jedem Neustart weg. Das ist aber erledigt, weil ich das Stock ROM mittlerweile auch als unbrauchbar finde. Im Augenblick habe ich kein echtes Problem, würde aber gerne ein bisschen schlauer werden, was ich tun muss, wenn ich was verändern will.

Man könnte ja als Beispiel die Änderung von bcmdhd.cal (am Handy) in einer Linux-Shell mit vi nehmen. Könnte ja sein, dass ich wieder einmal die originale MAC-Adresse eintragen möchte und nciht die Fantasie-MAC des Custom ROMs verwenden möchte.

Also welche Schritte sind da notwendig? Am Handy ist SSHelper installiert. Ich bin als in einer Konsole am Handy und nun? Wie (mit welchen Optionen) mountet man korrekt rw?
 
Ich würde es mit
Code:
mount -o rw,remount /system
versuchen, eine Root-Shell vorausgesetzt. Allerdings gibt es bei manchen Herstellern Mechanismen, die trotz Root-Rechten, Veränderungen in der System-Partition im laufendem Betrieb verhindern (z.B. S-ON bei HTC).
 
Meiner Erfahrung nach muss man sudo vor mount setzen, auch wenn man sich per ssh root@IP verbindet und auch dann kann das noch nicht reichen.

Allerdings gibt es bei manchen Herstellern Mechanismen, die trotz Root-Rechten, Veränderungen in der System-Partition im laufendem Betrieb verhindern

Das wird es vielleicht sein mit dem ich kämpfe, wobei ich nicht verstanden habe, warum es mit ES Dateiexplorer im Root-Modus möglich ist zu schreiben. Vielleicht erklärt SSHelper : User Feedback Page das Rechte-Problem, das von Google beabsichtigt ist und nicht nur externe Medien betrifft, sondern auch das System.

The Android ACTION_OPEN_DOCUMENT_TREE method (and other similar approaches) will only work in a Java program written specifically for Android, but because it's an Android-specific action, it doesn't work with normal native-code Linux tools
 
Also ich kann nicht für SSHelper sprechen, aber mit einer ADB-Shell und installierter Busybox funktioniert der Befehl bei mir wunderbar (und ja, von mir aus auch vorher noch mit "su" eine Root-Shell anfordern), aber auch das ließe sich in einem Befehl skripten.

EDIT: Habs eben extra mit SSHelper probiert. Klappt dort auch bei mir. Natürlich mit "su" vorher eine Root-Shell anfordern. "sudo" gibt es auf dem Android (bei mir) nicht.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: linuxnutzer
Danke, ich schaue mir das dann an. Du kannst mit SSHelper zB bei /system/etc/wifi/bcmdhd.cal die MAC-Adresse mit vi ändern und nach dem nächsten Neustart ist die geänderte Mac-Adresse vorhanden, wenn es mit cat /system/etc/wifi/bcmdhd.cal abfragst? Bei mir hat es nicht funktioniert, vermutlich weil ich kein "chmod 644" danach ausgeführt habe.

Schaffst du es auch den Mountpoint zu verlinken,

also etwa in dieser Richtung:

ln -s /storage/external_sd /storage/sdcard1
 
1) Die Datei bcmdhd.cal ist bei mir nicht vorhanden (Nexus 4, derzeit mit Marshmallow - bin sicher, dass sie auch bei Lollipop bzw. Kitkat nicht da war)
2) Hab zwar keine externe SD-Karte, aber einen symbolischen Link kann ich anlegen. Allerdings ist die Root-Partition nicht gleich der System-Partition bei mir. Auch gibt es nochmal eine extra /storage-Partition unter der sich die interne, emulierte SD-Karte befindet.

Code:
lrwxrwxrwx root     root              2015-10-11 19:42 sdcard -> /storage/self/primary
lrwxrwxrwx root     root              2015-11-09 21:12 sdcard1 -> /storage/self/primary/
(die 2. Zeile ist der von mir angelegte Link)
 
  • Danke
Reaktionen: linuxnutzer

Ähnliche Themen

M
Antworten
0
Aufrufe
1.073
mymomo
M
C
Antworten
1
Aufrufe
2.123
blackdesire1412
B
Zurück
Oben Unten