本帖最后由 uioaryh990 于 2025-4-7 12:13 编辑
最近无聊把家里的大麦盒子拿出来刷机了。 刷完之后 发现优酷 和三方软件都报错不能看,一开始以为是dns问题,百思不得其解,无意中发现影视仓和优酷显示的时间是2015年1月,但是系统时间又是对的,只是APP时间都不对。芒果TV到是可用。最后搜索到这个帖子。https://www.znds.com/tv-1246173-1-1.html 用了那个时间同步软件,果真所有的影视APP都正常了,可以播放了。时间同步软件可以设置同步频率,但是我想开机自动同步时间。最后用通义 百度 DeepSeek 给了这个关键字 我有一个电视盒子,APP时间和系统时间不同步,想通过busybox ntpd -p 114.118.7.163 -qNn实现开机自启动之后自动同步,电视盒子已经开启了adb模式,也root过了,电视盒子系统基于安卓5.1.1,怎么通过adb实现。 给出来的教程 太麻烦了。。设置都没生效。最后用的grok 给出来的简单方便。
一开始用这个服务114.118.7.163 发现请求几次就不通了,最后换的阿里的时间服务
教程:在基于 Android 5.1.1 的电视盒子上通过 ADB 实现开机自动同步时间背景- 设备: 已 root 的电视盒子,基于 Android 5.1.1,启用 ADB 模式。
- 目标: 开机时自动运行 busybox ntpd 同步系统时间。
- NTP 服务器: 使用稳定的 ntp.aliyun.com。
- 工具: ADB、Busybox(已安装并支持 ntpd)。
前提条件- 电视盒子已通过 USB 或网络连接到电脑,并启用 ADB。
- 设备已 root,可以通过 su 获取超级用户权限。
- Busybox 已安装,支持 ntpd(可通过 busybox ntpd -h 检查)。
完整步骤1. 连接设备并进入 shell在电脑端打开命令行(Windows CMD 或其他终端),运行: adb shell
su
- 确保提示符变为 root@...,表示已获取 root 权限。
2. 修改 /init.rc 添加自启动服务
挂载根目录为读写bash
mount -o rw,remount /
备份原始 /init.rcbash
cp /init.rc /init.rc.bak
追加时间同步服务配置
将以下内容追加到 /init.rc:bash
echo "service sync_time /system/etc/sync_time.sh" >> /init.rc
echo " class main" >> /init.rc
echo " oneshot" >> /init.rc
- service sync_time: 定义服务名称。
- /system/etc/sync_time.sh: 服务调用的脚本路径。
- class main: 在主启动类中运行(开机时触发)。
- oneshot: 运行一次后退出。
验证配置bash
cat /init.rc | grep sync_time
确认输出包含上述。 3. 创建时间同步脚本
挂载 /system 为读写bash
mount -o rw,remount /system
创建并写入脚本bash
echo '#!/system/bin/sh' > /system/etc/sync_time.sh
echo 'sleep 30' >> /system/etc/sync_time.sh
echo 'busybox ntpd -p ntp.aliyun.com -qNn' >> /system/etc/sync_time.sh
- sleep 30: 等待 30 秒,确保网络就绪。
- busybox ntpd -p ntp.aliyun.com -qNn: 使用 Busybox 的 ntpd 同步时间。
- -p: 指定 NTP 服务器。
- -q: 设置时间后退出。
- -N: 以最高优先级运行。
- -n: 前台运行。
设置执行权限bash
chmod 755 /system/etc/sync_time.sh
验证脚本内容bash
cat /system/etc/sync_time.sh
确认输出与上述内容一致。 4. 测试脚本手动运行脚本,检查时间是否同步: /system/etc/sync_time.sh
date
- 如果 date 显示当前时间(例如 2025 年 4 月),说明脚本有效。
5. 重启并验证
重启设备bash
reboot
检查时间
重启后重新连接并运行:bash
adb shell date
- 如果时间正确(接近当前日期,如 2025 年 4 月 7 日),说明配置成功。
完整命令示例以下是连续执行的命令: adb shell
su
mount -o rw,remount /
cp /init.rc /init.rc.bak
echo "service sync_time /system/etc/sync_time.sh" >> /init.rc
echo " class main" >> /init.rc
echo " oneshot" >> /init.rc
mount -o rw,remount /system
echo '#!/system/bin/sh' > /system/etc/sync_time.sh
echo 'sleep 30' >> /system/etc/sync_time.sh
echo 'busybox ntpd -p ntp.aliyun.com -qNn' >> /system/etc/sync_time.sh
chmod 755 /system/etc/sync_time.sh
/system/etc/sync_time.sh
date
reboot
重启后: adb shell date
注意事项- 网络依赖
- 确保设备开机时能联网(Wi-Fi 或有线网络)。
- 如果网络启动较慢,可增加 sleep 时间(例如 sleep 60)。
- NTP 服务器选择
- ntp.aliyun.com 是国内稳定选择,替代选项包括 cn.pool.ntp.org 或 pool.ntp.org。
- 可通过 ping ntp.aliyun.com 测试服务器可达性。
- 文件系统只读问题
- 如果遇到 Read-only file system 错误,确保正确挂载分区(mount -o rw,remount / 或 /system)。
|