As is well known, and the cloud topics mentioned, yesterday there was a little y2k. Owners of official devices are not particularly worried about anything - updates for that and updates.
But what do happy owners of overseas pipes, for which the words (untethered jailbreak) and unlock (unlock) - not just words?
In fact, not so much - you need to update tzdata directly in the system and in ICU.
Warning: what you do with your device, you do at your own peril and risk.How to update the timezone tables themselves, what it is and where to get it is already written
in this topic , so we further consider that the device has ssh and has already successfully said something like:
wget -O - www.mafet.ru/zoneinfo_2011k.tgz | tar xzf - -C /
However, only UNIX utilities work directly with tzdata, and the beautiful SpringBoard (this service is responsible for drawing the clock) uses ICU - International Components for Unicode (international unicode components) for time conversion. And for independence, this package includes its own copy of tzdata in a slightly different format. It was precisely because of this duplication of data that many thought that the timezone update did not work - the date displayed the correct time, and the clock still showed as before.
The icu data is in the traditional / usr / share / icu / icudt46l.dat (by the file name - in iOS 4.3.3 icu 4.6 is used under the little endian architecture). Over him and we will conjure, after having dragged off on the computer:
scp root@...:/usr/share/icu/icudt46l.dat ~
(it is assumed that there are workers and not sleeping wifi and sshd on the phone)
')
Next, we need the icu4c package, which you can take
on the icu-project website and update the timezone
as 4 files from here .
Put in the container new versions of time zones:
cd ~
icupkg -a zoneinfo64.res icudt46l.dat
icupkg -a metaZones.res icudt46l.dat
icupkg -a timezoneTypes.res icudt46l.dat
icupkg -a windowsZones.res icudt46l.dat
and the patched file back to the phone:
scp icudt46l.dat root@...:/usr/share/icu/icudt46l.dat.new
The finish line - it remains only to replace icu. Pre-restart the phone so that there are no downloaded applications in memory.
ssh root@_
cd /usr/share/icu/
launchctl stop com.apple.SpringBoard
mv icudt46l.dat icudt46l.dat.bak
mv icudt46l.dat.new icudt46l.dat
launchctl stop com.apple.SpringBoard
It is advisable not to terminate the ssh session until you are sure that the SpringBoard is alive after this manipulation, in order to be able to change the file back. The author took the substitution from the author only at the second attempt.
Tested on iPhone4 with iOS 4.3.3 (the freshest with an untethered jailbreak at the moment), theoretically, the method will also fit other versions of the system, accurate to ICU version and the applied patch (which lie
side by side )
UPD : For ios 4.3.3, I got
this icudt46l.dat , in theory, the same version should be used in a fresh Lion
For ios 3 they say
icudt40l.dat is suitable from snow leopard,
For ios 4.1 -
icudt44l.dat