| | #1 (permalink) |
| Erfahrener Benutzer Registriert seit: 17.01.2010
Beiträge: 233
Abgegebene Danke: 32
Erhielt 59 Danke für 32 Beiträge
| Bentötigt wird ein Milestone mit Speicherkarte, root Zugriff, funktionierendem adb und busybox (bei mir in /data/busybox). Ich empfehle vorher ein nandroid Backup und Geduld bei den Befehlen. 1) Die Datei aus dem Anhang dieses Posts entpacken und zusammen mit der ext2.ko aus dem Anhang von newtons Post auf die Speicherkarte kopieren. Apps2sd auf Milestone 2) Alle Dateien der Speicherkarte sichern (auch das nandroid-backup) Speicherkarte vorbereiten, so dass nachher in /dev/block/mmcblk0p1 eine formatierte Fat Partition ist und in /dev/block/mmcblk0p2 eine ebenfalls formatierte ext2. Wer das alleine kann, kann diesen Abschnitt überspringen, ansonsten hier eine Anleitung für die man keinen Kartenleser braucht, dafür aber Linux (oder Cygwin...) 2.1) Milestone an den PC anschliessen, mit USB Modus "Verwaltung der Speicherkarte" Speicherkarte unmounten, falls sie automatisch vom PC gemountet wurde. Ich gehe im Folgenden davon aus, dass die Speicherkarte in /dev/sdb liegt. Jetzt die Partitionen anlegen mit (am lokalen PC als root eingeben): fdisk /dev/sdb Hier meine Befehle mit kurzen Erklärungen, immer mit Enter bestätigen: (Alte Partition löschen) d (Neue Partition anlegen) n p 1 enter +7000M (so groß wird nachher die normale SD Partition, wer eine 16 GB Karte hat, kann hier natürlich einen größeren Wert eingeben) (Als FAT deklarieren) t b (Neue Linux Partition anlegen (sie belegt den Rest der Karte), da liegen nachher die apps drauf) n p 2 enter enter Bei Problemen kann man sich mit m die Befehle ausgeben lassen. Jetzt mit p die Partitionen anzeigen lassen, bei mir sieht das Ganze so aus: Dann mit w schreiben und beenden Code: Command (m for help): p Disk mmcblk0: 7948 MB, 7948206080 bytes 96 heads, 22 sectors/track, 7350 cylinders Units = cylinders of 2112 * 512 = 1081344 bytes Device Boot Start End Blocks Id System mmcblk0p1 1 7001 7393045 b Win95 FAT32 mmcblk0p2 7002 7350 368544 83 Linux Code: mkfs.msdos /dev/sdb1 mkfs.ext2 /dev/sdb2 tune2fs -c 0 /dev/sdb2 Am Milestone sollte die Speicherkarte wieder erkannt werden, ohne dass irgendwas formatiert werden muss. Die SD ist leer, und etwas kleiner als vorher (ich hab jetzt 7485MB frei). Jetzt können wir den Inhalt unserer Sicherung der SD wieder zurück spielen (auf dem PC nicht löschen, Backups sind immer gut) Das können wir aber auch später machen. 3) [Jetzt gemacht wird: Linux Partition mounten, Programme verschieben, Symlinks setzten] Ab jetzt werden alle Befehle auf dem Gerät ausgeführt. Dafür am PC mit adb auf das Milestone verbinden und Root rechte erlangen: Code: adb shell su dann einen neuen Ordner erstellen, und die Linux Partition dort hin mounten: Code: cp /sdcard/ext2.ko /data/ext2.ko insmod /data/ext2.ko mkdir /data/sdapp mount -t ext2 /dev/block/mmcblk0p2 /data/sdapp Achtung: Es kann vorkommen, dass die Apps beim ersten Kopieren aus irgendeinem Grund nicht auf der SD Karte bleiben und nach einem Neustart weg sind. Daher besser zusätzlich nochmal auf die FAT Partition der SD kopieren. Code: cp /data/app/* /data/sdapp/ mkdir /sdcard/sicherung cp /data/app/* /sdcard/sicherung rm -r /data/app Code: umount /data/sdapp mount -t ext2 /dev/block/mmcblk0p2 /data/sdapp Es kann sein, dass einige Programme auf dem Milestone crashen, das war zu erwarten. Jetzt den Symlink setzen, vorher prüfen, ob die Apps auf der SD sind: Code: ls /data/sdapp ln -s /data/sdapp /data/app chmod 644 /data/sdapp/* /data/busybox/chown -h 1000:1000 /data/app /data/busybox/chown 1000:1000 /data/sdapp/* /data/busybox/chown 1000:1000 /data/sdapp Soweit so gut, jetzt könnte man es benutzen. Wer das Milestone jetzt neu startet wird sehen, dass er bis zum Desktop kommt, da nach aber lauter Fehler sehen. Das kann man auch ausprobieren, da passiert nix. Damit alles wieder geht, müssen diese Befehle auf dem Gerät ausgeführt werden, die ab jetzt bei jedem Start ausgeführt werden müssen: Code: insmod /data/ext2.ko mount -t ext2 /dev/block/mmcblk0p2 /data/sdapp Dafür /system beschreibbar machen, mot_boot_mode umbenennen, und das das Script aus dem Anhang dieses Posts nach /system/bin kopieren (vorher natürlich auf die SD, Rechte vergeben: Code: mount -o remount,rw / /system mv /system/bin/mot_boot_mode /system/bin/mot_boot_mode.bin cp /sdcard/mot_boot_mode_script /system/bin/mot_boot_mode chmod 755 /system/bin/mot_boot_mode Die Widgets werden anfangs nicht richtig laden, und auch das Startmenü braucht etwas länger. Die fehlerhaften Widgets müssen entfernt und nochmal von Hand hinzugefügt werden, ab dann gehen sie auch beim nächsten Start. Programme können normal vom Market installiert oder gelöscht werden, sie landen auf der SD. Wenn ihr ab jetzt den USB Modus auf "Verwaltung der Speicherkarte" stellt, könnten Apps crashen. Apropos Crashen: Ein Paar Apps starten nicht mehr. Nach meinen Erfahrungen alle, die GPS und/oder Internetzugriff brauchen. Bis jetzt konnte ich das Problem bei allen Apps durch Löschen und Neuinstallieren beheben, aber vielleicht kennt jemand von euch noch einen besseren Weg. 7) Wenn alle Programme auf einmal weg sind oder nicht mehr starten keine Angst, wenn man einen normalen /data/app Ordner erstellt und die Apps wieder reinkopiert geht alles wieder. Wer will, kann auch erstmal alles von /data/app auf die SD sichern und auf den PC kopieren. Wenn das Milestone nicht mehr startet, arbeitet der Wrapper nicht richtig. Dann entweder ein nandroid-backup zurückspielen und alles nochmal machen, oder mittels ADBRecovery über adb auf das Gerät zugreifen, /system mounten, den Wrapper /system/bin/mot_boot_mode löschen und die alte Datei zürck umbenennen: mv /system/bin/mot_boot_mode.bin /system/bin/mot/boot_mode Dann startet er wieder. Ich bitte diejenigen, die die Befehle kennen und wissen was passiert, das Howto auszuprobieren und mir Feedback zu geben. Ich habe momentan nicht so viel Zeit, kann also bei Problemen nur bedingt helfen. Für diejenigen, die hier noch keinen Account haben, hier der Inhalt des Scripts aus dem Anhang: Code: #!/system/bin/sh export PATH=/system/bin:$PATH mot_boot_mode.bin insmod /data/ext2.ko mount -t ext2 /dev/block/mmcblk0p2 /data/sdapp nandroid-mobile.sh wird die apps-Partition auf der SD Karte nicht von alleine Backupen. Um diese muss man sich also selbst kümmern. Nach dem Ausführen von 'nandroid-mobile.sh --backup' kann man die apps-Partition so sichern: Code: mount /sdcard dd if=/dev/block/mmcblk0p2 of=/sdcard/apps2sd.img diese kann man normal auf den PC kopieren, so wie den nandroid-Backup Ordner auch. Das kann mehrere Minuten dauern und es muss auf der SD noch genup Platz für die apps-Partition sein, nicht nur für den dort belegten Speicher! Zum Zurückspielen erst 'nandroid-mobile.sh --restore' und dann: Code: mount /sdcard dd if=/sdcard/apps2sd.img of=/dev/block/mmcblk0p2 'if' ist das input-file und 'of' das output-file. Das Output File wird einfach überschrieben, egal was da vorher war, und egal ob da überhaupt genug Platz ist. Es ist also nicht möglich, ein apps2sd.img wiederherzustellen, wenn man nach dem Sichern die SD nochmal neu partitioniert und die Apps Partition verkleinert hat! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Teil 2 - Apps2SD wider rückgängig machen. Wer Apps2SD (zum Beispiel vor dem Update auf 2.1) wieder loswerden möchte, kann dieser Anleitung folgen. Ich gehe im Folgenden davon aus, dass Apps2SD mit den obigen Befehlen eingerichtet wurde. Wer oben von der Anleitung abgewichen ist muss auch jetzt seine Befehle anpassen. 1) Wrapper entfernen Code: adb shell su mount -o remount,rw / /system cat /system/bin/mot_boot_mode Wenn jetzt Datenmüll kommt nicht weitermachen! Code: rm /system/bin/mot_boot_mode mv /system/bin/mot_boot_mode.bin /system/bin/mot_boot_mode Code: ls -l /data/app Am Ende sollte also etwas in der Art "app -> /data/sdapp" stehen. Wenn das nicht da steht nicht weitermachen! Code: rm /data/app mkdir /data/app Code: df -h wie auf der apps-Partition (auf der SD) belegt ist. Wenn das erfüllt ist, geht es weiter, sonst müssen Programme gelöscht werden. Also weiter: Code: cp /data/sdapp/* /data/app chmod 644 /data/app/* /data/busybox/chown 1000:1000 /data/app/* /data/busybox/chown 1000:1000 /data/app Ab jetzt werden die Programme wieder vom internen Speicher geladen. Dabei kann es wieder zu Abstürzen und Widget Problemen kommen, neu Installation der betroffenen Apps behebt auch hier das Problem. Da das System nicht mehr auf den /data/sdapp-Ordner zugreift, können wir diesen der Ordnung halber löschen. Nachfolgender Befehl sollte ohne Probleme gehen, da die SD-Partition nicht mehr gemountet wird. Wenn nicht, ist möglicherweise der Wrapper noch aktiv, oder es wurden von Hand Dateien in den Ordner kopiert. Code: rmdir /data/sdapp partitionieren zu müssen, Apps2SD wieder installieren. Wer die SD wieder auf den alten Stand haben will, kopiert erst alles auf den PC und geht dann auf Einstellungen -> SD Karte -> SD-Karte entnehmen , SD-Karte formatieren. Dabei wird meiner Erfahrung nach die ursprüngliche Partitionstabelle wieder angelegt. Geändert von mojo (12.04.2010 um 23:31 Uhr) |
| | |
| Folgende Benutzer bedanken sich bei mojo für diesen Beitrag: | bemymonkey (11.07.2010), BigBoi (15.02.2010), Black-Guardian (16.02.2010), Bluebrain (15.02.2010), casula (21.03.2010), Compufreak (01.03.2010), Edzilla (17.02.2010), frichter (27.11.2010), Gambler (16.02.2010), greenberet123 (29.03.2010), Hami-1903 (03.04.2010), HTC (18.02.2010), KurrKurr (15.02.2010), mattmaso (15.02.2010), MeetAndroid (01.03.2010), Milestone (19.03.2010), nazfalas (12.04.2010), parabolon (16.02.2010), Reindl (16.02.2010), smog (19.04.2010), TheSpiritof69 (31.03.2010) |
| | #3 (permalink) |
| Erfahrener Benutzer Registriert seit: 17.01.2010
Beiträge: 233
Abgegebene Danke: 32
Erhielt 59 Danke für 32 Beiträge
|
Nicht so schnell ![]() Ich habe es selbst noch nicht lange installiert, und kann nur schwer einschätzen, ob die Programme so stabil und schnell wie vorher laufen. |
| | |
| | #4 (permalink) |
| Android-Hilfe.de Mitglied Modell: Motorola Milestone Registriert seit: 14.01.2010
Beiträge: 143
Abgegebene Danke: 9
Erhielt 50 Danke für 27 Beiträge
|
Man könnte auch anstelle die alte Partition löschen und zwei neue anlegen die bestehende mittels z.B. gnu parted (parted) verkleinern... Die Daten sollte man natürlich sicherheitshalber trotzdem woanders sichern. |
| | |
| | #5 (permalink) |
| Neuer Benutzer Registriert seit: 21.01.2010
Beiträge: 29
Abgegebene Danke: 4
Erhielt 13 Danke für 10 Beiträge
|
Gute Arbeit, sehr ausgefeiltes Tutorial. *2 Thumbs Up* Hoffentlich bekommen wir bald Feedback was Systemgeschwindigkeit und -stabilität angeht. Da ich bisher noch keinen mangelnden Speicherplatz hatte, werde ich es erst mal nicht probieren. Und mit ner Class2-Karte wird's sicher nicht schneller. |
| | |
| | #6 (permalink) |
| Erfahrener Benutzer Registriert seit: 17.01.2010
Beiträge: 233
Abgegebene Danke: 32
Erhielt 59 Danke für 32 Beiträge
|
Ursprünglich wollte ich nicht gleich alles auslagern, sondern nur einzelne .apk Dateien. Die Symlinks für einen ganzen Ordner akzeptiert das Milestone sofort, und die Programme erscheinen wieder im Startmenü/Launcher. Wenn ich Symlinks auf einzelne Dateien setze, passiert leider nichts, er ignoriert den Link einfach. |
| | |
| | #7 (permalink) |
| Android-Hilfe.de Mitglied Registriert seit: 07.02.2010
Beiträge: 139
Abgegebene Danke: 6
Erhielt 51 Danke für 20 Beiträge
|
Kannst du mir erklaeren wie ich dies hinbekomme? Code: /data/busybox/chown -h 1000:1000 /data/app /data/busybox/chown 1000:1000 /data/sdapp/* /data/busybox/chown 1000:1000 /data/sdapp |
| | |
| | #8 (permalink) |
| Erfahrener Benutzer Registriert seit: 17.01.2010
Beiträge: 233
Abgegebene Danke: 32
Erhielt 59 Danke für 32 Beiträge
|
Der Parameter geht nur mit der chown-Binary aus busybox. Falls du bereits busybox hast, kann es an dem Busybox-build liegen. Ob man die Rechte in der Form zwingend braucht, und ob der Android-eigene chown Befehl das möglicherweise doch kann kann ich nicht sicher sagen. |
| | |
| Folgender Benutzer bedankt sich bei mojo für diesen Beitrag: | Bavilo (15.02.2010) |
| | #9 (permalink) |
| Android-Hilfe.de Mitglied Registriert seit: 07.02.2010
Beiträge: 139
Abgegebene Danke: 6
Erhielt 51 Danke für 20 Beiträge
| Hab das mit dem chown schon hin bekommen, jedoch werden die apps nicht geladen (die apps in /data/sdapp erscheinen überhaupt nicht mehr...Hmm, woran könnte es liegen?)
Geändert von Bavilo (15.02.2010 um 18:21 Uhr) |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Sipdroid auf dem Milestone | bastii | Motorola Milestone Forum | 145 | 08.02.2011 14:58 |
| Apps2SD auf dem Desire (nach Root) | fubuman_05 | Root / Hacking / Modding für HTC Desire | 108 | 07.08.2010 16:40 |
| Fennec auf dem Milestone | MartinSchirr | Motorola Milestone Forum | 36 | 28.04.2010 23:16 |
| Apps2sd auf Milestone | MotoNero | Root / Hacking / Modding für Motorola Milestone | 44 | 17.04.2010 10:51 |
| Stopuhr auf dem Milestone? | Rayk | Business und Organisation | 4 | 07.02.2010 20:45 |