Einzelnen Beitrag anzeigen
Alt 16.01.2010, 17:51   #4 (permalink)
Android-Jeck
Android Guru
 
Benutzerbild von Android-Jeck

Modell: Nexus One & Galaxy S & S2

Registriert seit: 21.09.2009
Beiträge: 2.138
Abgegebene Danke: 347
Erhielt 477 Danke für 218 Beiträge
Idee AW: TUT Sammlung/Linksammlung [SPL/Goldcard/Recovery/...]

[2.0.]
ALLGEMEIN:




Aufbau eines Android Handys zum grundsätzlichen Verständnis


Hier habe ich mal eine schöne Übersicht über das Android-System gefunden (Original von Temar im Android-Developers - Android Forum & Community Forum)



Übersicht des Android Systems

Dies ist eine einfache Übersicht, die das Initialisieren des Systems auf dem T-Mobile G1 / HTC Hero beschreibt.

Veraltete Darstellung (wird aktualisiert, bis dahin aktualisierte EDITS):
SYSTEM
/\
BOOT + RECOVERY
SPL
IPL
EDIT vom 19.01. von Temar:
Zusammengefasst funktioniert die Initialisierung eines G1 also eher so:
ARM9 -> Radio -> ARM11 -> SPL -> Recovery | Boot Image


RADIO

Das Radio-Image ist in der obigen Auflistung nicht dabei, da es mit dem Android-System primär eigentlich nichts zu tun hat. Das Radio-Image ist die Firmware für WLAN, GSM, ... Wenn man so will also das Bios für das ganze Funk-Zeuchs.
Warum manche SPLs bestimmte Radio-Versionen benötigen ist unklar. Vermutlich führt der SPL eine Basis-Hardwareerkennung durch (da er ja zumindest USB initialisieren muss) und hängt sich dann beim GSM Stack auf, wenn er nicht die richtigen Antworten bekommt, aufgrund einer falschen Radio Version.
EDIT vom 19.01. von Temar:
Das Radio-Image ist übrigens nicht Android-spezifisch, sondern wird auch für die WindowsCE Geräte verwendet. Das Radio-Image erlaubt es sogar über ein Serial-Interface das G1 neu zu flashen - vorausgesetzt man hat ein entsperrtes Radio-Rom. Dadurch sollte es sogar möglich sein Geräte wieder zum Leben zu erwecken, die durch den Danger-SPL geschrottet wurden. Bisher hat das aber soweit ich weiss noch keiner probiert/geschafft.
Somit hat das Radio-Image also wesentlich wichtigere Aufgaben als bisher gedacht. Es ist eben nicht nur eine einfache Firmware für GSM/UMTS/WLAN...., sondern es ist auch für die Basisinitialisierung des G1 zuständig - es initialisiert den ARM11 und startet dann den SPL Bootloader. Das erklärt auch, warum bestimmte SPL bestimmte Radio-Versionen voraussetzen. Entweder die Offsets zum starten des SPLs sind hartkodiert oder aber das Radio kann schlicht mit dem SPL nix anfangen.


IPL

Der IPL ist am ehesten mit dem Master-Boot-Record auf dem PC zu vergleichen. Er kennt den internen Speicher des G1 und weiss wo er den SPL finden und wie er ihn ausführen kann.
EDIT vom 19.01. von Temar:
Den IPL gibt es auf dem G1 (oder allgemein dem MSM7201A) eigentlich nicht mehr. Frühere HTC Geräte hatten einen IPL weshalb ich davon ausging, dass auch das G1 einen hat. Das G1 wird aber durch das Radio-Image initialisiert - oder genauer: Innerhalb des Qualcom läd der OBL im OTP den PBL, welcher dann wiederum das Radio-Image startet.


SPL (Secondary Program Loader)

Der SPL ist am ehesten mit einem Bootmanager wie z.B. dem Grub oder dem Lilo vergleichbar. Im Gegensatz zu diesen einfachen Bootmanagern, die nur in der Lage sind Partitionen zu finden und einen Kernel zu starten, kann der SPL aber wesentlich mehr. Zum einen erlaubt er es ganze System-Images einzuspielen und zum anderen hat er bereits Zugriff auf das USB System und bietet Programmieren somit die Möglichkeit das Android-Handy mittels fastboot direkt vom PC aus zu flashen. Anhand von entsprechenden Tastenkombinationen kann der Benutzer auch den Boot-Prozess beeinflussen. So ist es möglich bei Bedarf das Recovery System zu starten indem man beim Einschalten die Home-Taste gedrückt hält. Das SPL-Menü selbst erreicht man, indem man während dem Einschalten den Kamera-Knopf gedrückt hält.

