Ergebnis 1 bis 5 von 5
-
- 30.11.2010, 00:25
- #1
Ich glaub ich hab es rausgefunden woran der "TimeBug" liegt. ABER - ich denke das liegt an HTC da was zu machen. So wie das aussieht kann man da nicht wirklich was dagegen machen.
Mal zu den Fakten:
Verantwortlich für alles was am und im Handy passiert ist der sogenannte RILDRIVER (rilphone.dll). Unter Windows 5.x war das Ding auch als rilgsm.dll bekannt.
RIL (Radio Interface Layer) ist dafür zuständig, dass die ganze Hardware mit dem Betriebssystem zusammenarbeitet, deswegen auch Layer. Um es mal einfacher zu erklären, hätten wir ein LINUX Betriebssystem würde es sich hier um den KERNEL handeln. Um es mal ganz abstrakt zu definieren.
Klar soweit? Weiter im Text...
In Windows Mobile ist es nicht notwendig, dass man mit sogenannten TZI Informationen arbeitet. TZI (TimeZoneInformations) werden eigentlich über API Calls der Betriebssystems bzw. über das Framework gezogen. Der RIL driver oder Layer sorgt durch NITZ (Network Identity and Time Zone) dass alle Informationen entsprechend an das OS weitergeleitet werden. Vorausgesetzt - er darf das auch oder besser, wie im HD2 Fall, er wird nicht daran gehindert.
The GetSystemTime() function and the GetSystemTimeAsFileTime() function obtain the current UTC time in a SYSTEMTIME structure or in a FILETIME structure. The GetLocalTime() function obtains the current local time in a SYSTEMTIME structure. The GetTimeZoneInformation() function obtains a TIME_ZONE_INFORMATION
BITTE NICHT NACHMACHEN WENN JEMAND KEINE GROSSE ERFAHRUNG MIT WINDOWS MOBILE HAT:
So, würde mal sagen wir schalten den RIL-DRIVER mal ab. Keine Sorge, kann man auch wieder rückgängig machen.
[HKEY_LOCAL_MACHINE\Drivers\BuildIn\RIL]
DLL="rilphone.dll"
Aus dem RILPHONE.DLL einfach mal eine rilgsm.dll machenund dann Handy neu starten. Das Handy kommt hoch, aber ALLE Funktionen sind deaktivert. Kein Handy oder so ist möglich, nix. Logisch? Oder?
ABER - achtet mal auf die Zeit. Es ist genau die richtige Zeit eingestellt, welche gerade vor Ort herrscht. ERGO? Die Zeit im RTC (Real Time Clock oder auch BIOS) passt problemlos.
WARUM DAS NUN?
Tja, jetzt kommt das eigentliche Problem. HTC glaubt anscheinend, das WINDOWS API's da sind um sie zu ignorieren. Gutes OS, tolle Tools, aber API's?? Nööö - brauchts ned, wir programieren unseren eigenen Müll. Wäre das gleiche wenn jemand ein Program schreibt mit 200 Zeilen Code um irgendwas auszudrucken, anstelle die Windows API mir 2 Zeilen "send to print" verwendet.
Soweit ich das jetzt Tracken konnte kommt der "Verbrecher" aus Neuseeland.Tja, nix geht spurlos an mir vorbei *gg* Allerdings, wir wissen, Disassembler und Co. sind ja strafbar, deswegen darf man für solche Sachen den IDA32 nicht verwenden *gg*
Egal, zurück zum Thema:
Was schreibt (!) Microsoft zum Thema RILDRIVER und Zeitsyncronisation in der WiMo Doku?
Your code must not call SetSystemTime or SetLocalTime between the time that the RIL driver sends a RIL_NOTIFY_NITZ notification and the Windows Mobile operating system (OS) processes the notification. This could cause a race condition between the time requests and the RIL driver's NITZ information might not be processed.
Blöd wenn man 'n Anfänger programieren läßt, nur damit es billiger wird und der Aktienwert hoch bleibt... *tz* *tz* *tz* - böses HTC Developer Team!
ABER man kann ja jetzt auch fragen, liegt denn das nicht an Windows Mobile? Kurze Antwort: Nö!
The RIL driver layer is implemented as a device driver that is managed by the Device Manager (Device.exe). The RIL driver services system requests for radio functionality, including voice, data, and Short Message Service (SMS). The RIL driver also notifies the system of changes in the radio state, such as coverage, signal strength, and incoming calls.
The RIL proxy is provided by Microsoft. You have to write a customized RIL driver to work with your radio hardware. Microsoft provides a sample implementation of a RIL driver that works with several Global System for Mobile Communication (GSM) radios.
Weil HTC leider diesen CALL nicht zum RICHTIGEN ZEITPUNKT aufruft, verbiegt sich die Zeit auf dem Gerät auch nur, weil die HTC Oberfläche geladen wird. Der widerum wird nicht bzw. nicht richtig an die RTC übergeben und dadurch entsteht beim booten die falsche Zeit.
Genau das ist der Punkt. Setzt sich genau über diese API Calls hinweg.
Die RTC (RealTimeClock) hat also den richtigen Wert und der Aufruf SystemTime kommt also viel zu früh, was dann diesen Bug verursacht. Dementsprechend werden TZI auch nicht richtig vom Framework erkannt, es verbiegt die Systemzeit im OS. NITZ oder genauer PTPv2 (das GSM NTP Protokoll) wird durch HTC interpretiert und somit is dann alles verbogen. Deswegen dann auch mal 2 Stunden vor oder zurück. Oder passend, dann doch wieder nicht. Allerdings können die TZI nicht gelesen werden, da die ja nicht vorhanden sind.
WER IST DER TZI EIGENTLICH?
Time Zone Informations.
Das wird eigentlich vom Framework automatisch erkannt. Na ja, theoretisch. Wenn man programieren kann, dann schon. Aber, HTC kann's in dem Fall leider nicht.
Werden also keine TZI richtig erkannt, können die mit Gewalt mitgegeben werden. Was das Gerät allerdings nicht abhält beim Booten noch immer die falsche Zeit anzuzeigen. Mit den TZI Informationen zwingt man lediglich die HTC Oberfläche die Zeit entsprechend zu "interpretieren" - nicht zu lesen.
ALSO LAUTET DIE FRAGE:
Wenn das Betriebssystem (WiMo) jetzt NITZ ausführt, und keine saubere Übergabe an HTC macht, welches ebenso NITZ ausführt, wen hält man dann nun ab es zu tun?
[HKEY_LOCAL_MACHINE\Drivers\BuildIn]
DisableSyncTime=dword:00000001
Den kannste ändern, auf dword:00000000 setzen. Egal, beim nächsten Boot ist der Wert wieder vorhanden, bzw. auf 1 gesetzt. Weiter in der Registry:
[HKEY_LOCAL_MACHINE\Drivers\BuildIn]
NITZEnable=dword:00000001
BINGO!!!! Na dann machen wir doch mal kein NITZ durch rilphone.dll:
[HKEY_LOCAL_MACHINE\Drivers\BuildIn]
NITZEnable=dword:00000000
Spiel ich jetzt noch zusätzlich die TZI Informationen in's Gerät ein - ZUUUUUUPPP! - hab ich in wenigen Sekunden die richtige Uhrzeit.
Damit haben wir auch schon den Schuldigen. HTC!
Würde der RIL Treiber richtig laufen, könnten hier die TZI auch sauber erkannt bzw. erstellt werden. ERGO, bleibt nix anderes übrig als die TZI manuell einzuspielen und HTC die Uhrzeit zu übernehmen lassen, was es ja so oder so macht.
Anbei die passende CAB Datei. Aber hey bitte - die ist noch sozusagen ungetestet. Und ich würde nun dazu mal gerne Feedback haben.
In der CAB sind die TZI und NITZDisable enthalten. Einfach einspielen, ausführen - und damit passen Uhrzeit und die Zeit beim booten SOFORT!!!
Weiter Updates fuer diesen Patch sind in Planung und die Updates dazu findet Ihr, wenn gewuenscht unter:
http://forum.xda-developers.com/showthread.php?t=849173
Gruß!
-
- 30.11.2010, 22:08
- #2
UPDATE:
Falls das fehlschlaegt und die Zeit sich dennoch aendert, bitte mal folgendes machen:
1. Alles im Geraet wieder auf automatische Zeit stellen
2. Patch installieren
3. REBOOT
4. Wetterupdate durchfuehren (bringt die aktuelle Zeit)
5. Im HD2 unter der Option Datum & Uhrzeit einfach eine komplett andere Zeitzone auswaehlen (z.B. Hawai mit GTM +8 ) und einfach liegen lassen
Spaetestens nach 2 Minuten sollte das jetzt funktionieren.
Was passiert dann wenn man das macht?
Es kann sein (!) dass im Geraet eine falsche Zeitzone bzw. falsche TZI Werte stehen
[HKEY_LOCALE_MACHINE\Time]
"TimeZoneInformations"=hex:\...bla,bla,bla...
Auf diesem Weg wird das Geraet gezwungen diese Infos neu zu schreiben und somit werden diese Werte neu und richtig eingetragen.
-
- 04.12.2010, 01:26
- #3
Update im ersten Posting. Beschreibung und Info's kommen morgen. Oder - wer's gleich wissen will:
http://forum.xda-developers.com/show...41&postcount=1
Greets!
-
- 06.12.2010, 14:14
- #4
Ersteinmal vielen, vielen Dank für deine in sich schlüssige Erklärung.
Auch ich als völlig unbeteiligter habe verstanden was du meinst und das ist schon eine Leistung!
Eine Frage habe ich trotzdem:
Warum ging die Zeitumstellung denn das Jahr davor ohne Probleme?
Mein RIL driver hat sich ja in der Zeit nicht verändert.
Gruß
MaTT
-
Mich gibt's schon länger
- 14.12.2010, 07:29
- #5
Ähnliche Themen
-
HTC Patch SMSProvider was ist das wo kommt es her
Von cab_mike im Forum HTC HD2 ProgrammeAntworten: 0Letzter Beitrag: 12.11.2010, 19:32 -
HTC HD Mini - Ringtone/ Sound Patch
Von Privacy (PiT) im Forum HTC HD MiniAntworten: 40Letzter Beitrag: 08.11.2010, 21:58 -
HTC Desire HD - FAQ
Von timsah im Forum HTC Desire HDAntworten: 0Letzter Beitrag: 26.10.2010, 14:41 -
HTC HD2: Grafik-Patch für fünffache Leistung
Von JimmyNail im Forum HTC HD2 ProgrammeAntworten: 20Letzter Beitrag: 05.03.2010, 12:24 -
HTC HD2 - 1 GHZ Patch
Von Goatrip im Forum HTC HD2 ROM UpgradeAntworten: 34Letzter Beitrag: 20.02.2010, 13:01
Pixel 10 Serie mit Problemen:...