- Синхронизация времени на Android через TimeServer
- О синхронизации времени
- Синхронизация времени с TimeServer на Android
- DarkNess
- пятница, июля 12, 2013
- Точная синхронизация времени на Android для ускореня холодного старта GPS, ну и просто точное время
- Настройка ntp сервера android
- Android использует NTP для синхронизации времени?
- 4 ответов
- xujiaao / android-set-ntp-server.md
- This comment has been minimized.
- kylin17 commented May 18, 2018 •
- This comment has been minimized.
- xujiaao commented May 21, 2018
- This comment has been minimized.
- kylin17 commented May 23, 2018
- This comment has been minimized.
- chetstone commented Sep 6, 2018
- This comment has been minimized.
- mellsaid commented Sep 13, 2018 •
- This comment has been minimized.
- xujiaao commented Sep 26, 2018
- This comment has been minimized.
- majidorc commented Jun 25, 2021
- This comment has been minimized.
- becker666 commented Jul 31, 2021
- This comment has been minimized.
- mdavids commented Aug 4, 2021
- This comment has been minimized.
- eladkarako commented Nov 6, 2021
- This comment has been minimized.
- elearningdienst commented Nov 10, 2021
- This comment has been minimized.
- wsion commented Nov 19, 2021
Синхронизация времени на Android через TimeServer
Знание точного времени очень важно в современном мире, в котором все может поменяться буквально за считанные минуты. А для решения некоторых задач могут отводиться и вовсе несколько секунд. К счастью, определение точного времени в любой точке земного шара — несложная задача. Достаточно лишь иметь под рукой любое устройство с выходом в интернет. Рассмотрим, как определить точное время на смартфонах и планшетах, работающих под управлением операционной системы Android.
О синхронизации времени
Существуют различные способы определения точного времени. Для обычных людей наиболее удобным и простым способом является использование серверов синхронизации времени (NTP-сервер). Большинство операционных систем, устанавливающихся на компьютеры и мобильные устройства, имеют встроенную функцию для работы с такими NTP-серверами. Алгоритм синхронизации внутренних часов устройства со временем на удаленном сервере достаточно прост:
- Пользовательское устройство посылает запрос на сервер синхронизации запрос, для чего используется специальный сетевой протокол — NTP (Network Time Protocol).
- В ответ на запрос сервер формирует NTP-пакет с нужными данными и отправляет его обратно на пользовательское устройство.
- Встроенная функция синхронизации обрабатывает пакет и настраивает внутренние часы устройства, используя данные из NTP-пакета.
- Высокая точность синхронизации (вплоть до одной сотой секунды, т.е. 10 миллисекунд) достигается благодаря тому, что функция установки времени учитывает задержку между и отправкой запроса и получение от сервера NTP-пакета.
Сам же NTP-сервер определяет точное время по реально (физически) существующему эталону времени. Это целый комплекс оборудования, в задачу которого входит отчет времени. В мире существует несколько эталонов времени, расположенных в технологически развитых странах, включая Россию. Атомные часы имеются в распоряжении «Всероссийского научно-исследовательского института физико-технических и радиотехнических измерений» (ВНИИФТРИ).
Синхронизация времени с TimeServer на Android
В операционных системах Android также имеется встроенная функция синхронизация времени по сети. Однако пользователи не могут ее настраивать. Т.е. система сверяет время с NTP-сервером, который, по сути, неизвестен владельцу Андроид-устройства. Также остается секретом и то, насколько точно работает базовая функция синхронизации часов в Android.
Для возможности синхронизации времени на смартфонах и планшетах под управлением Андроид существует только один выход — использование специальных приложений. Но и здесь есть свои нюансы. ОС Android запрещает сторонним приложениям изменять настройки даты и времени, что сделано в целях безопасности. Для полноценной работы приложений синхронизации времени требуется root-права. Без root-прав такие программы не могут изменять системные настройки в автоматическом режиме, однако определять точное время они все же в состоянии. В этом случае пользователю придется время от времени устанавливать время на своем Android-устройстве вручную.
Источник
DarkNess
Личный блог DarkNess. Только технические темы.
пятница, июля 12, 2013
Точная синхронизация времени на Android для ускореня холодного старта GPS, ну и просто точное время
Этого вопроса я уже касался ранее, в заметке Android калибровка GPS, ускорение захвата спутников после холодного старта, повышение точности GPS по сути до возможного предела «железа». Повторюсь коротко. Методы, которые использует Android для синхронизации времени, или очень неточны (по сети оператора — в лучшем случае ошибка будет несколько секунд, что даст замедление старта GPS в 2-3 раза), или малоприемлемы — по GPS спутникам, это колоссальный расход энергии, да и не будет работать нигде, кроме как на улице. Первым вариантом решения вопроса была программа ClockSync (см пункт 1 заметки, ссылка на которую выше). Но можно получить еще более высокую точность, и обойтись без установки дополнительных программ, если у Вас рутованный телефон и на нем установлена BusyBox.
Решением проблемы станет «родной» линуховый ntpd. К сожалению в BusyBox входит очень упрощенный его вариант (родной линуховый позволил бы обеспечить точность в десятки миллисекунд в сутки даже когда нет возможности сделать синхронизацию по сети, за счет «коррекции дрифта»), так что будем использовать что есть.
Запускаем root explorer. Заходим с его помощью в каталог /system/etc/init.d (если у Вас init.d каталог еще не создан — создайте, и не забудьте нажать кнопочку справа сверху, разрешающую запись — иначе ничего не выйдет).
Создаем новый файл, и называем его 07userini.
Меняем его разрешения, через меню root explorer, вызываемое «по долгому клику» на файл (по короткому будет вызвано другое — оно нам не нужно). Ставим галочки «чтение» для всех, «запись» оставляем только для владельца, и «выполнение» тоже для всех.
Снова по длинному клику вызываем меню, и выбираем «Открыть в текстовом редакторе».
Теперь вписываем само содержание файла запуска:
———-
#!/system/bin/sh
/system/bin/logwrapper /system/bin/ntpd -N -p 92.249.120.2 -p 78.152.160.1
Жмем кнопку меню, потом «Записать и выйти».
Удалите образовавшийся файл с тем же именем, но с расширением .bak
Теперь можно проверить что все сделали правильно. (а если уверены что все сделали правильно — можете не проверять). Для проверки нам понадобится терминал. Запускаем его, заходим в каталог cd /etc/system/init.d, запускаем комманду ./07userini
Она должна отработать, не выдав никаких сообщений об ошибках.
Теперь набираем комманду «ps | grep ntp», enter.
В ответ должны увидеть строку, в конце которой будет: /system/xbin/ntpd
Все готово — можно перезагружаться.
Да, с ядром ThunderZap, после перезагрузки, может возникнуть завис. Подождите минутки 3, если само не уйдет в повторную перезагрузку — выньте батарею, и снова включите. Оно снова запустится, потом подумает с минуту, перезагрузится. После этого все точно готово. Указанные приколы с «зависом» — особенности ThunderZap с включенным SWAPом, могут возникать после любого редактирования системных параметров и перезагрузки, и не имеют никакого отношения к данному конкретному вопросу.
*Предложенный метод запуска подходит только если у Вас «кастомное» ядро, поддерживающее init.d. Если у Вас стоковое — найдите на Маркете какое нить приложение, которое запускает произвольные программы после старта системы, и используйте его для запуска демона.
PS Циферки в конце комманды, после комманды -p, в моем случае -p 92.249.120.2 -p 78.152.160.1 — это IP адреса ближайших NTP серверов. Можно вписать пул, чтобы система сама выбирала, но тогда точность упадет. Как выбрать подходящий конкретно для Вашей страны и региона NTP сервер, я описал ранее в заметке http://vyacheslav.blogspot.com/2013/07/android-gps-gps.html#more, см П1. Те что использовал я, дают наилучший результат для Киева.
PPS Эта программа займет в памяти гдето 150 килобайт, или 0,15 мегабайта. Для сравнения, типичная программа «Android» зангимает от 10ти мегабайт и выше. Так что этим можно вообще пренебречь. Время когда проверять, программа выбирает автоматически, исходя из статистики предидущих коррекций, и вычисляя какой уход часов конкретно у Вашего аппарата, и исходя из этого меняя частоту синхронизации. Паеты махонькие, так что трафика будет брать совсем немного.
PPPS Впечатление от работы ntpd. очень положительные. Если ранее, при использовании ClockSync, я изредка, обнаруживал что расхождение достигает 250 миллисекунд, и это через 20 минут после проведенной ClockSync синхронизации, то сейчас количество таких «казусов» снизилось раз в 10. Плюс отсутствие периодического запуска «нативной Андроидной» ClockSync, «кушающей» мегабайты памяти.
Источник
Настройка ntp сервера android
Для автоматической синхронизации времени необходимы права root пользователя.
Краткое описание:
Синхронизация времени телефона с атомными часами через NTP
Описание:
Ручная или автоматическая синхронизация системного времени устройства через NTP. Акутально для практически всех наших операторов, так как они не поддерживают протокол автоматической синхронизации времени через базовые станции оператора (NITZ). Из-за этого время на вашем устройстве может постоянно отставать или убегать вперед.
Основные возможности:
- обновление времени через NTP по тапу на времени или смещении, синхронизация по тапу на системном времени а так же через меню приложения
- отображение даты или времени прошедшего с последнего момента синхронизации (меняется по тапу)
- вибро отзыв при нажатиях на активные элементы экрана
- автоматическая синхронизация времени с заданным интервалом и при загрузке
- возможность синхронизировать только через Wi-Fi (если у вас Wi-Fi отключается при засыпании, не будет синхронизироваться)
- энергоэффективные режимы синхронизации (15/30/60 минут и 1/12/14 часов) и синхронизация только при включении устройства
- русский/английский интерфейсы (время с последней синхронизации немного криво показывает множественные формы минут/часов + дата будет всегда на английском)
- не лезет в интернет если выключена системная опция Background Data (автоматическая синхронизация не будет работать)
- совместимость с Android 1.5 и более поздними версиями системы
Ручной режим для телефонов без root:
- автоматическое получение точного времени с заданным интервалом
- если разница с точным временем превышает заданное значение, показывается уведомление
- помощник для ручной синхронизации с подсказками какие значения даты/времени установить
- точность в интервале между 1 и 30 секундами (т.к. Android не позволяет устанавливать секунды)
- точность
1 секунда если ваше устройство обнуляет секунды при ручной установке времени (большинство устройств Samsung)
- сигнал точного времени для помощи при ручной установке если устройство обнуляет секунды
Управление часовым поясом (root не нужен!):
- установка часового пояса через географические координаты
- установка часового пояса согласно последней версии базы Olson (2012g) (tzdata, zoneinfo, tz database)
- установка часового пояса через ручную настройку смещения в часах
Если у вас проблема с часовым поясом в России, читайте обращение разработчика.
Версия: 1.3.1 ® ClockSync (Пост Aleksey_52 #65356255)
База, Версия 1.2.7 (2016c): Play Store / TimeZoneService.apk
Версия: 1.2.5: ClockSync_1.2.5
Версия: 1.2.4.1: ClockSync_1.2.4.1
Версия: 1.2.3: ClockSync_1.2.3
Версия 1.2.2: //4pda.to/forum/dl/post/1459537/ClockSync_1.2.2.apk
Версия 1.2.0: //4pda.to/forum/dl/post/1341385/ClockSync.apkClockSync.apk ( 207.95 КБ )
ClockSync.apk ( 208.05 КБ )
ClockSync.apk ( 195.51 КБ )
ClockSync.apk ( 248.21 КБ )
Источник
Android использует NTP для синхронизации времени?
используют ли устройства Android протокол сетевого времени (NTP) для синхронизации времени?
в моих настройках устройства я вижу флажок со следующим текстом «синхронизировать с сетью», но я не знаю, используют ли они NTP.
Мне нужно это для моей бакалаврской диссертации, для которой я использую GPS. Для получения точного GPS-сигнала приемник должен иметь точные часы.
Я нашел эту запись в блоге в интернете, но я не уверен, что он говорит правду:ускорение NTP, Блокировка GPS в Android
4 ответов
Я знаю о Android ICS, что он использует пользовательскую службу под названием: NetworkTimeUpdateService . Эта служба также реализует синхронизацию времени NTP через NtpTrustedTime синглтон.
на NtpTrustedTime сервер NTP по умолчанию запрашивается из источника строки системы Android:
если опция автоматической синхронизации времени в Системных настройках включена и Служба времени NITZ недоступна, то время будет синхронизировано с сервером NTP из com.android.internal.R.string.config_ntpServer .
чтобы получить значение com.android.internal.R.string.config_ntpServer вы можете использовать следующий метод:
Я хотел спросить, используют ли устройства Android протокол сетевого времени (ntp) для синхронизации времени.
для общей синхронизации времени, устройства с возможностью телефонии, где поставщик беспроводной связи обеспечивает НИТЦ информация, будет использовать NITZ. Я понимаю, что NTP используется в других обстоятельствах:NITZ — бесплатные беспроводные провайдеры, WiFi-только и т. д.
ваше цитируемое сообщение в блоге предполагает другое обстоятельство: время по требованию синхронизация в поддержку GPS. Это, конечно, возможно, хотя я не знаю, используется ли это или нет.
У меня есть Samsung Galaxy Tab 2 7.0 с Android 4.1.1. По-видимому, он не синхронизируется с ntp. Я загрузил приложение, которое говорит, что мой планшет находится в 20 секундах от ntp, но он не может установить его, пока я не укореню устройство.
Источник
xujiaao / android-set-ntp-server.md
Set the NTP server of your android device
Just use this command to set a server address to automatically sync your device time. ( ͡° ͜ʖ ͡°)✧
I have a Raspberry Pi 3 with Android Things installed on it. But the time is never synchronized.
After googling it, I found this piece of code in NtpTrustedTime.java
It shows that android tring to get NTP server from:
And the NTP server of my Android Things is time.android.com , that’s why it dose not work (I’m in China. ).
Fortunately, it is easy to set settings via adb:
🎉 CHEERS
This comment has been minimized.
Copy link Quote reply
kylin17 commented May 18, 2018 •
How to sync device time from ntp server immediately?
This comment has been minimized.
Copy link Quote reply
xujiaao commented May 21, 2018
Sorry, I’m not familiar with that. If you are woking with Android Things, you can simply restart it.
This comment has been minimized.
Copy link Quote reply
kylin17 commented May 23, 2018
@xujiaao
Ok, I will try. Thanks!
This comment has been minimized.
Copy link Quote reply
chetstone commented Sep 6, 2018
Works for my android phone too! Thanks!
This comment has been minimized.
Copy link Quote reply
mellsaid commented Sep 13, 2018 •
Awesome. Few questions plz @xujiaao
- Do we need to run this command every time we restart or power off the device?
- Is there a way to permanently change the NTP server?
- Also is there a way to add a list of servers like :
This comment has been minimized.
Copy link Quote reply
xujiaao commented Sep 26, 2018
- Do we need to run this command every time we restart or power off the device?
- Is there a way to permanently change the NTP server?
- Also is there a way to add a list of servers like :
You do not need to run the command after restarting (Tested on my Android Phone).
But I do not think Android can support multiple NTP servers . See the code above 😄
This comment has been minimized.
Copy link Quote reply
majidorc commented Jun 25, 2021
- Do we need to run this command every time we restart or power off the device?
- Is there a way to permanently change the NTP server?
- Also is there a way to add a list of servers like :
You do not need to run the command after restarting (Tested on my Android Phone).
But I do not think Android can support multiple NTP servers . See the code above 😄
This comment has been minimized.
Copy link Quote reply
becker666 commented Jul 31, 2021
Guys I need a NTP server for a lab project with no access to the net is it possible to set it so it just picks up the android time
This comment has been minimized.
Copy link Quote reply
mdavids commented Aug 4, 2021
If you also want to use IPv6 to contact the NTP pool, use 2.pool.ntp.org .
This comment has been minimized.
Copy link Quote reply
eladkarako commented Nov 6, 2021
pool.ntp.org isn’t working for me for some reason but time.google.com does.
https://time.google.com has some instructions as well.
and it seems you can also use /etc/ntp.conf
This comment has been minimized.
Copy link Quote reply
elearningdienst commented Nov 10, 2021
Works well on a Pixel 5 with Android 12. Thanks!
This comment has been minimized.
Copy link Quote reply
wsion commented Nov 19, 2021
A stable NTP server for mainland China
ntp.aliyun.com
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Источник