【随笔记】Android 命令行联网、更新DNS、同步网络时间

编程入门 行业动态 更新时间:2024-10-11 09:23:25

【随笔记】Android <a href=https://www.elefans.com/category/jswz/34/1771327.html style=命令行联网、更新DNS、同步网络时间"/>

【随笔记】Android 命令行联网、更新DNS、同步网络时间

一、命令行联网

# 启用网卡
busybox ifconfig wlan0 up# 启用服务
wpa_supplicant -iwlan0 -Dnl80211 -c/system/etc/wifi/wpa_supplicant.conf &# 连接网络 (add_network 指令会返回一个序号,这里假设返回的为 0)
wpa_cli -p /data/misc/wpa_supplicant -i wlan0 status
wpa_cli -p /data/misc/wpa_supplicant -i wlan0 add_network
wpa_cli -p /data/misc/wpa_supplicant -i wlan0 set_network 0 ssid \"wifi名字\"
wpa_cli -p /data/misc/wpa_supplicant -i wlan0 set_network 0 psk \"wifi密码\"
wpa_cli -p /data/misc/wpa_supplicant -i wlan0 enable_network 0# 分配地址
dhcpcd wlan0 &

二、更新 DNS

# 设置 DNS
ndc resolver setdefaultif wlan0
ndc resolver setifdns wlan0 "" 202.96.128.166

需要保证 service netd /system/bin/netd 服务要被启动,不然 ndc 命令无法设置。 

三、同步网络时间

# 设置时区
setprop persist.sys.timezone "Asia/Shanghai"		# 同步时间(ntpclient 需要另行编译)
ntpclient -s -c 1 -h ntp7.aliyun -i 3

网络上流传最多的方案:

可以使用 busybox 子命令 rdate 来实现同步网络时间,但是 Android 的 busybox 是精简版的,并没有 rdate 命令的实现(实际有对应的源码,只是编译配置没有启用 rdate),可以从 busybox 官方网下载最新源码进行编译,或者使用已被编译好的 busybox ,通过 busybox rdate -s 132.163.96.6 实现网络时间同步。

实测效果并不理想,首先 rdate 不支持域名解析,其次大概率会出现同步失败的情况,甚至会出现同步时间错误的情况。

我自己选择方案是自己编译 ntpclient ,折腾了半天,才发现  NDK 没有 adjtime() 实现,因此原生的 ntpclient 源码是无法通过 NDK 编译的。

最终的解决方案:

GitHub - lovemengx/ntpclient_from_android: 适用于 Android NDK 编译的 ntpclient 源码,可用于在 Android 系统中同步时间。(原生 linux 版本的,因 NDK 没有 adjtime() 实现,无法通过 NDK 编译)

更多推荐

【随笔记】Android 命令行联网、更新DNS、同步网络时间

本文发布于:2024-03-09 08:00:13,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1724394.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:命令行   随笔   时间   网络   Android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!