2015-10-30 17 views
13

मैं एंड्रॉयड 4.4.3 अपने उपकरण पर चलने हूँ और निश्चित रूप से यह समय क्षेत्रों पुराना हो गया है और मैं/प्रणाली/usr/share/zoneinfo में tzdata अद्यतन करने के लिए कोशिश कर रहा हूँ। हालांकि फ़ाइल को तुरंत बदलना समय क्षेत्र को अपडेट नहीं करता है।अद्यतन एंड्रॉयड समय क्षेत्र डेटा

आईसीयू उस समय क्षेत्र डेटा की अपनी प्रतिलिपि रखता है जिसे हमें प्रतिस्थापित करना है (Google एओएसपी टीम के अनुसार)। अद्यतन डेटा फ़ाइलों Update for ICU और Update for bionic

हालांकि

हैं, मैं जब मैं निर्माण और icu4c पुस्तकालयों की जगह (और libicuuc.so libicui18n.so) और icudt53l.dat साथ icudt51l.dat की जगह, प्रणाली आईसीयू प्रारंभ नहीं कर सकते हैं ।

मैंने icudt53l.dat को अनपॅक करने और पुरानी icudt51l.dat के अंदर अपनी * .res फ़ाइलों को धक्का देने का प्रयास किया है, लेकिन यह भी असफल रहा क्योंकि आईसीयूपीकेजी उपकरण उन्हें पैक करने से पहले res फ़ाइल के चेकसम की जांच करता है।

मैं XDA link to update tzdata अनुसरण किया लेकिन उस दृष्टिकोण में विफल रहा है, क्योंकि वे zoneinfo.dat, zoneinfo.idx, tzdata का उपयोग कर zoneinfo.version फ़ाइलों को बनाने के। लेकिन सिस्टम में/सिस्टम में ही tzdata के लिए लग रहा है/usr/share/zoneinfo

मैं कर रहा हूँ एक समय क्षेत्र या आईसीयू विशेषज्ञ, क्या आप मुझे बात नहीं कर सका है, तो गलत दिशा और मदद में देख रहा हूँ।

+0

क्या आप ओएस, आईसीयू, या दोनों को अपडेट करने के बारे में पूछ रहे हैं? –

+0

मैं केवल आईसीयू अपडेट करना चाहता हूं, लेकिन यदि ओएस के किसी अन्य घटक आईसीयू संस्करण पर निर्भर हैं, तो मुझे ओएस अपडेट करने पर कोई फर्क नहीं पड़ता। –

+0

आईसीयू उपयोगकर्ता मार्गदर्शिका से [टाइम ज़ोन डेटा अपडेट करना] [http://userguide.icu-project.org/datetime/timezone#TOC-Updating-the-Time-Zone-Data) आपके प्रश्न का उत्तर देता है? –

उत्तर

4

आईसीयू या बायोनिक अपडेट करना आवश्यक नहीं है, तो आप अपडेट किए गए tzdata फ़ाइल को अपडेट कर सकते हैं। इसके अलावा आपको IANA समय क्षेत्र डेटा से फ़ाइल tzdata फ़ाइल मैन्युअल रूप से उत्पन्न करने की आवश्यकता नहीं है। आप bionic repo से पहले ही tzdata बना सकते हैं। आप टाइम ज़ोन डेटा v। 2015g here के अंतिम संस्करण में अद्यतन फ़ाइल पा सकते हैं। इस के बाद यह अभी भी काम नहीं करता है

[email protected]:/ $ su 
[email protected]:/ $ setprop persist.sys.timezone Europe/Istanbul 
[email protected]:/ $ date -s 20151106.130000 
Fri Nov 6 13:00:00 EET 2015 
[email protected]:/ # mount -o rw,remount /system 
[email protected]:/ # cd /system/usr/share/zoneinfo/ 
[email protected]:/system/usr/share/zoneinfo # cp tzdata tzdata.bak 
[email protected]:/system/usr/share/zoneinfo # cp /sdcard/Download/tzdata tzdata 
[email protected]:/system/usr/share/zoneinfo # chmod 644 tzdata 
[email protected]:/system/usr/share/zoneinfo # date 
Fri Nov 6 14:00:47 EEST 2015 

:

एक बार जब आप फाइल डाउनलोड अपने डिवाइस (/sdcard/Download/tzdata जैसे) पर इसे कॉपी, तो एक खोल खोलने

[email protected]:/ # cd /data/misc/zoneinfo/ 
[email protected]:/data/misc/zoneinfo # cp tzdata tzdata.bak 
[email protected]:/data/misc/zoneinfo # cp /sdcard/Download/tzdata tzdata 
[email protected]:/data/misc/zoneinfo # chmod 644 tzdata 

आप के रूप में 6 नवंबर को यूरोप/इस्तांबुल के समय क्षेत्र tzdata के साथ EET से EEST में बदल सकते हैं क्योंकि वी। 2015 जी में तुर्की के डीएसटी गिरने से 25 अक्टूबर से 8 नवंबर तक चल रहा है।

+0

+1 मैंने पहले ही tzdata को एक दर्जन बार प्रतिस्थापित किया है लेकिन adb से डेट कमांड कभी नहीं किया है। मैंने देखा कि तारीख मास्को के लिए 1 घंटे वापस चली गई जो सही है।हालांकि, सेटिंग्स ऐप ने अभी भी जीएमटी + 3 के बजाय जीएमटी +4 दिखाया है। मैंने दल्विक-कैश हटा दिया और अब यह जीएमटी +3 दिखाता है, इस बारे में पहले कभी नहीं सोचा था। क्या आप जानते हैं कि कौन सी सिस्टम कॉल आईसीयू पर निर्भर करती है? –

+1

दुर्भाग्यवश मुझे आईसीयू पर निर्भर सिस्टम कॉल की एक सूची नहीं मिली। मैंने एंड्रॉइड रेपो के जावा भाग में त्वरित खोज करने की कोशिश की और आईसीयू के टाइमज़ोन का एकमात्र संदर्भ [ZoneGetter.java] (https://goo.gl/gkgOjv) में 'टाइमज़ोन नाम' लगता है। अन्य स्थानों पर इसके बजाय यह सीधे 'tzdata' फ़ाइल का उपयोग करता है, उदाहरण के लिए [ZoneInfoDB.java] (https://goo.gl/KL5qlF) में –

संबंधित मुद्दे