如何在MarshMallow系统的私有WiFi网络中设置自动时间同步?

6次阅读
没有评论

问题描述

在使用Android 6设备接入一个设置了限制大多数TCP和UDP输出端口的私有WiFi网络时,若要与NTP时间服务器同步系统时间以解决Google Play无法连接的问题。尽管应用如ClocSync、NSync或Smart Times Sync均能成功连接NTPserver并显示当前时间,但并未更改Android设备的时间。

解决方案

方法一:使用root和Busybox工具手动设置自动时间同步

  1. 前提条件
  2. 需要root权限;
  3. 安装Busybox支持rdate服务;
  4. /system/etc/init.d/目录,用于在系统启动时运行守护进程服务。

  5. 操作步骤

  6. 使用 su- mount -o remount,rw /system 命令读写系统分区;
  7. /system/etc/init.d/ 目录创建一个可执行文件(例如命名为99my_daemon):
    bash
    #!/system/bin/sh
    while ! ping -c1 "0.pool.ntp.org" > /dev/null
    do
    wait 10
    done
    /system/xbin/busybox rdate -s 0.pool.ntp.org
    exit 0
  8. 使用 mount -o remount,rw /system 命令重新打开系统分区写入权限。
  9. 重启设备后,该守护进程将在启动时自动调用rdate命令查询NTP服务器以同步时间。

方法二:使用crontab定期检查时间同步

为了保证在长时间未连接至网络设备或使用时仍有时间校准需求,在crontab中添加一个定时任务来周期性地执行时间同步:

# 定义crontab文件,假设保存为 /system/etc/cron.d/timesync
* * * * * /system/sbin/busybox rdate -s 0.pool.ntp.org

需要特别注意的是此操作涉及设备root权限,且因涉及到设备底层设置修改可能带来安全风险和不稳定因素,请谨慎评估后按上述步骤操作。

通过以上两种方式之一可以基本解决在MarshMallow系统下的私有WiFi网络中设置自动时间同步的需求。如果遇到问题或不确定的地方,建议参考相关开发者文档或寻求技术社区的帮助。希望对你的需求有所帮助!

正文完