Motorola A780 CG33 24.02.2008
Benötigte Kenntnisse Telnet und Flashkit. Threesearch hat veränderte Code Groups herausgebracht. Hier wird gezeigt was er gemacht hat und wie man selber sich eine modifizierte cg33 anlegt und auf das Telefon spielt. Die Code Group 33 befindet sich auf mtd5 (root).1. cramfs erstellen und verändern
Zuerst muss der Flashspeicher des Motorola A780 ausgelesen werden und ein Backup erstellt werden.Dafür ist eine Minirootumgebung notwendig, die im flashkit enthalten ist.
- Die rwflash.lin ausführen diese lädt die rwflash.o das kann ein bischen dauern (das Usbkabel darf nicht angeschlossen sein). Aus diesem Grund wird gewartet bis 30 sec. nachdem sich der Bildschirm ausgeschaltet hat.
- Jetzt wird eine Telnetverbindung mit der acmattach.lin aufgebaut.
- als root einloggen
cat /proc/rwflash_status
ist der Status "unlocked", dann ist der flashspeicher beschreibbar. Wenn nicht muss von vorne begonnen werden.
cd /mmc/mmca1/flashkit ./start.sh
das Skript wird die Applikationen beenden und den miniroot starten, somit wird auch die Telnetverbindung unterbrochen.
- telnet erneut starten(nicht das Kabel ziehn), aber diesmal über den port 10000 "telnet [IpPhone] [port]"
- als root einloggen
cat /proc/mtd
(zeigt die Verschiedenen Flashimages. /dev/mtd5 ist das root Verzeichnis)
Nun wird das image mit dem dd Befehl auf die Speicherkarte kopiert.
- dd if=/dev/mtd5 of=/mmc/mmca1/root.cramfs
- warten bis die Prozedure abgeschlossen ist, das USBkabel ziehen und die Batterie aus dem Telefon nehmen und neustarten.

