Manuell laden eine SD-Karte von adb shell in android

? Merc @ | Original: StackOverFlow
---

Ich habe ein Android 4.1 Telefon ( Lenovo 820) . Nach einigen Veränderungen auf die Partitionierung der internen SD- RAM (was geändert ausgerichtet, wird das Telefon nicht mehr montieren Sie den externen SD-Karte. Ich bin gut -ish auf Linux, aber ich habe nie die Android Schale vor heute zu sehen .

Ich würde gerne, um die Schritte zu wissen:

Get the list of available devices representing SD cards Manually mount the SD card -- the mount command won't work as it says can't read /etc/fstab -- how do you mount things? Get the SDcard to mount at boot time

Meine /etc/system/vold.fstab hat :

dev_mount sdcard /storage/sdcard0 emmc@fat /devices/platform/goldfish_mmc.0 /devices/platform/mtk-msdc.0/mmc_host
dev_mount sdcard2 /storage/sdcard1 auto /devices/platform/goldfish_mmc.1 /devices/platform/mtk-msdc.1/mmc_host

Mount is now:

rootfs on / type rootfs (ro,relatime)
tmpfs on /dev type tmpfs (rw,nosuid,relatime,mode=755)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
none on /acct type cgroup (rw,relatime,cpuacct)
tmpfs on /mnt/secure type tmpfs (rw,relatime,mode=700)
tmpfs on /mnt/asec type tmpfs (rw,relatime,mode=755,gid=1000)
tmpfs on /mnt/obb type tmpfs (rw,relatime,mode=755,gid=1000)
none on /dev/cpuctl type cgroup (rw,relatime,cpu)
/emmc@android on /system type ext4 (ro,relatime,nobarrier,noauto_da_alloc,commit=1)
/emmc@usrdata on /data type ext4 (rw,nosuid,nodev,noatime,nodiratime,discard,nobarrier,noauto_da_alloc)
/emmc@cache on /cache type ext4 (rw,nosuid,nodev,noatime,nodiratime,discard,nobarrier,noauto_da_alloc)
/emmc@protect_f on /protect_f type ext4 (rw,nosuid,nodev,noatime,nodelalloc,noauto_da_alloc,commit=1,data=ordered)
/emmc@protect_s on /protect_s type ext4 (rw,nosuid,nodev,noatime,nodelalloc,noauto_da_alloc,commit=1,data=ordered)
---

Top 5 Antwort

1Jarmez @

Ich kann nicht glauben, niemand hat, Sie in 2 Monaten reagiert? Wow ... wie locker !

Wenn Sie feststellen, dass Sie einen unsicheren Kernel es nicht das Ende der Welt nicht ausgeführt, es erfordert nur ein wenig mehr Arbeit zu bekommen, was Sie wollen, was ich mit Beispielen in einem Moment zu erarbeiten.

Schauen wir uns einige Beispiele jetzt sind wir - sagen, Sie haben root-Zugriff führen, dass Sie verwendet ein Exploit auf dem Gerät aber gesichert Kernel noch beachten gesichert Kernel = ro.debugable=0 in Ihrem System default.prop Datei ( beim Systemstart generiert und nicht gefunden oder in den meisten Firmware-Pakete entfernt ) . Wenn Sie erlauben, adb, um Root-Zugriff haben Sie gehen zu müssen, um diese Datei zu ändern und insbesondere die Linie, die ich oben erwähnt wollen . Es können auch andere Anforderungen, so dass Sie sollten in das, was das Gerät muss zB aussehen Das Galaxy Tab ich im Moment Reparatur älter ist, so nutzt Massenspeicher anstelle von Medienübertragungsprotokoll, so muss ich sagen, adb, um die Verbindung geöffnet und solide ( kein Timeout und Disconnect) zu halten, wenn mit dem Gerät beschäftigt ; dies geschieht durch die default.prop Datei als auch durchgeführt werden. Die Schwierigkeit kommt, wenn Sie diese Datei ändern möchten ; die meisten Menschen dekompilieren den Kernel und die RAM-Disk und bearbeiten Sie sie direkt und neu kompilieren und dann reflash sie auf das Gerät vor allem, weil adb offensichtlich keinen Root-Zugang im Moment. Sie können die Datei aus dem System wie so ziehen :

adb pull default.prop default.prop

( Das ist, wenn Sie auf Ihrem PC -Distribution -Umgebung Pfad adb haben )

Dies wird die gerade Ihnen zu bringen, ist nur das Problem, wenn Sie es nach der Änderung es ziemlich schwierig sein kann zurückgestellt werden soll. Verschiedene Lösungen sind dabei, ich höre eine Menge schob es auf SD-Karte oder /emmc/storage/sdcard0/default.prop /tmp/default.prop und dann Sie verlangen als " Superuser " auf dem Gerät mit so etwas wie Terminal-Emulator, Skript-Manager oder Root -Explorer, um die Datei wieder in Kraft gesetzt und ihm die richtigen Berechtigungen .

Eingabe adb remount auf einem Gerät mit sicheren Kernel ermöglicht es Ihnen, das gesamte System als read-write mounten und Sie, wie Sie tun können, wenden Sie sich bitte . Wenn unsicher, obwohl Sie können am Ende so etwas wie zu tun

adb root
remount

oder Sie könnten am Ende fest, dass Ihre gesamte Konsole hat keine Superuser- Rechte, was so überhaupt, so würden Sie zu adb shell in das Gerät Shell erforderlich sein (wo sie oder man hat Superuser- Rechte ) und dann die Ausführung der Befehle, die Sie ausprobieren möchten .

adb shell
su
mount -o rw /system
remount /system

Ich habe vor kurzem entdeckt, dass Sie das gleiche Niveau der Zugang über eine einzige Zeile an der adb Konsole und Einzel Return-Taste wie so zu erhalten :

adb shell su -c mount -o rw,remount /system

Dieser übergibt die Argumente in einzelnen String adb shell -> Superuser-Zugriff -> Befehl übergeben -> Montage als read-write -> remount Befehl -> auf die Systempartition .

Sie könnten, wenn Sie möchten verwenden Sie den obigen Befehl an Superuser- Rechte von der Konsole und Echo Saiten in die default.prop Datei ohne die Notwendigkeit von Dekompilierung des Kernels zu erhalten.

In meinem Fall habe nur wiederholt die gleichen Befehle ein paar Mal und überschrieb die default.prop mit dem gleichen Inhalt nur Anpassung bestimmter Variablen nach meinem Geschmack etwa so: beachten Sie die erste Zeile verwendet nur 1 > so dass diese effektiv wischt oder überschreibt die default.prop Datei, damit der Rest der Zeilen müssen auch folgen . Ich benutze 2> >> wie denn dies hängt der folgenden Zeile der Datei.

adb shell su -c echo ro.secure=1>default.prop
adb shell su -c echo ro.allow.mock.location=0>>default.prop
adb shell su -c echo ro.debuggable=1>>default.prop
adb shell su -c echo persist.sys.usb.config=mass_storage,adb>>default.prop
adb shell su -c echo persist.service.adb.enable=0>>default.prop

Dies ist ziemlich schnell und effektiv für 4 oder 5 Zeilen Code, aber dies ist nicht praktisch, wenn man einen großen Überschreibungs Datei mit vielen Linien und Test werden . Vielleicht möchten Sie in Dinge wie grep mit Looping- Funktionen in einem Bash-Skript auf bestimmte Zeilen des großen Text / script / config -Datei filtern aussehen, aber für dieses Beispiel und wahrscheinlich für Ihr System vold -Datei sollte ausreichen.

Ich denke, das sollte genug sein, um (entschuldigen Sie das Wortspiel) ARM Ihnen genügend Informationen gefährlich sein :) In diesem Sinne, stellen Sie bitte sicher, dass Sie eine Sicherungskopie Ihres Geräts erhalten haben, bevor Sie gehen auf, mit dem System. Sie sind sehr ähnlich wie Linux, aber sie sind auch sehr verschieden auch! Beachten Sie diese Warnung, sollten Sie eine Sicherungskopie Ihrer EFS PARTITION SOFORT !! Efs enthält die Geräte IMEI-Nummer und das ist etwas, das Sie wirklich nicht wollen, dass beschädigte oder verloren . Ich habe aus erster Hand, was passieren kann, zu sehen ; Sie brauchen noch nicht einmal, um die EFS -Partition durch Zufall nennen, es zu brechen .... Sie brauchen nur eine Fehler fordern einen expliziten Pfad auf die falsche Partition und es kann Ihre IMEI auszulöschen !