Beim flashen des SPL ist besondere Vorsicht geboten. Wie man an der Grafik erkennen kann, ist der SPL eine der ersten Instanzen die für den Boot-Prozess benötigt werden. Geht beim flashen des SPL irgendetwas schief, kann man das G1 nicht mehr retten und somit nur noch als Briefbeschwerer verwenden. Der SPL sollte deshalb nur geflasht werden, wenn es absolut nötig ist! Generell benötigt ein SPL eigentlich keine Updates.

Den SPL gibt es mittlerweile in mehreren Ausführungen:
• Standard SPL
• Developer SPL
• HardSPL
• Haykuro SPL

Der Standard SPL ist auf allen Consumer G1 installiert und bietet nahezu keinerlei Möglichkeiten das System zu verändern. Es ist allerdings möglich Betriebssystem Images einzuspielen, wenn der SPL eine Goldcard Speicherkarte entdeckt. Eine Goldcard ist eine spezielle präparierte SD-Karte, bei der die Seriennummer des Datenträgers mit einem speziellen Algorithmus codiert und in den Bootrecord geschrieben wird. Befindet sich eine solche Speicherkarte im G1, wird das Einspielen von signierten Images freigeschaltet.

Der Developer SPL ist auf allen Entwickler-G1 vorinstalliert. Er erlaubt das flashen von Images über die USB Schnittstelle (mittels fastboot) und auch das Einspielen von beliebigen Images ohne Goldcard.

Der HardSPL ist eine modifizierte Version des Developer-SPL und bietet zusätzlich die Möglichkeit Backups des Systems auf Datenträgerebene anzulegen. Es werden also einfach Disk Dumps der Betriebssystempartitionen auf die Speicherkarte geschrieben.

Der Haykuro SPL ist wiederum eine modifizierte Version des HardSPL. Er verändert die Partitionierung des G1, so dass mehr Speicher für das System-Image zur Verfügung steht. Dies wird durch das Verkleinern der Cache-Partition erreicht. Der Haykuro SPL wird benötigt, wenn man eines der Hero-Roms verwenden möchte.


Recovery

Das Recovery System wird gestartet, wenn während dem Einschalten die Home-Taste gedrückt wird. Es handelt sich hierbei um ein minimales Linux-System, welches es dem Benutzer erlaubt das Handy in den Werkszustand zu versetzen (Wipe) oder aber neue Updates einspielen. Updates können nur eingespielt werden, wenn sie vom Hersteller signiert wurden. Möchte man Community-Roms verwenden, muss das Recovery-Image durch eine Version ausgetauscht werden, welche auch Images flashen kann, die mit Test-Keys signiert wurden.


Boot

Das Boot-Image enthält den Kernel und das initrd Image. Es wird vom SPL standardmäßig gestartet und enthält alle nötigen Treiber um die Plattform zu initialisieren. Sobald der Kernel gebootet hat und das initrd Image ausgeführt wurde, wird die Kontrolle an das System übergeben.


System

Das Android-System selbst, besteht aus der Dalvik Java Virtual Machine, allen Basis-Applikationen und allen Diensten, die z.B. für WLAN, Bluetooth, usw benötigt werden. Das System selbst ist read-only gemountet, so dass bei einem Wipe nur sämtliche Userdaten gelöscht werden müssen. Diese Userdaten befinden sich auf einer gesonderten Partition, die auf dem Bild oben nicht extra angegeben wurde.

Mehr und ausführlichere INFOS gibt´s hier:
New [Recovery] [14-Nov-2009] RA-dream-v1.5.2
__________________
蘋果過敏 / التفاح الحساسية / Apple алергия / Apple alèji / עפּל אַלערגיע ;-)

Geändert von Android-Jeck (12.02.2010 um 20:00 Uhr) Grund: Durchnummeriert
Android-Jeck ist offline   Mit Zitat antworten
Folgende Benutzer bedanken sich bei Android-Jeck für diesen Beitrag:
=DWD=Speederxx (30.05.2011), Android bum (19.08.2010), anime (30.12.2011), Dark_Rudolf (20.01.2010), FraddyG (25.03.2010), jfish (27.04.2010), lomycess (11.03.2010), Mobile surfer (06.04.2010), ThE_GaMeR (03.02.2010), ThRiLL_KiLL (05.04.2010), toast (09.03.2010)