Die erstellten cramfs kann man unter linux mounten und sich in Ruhe anschauen. Verändern kann man sie nicht da sie schreibgeschützt sind. Für das Editieren müssen die Datein gepackt und entpackt werden. Dafür die Datei einfach mit dem USBspeicherkarten modus kopieren.
Voraussetzung: Das Datei System muss vom Kernel unterstützt werden.
File system --> Miscellaneous filesystems:
(*) Compressed ROM file system support (cramfs)
mkdir /mnt/a780root mount setup.cramfs /mnt/a780root -t cramfs -o loop tar zcvf a7root.tar.gz /mnt/a780root mkdir /modroot cd modroot tar zxvf /a7root.tar.gz
Jetzt kann man die extrahierten Datein modifizieren. Anschließend muss wieder eine cramf Datei daraus erstellt werden. Die cramf Datei muss < 25mb sein.
mkfs.cramfs a780root modroot.cramfs
Die neue Datei auf die Speicherkarte des Telefons kopieren. Das Kabel ziehen und den USB-Modus auf Modem stellen.
- Die rwflash.lin ausführen diese lädt die rwflash.o das kann ein bischen dauern (das usbkabel darf nicht angeschlossen sein). Aus diesem Grund wird gewartet bis 30 sec. nachdem sich der Bildschirm ausgeschaltet hat.
- Jetzt wird eine Telnetverbindung mit der acmattach.lin aufgebaut.
- als root einloggen
cat /proc/rwflash_status
ist der Status "unlocked", dann ist der Flashspeicher beschreibbar. Wenn nicht muss von vorne begonnen werden.
cd /mmc/mmca1/flashkit ./start.sh
das Skript wird die Applikationen beenden und den miniroot starten, somit wird auch die Telnetverbindung unterbrochen.
- telnet erneut starten(nicht das Kabel ziehn), aber diesmal über den port 10000 "telnet [IpPhone] [port]"
- als root einloggen
cd /mmc/mmca1/flashkit flashcp -v /mmc/mmca1/modroot.cramfs /dev/mtd5
Dieser Fehler tritt auf, ist aber nicht zu beachten.
Erasing blocks: 191/191 (100%) Writing data: 24404k/24404k (100%) Verifying data: 900k/24404k (3%)File does not seem to match flash data. First mismatch at 0x000de800-0x000e1000
- warten bis die Prozedure abgeschlossen ist, das Usbkabel ziehen und die Batterie aus dem Telefon nehmen, neustarten und sich freuen.
2. Ein Startup-Verzeichnis erstellen
In das Verzeichnis wechseln:etc/rc.d/rc2.d
Jetzt könnte man eine ausführbare Datei anlegen. Wichtig dabei ist, dass sie mit einem "Sxx" beginnt.
Um Speicher einzusparen wird ein Symlink erstellt auf ein Startscript S80startup.
ln -s /mmc/mmca1/.system/rc2.d/S80startup S80startup
Bei diesem Beispiel liegt das Startupscript auf der Speicherkarte.
Inhalt der S80startup
#!/bin/sh
# Startupverzeichnis-Script
if [ -d /mmc/mmca1/.system/startup ]; then
SCRIPTS=$(ls /mmc/mmca1/.system/startup/)
for SCRIPT in $SCRIPTS; do
"/mmc/mmca1/.system/startup/$SCRIPT"
done
else
fi
Der eigentliche Startupordner steht im Startupscript. In diesem Beispiel auf der Speicherkarte in ".system/startup". In diesem Verzeichnis können dann *.lin Scripte hineinkopiert werden (z.B. die acmattach.lin).
Die Datein werden nach dem nummerisch-alphabetischen Prinzip abgearbeitet.
3. Ein Startup-Sound einbinden
Für den Startupsound muss erneut die S80startup editiert werden. Die Zeilen müssen vor dem Startupverzeichnis-Script stehen.
# startup sound script
rm /tmp/startuptone.log
while [ ! -f /tmp/startuptone.log ]; do
ps -ef > /tmp/psaux
if grep "soundmanager" /tmp/psaux; then
touch /tmp/startuptone.log
else
sleep 1s
fi
done
rm /tmp/psaux
/mmc/mmca1/.system/etc/startuptone > /tmp/startuptone.log &
Die Zeile "/mmc/mmca1/.system/etc/startuptone > /tmp/startuptone.log &" verweißt auf das startuptone Script.In diesem Beispiel lieg es auf der Speicherkarte. Man kann es aber auch in das cramfs-image einbinden. Also auf der Speicherkarte eine Datei erstellen "startuptone" und folgendes hineinfügen.
#!/bin/bash
# startuptone script
export QTDIR=/usr/lib/ezx
if [ -f /diska/MyAudio/startup.wav ]; then
/usr/SYSqtapp/phone/alertprocess -playvol 10 -playfile /diska/MyAudio/startup.wav
else
if [ -f /diska/MyAudio/startup.mp3 ]; then
/usr/SYSqtapp/phone/alertprocess -playvol 10 -playfile /diska/MyAudio/startup.mp3
fi
fi
Der eigentliche Sound, der geladen wird befindet sich demnach in "/diska/MyAudio/startup.wav"4. Das Root und EZX Passwort ändern
In der Datei /etc/passwd werden die Passwörter gespeichert.root::0:0:root:/root:/bin/bash
wäre die Zeile für den Root. Nach dem ersten Doppelpunkt folgt das Passwort. Hier ist keins gesetzt.
Nun nimmt man von einem Linuxrechner (Debian/etch test Rechner) aus der Datei /etc/shadow das Passwort was man haben möchte.
Encrypted sieht das Passwort irgendwie so aus:
$1NGzrd.GRDChr$QsdNC32dSEgeE54FVjU
Dies schreibt man dann in die /etc/passwd vom Telefon.
root:$1NGzrd.GRDChr$QsdNC32dSEgeE54FVjU:0:0:root:/root:/bin/bash
Fertig.
Weitere Änderung die erfolgreich Durchgeführt wurden.
Für den Root:
- dircolors
- history
- SSH client support integriert
- SCP command working
- Midnight Commander
- lots of bins


