PDA-Testseite
Pdflatex Debian
Webvisitenkarte Hans-Jörg Weniger
Vti

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.

vergrößern - links klick


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