一、命令行联网

# 启用网卡
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.com -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、同步网络时间的更多相关文章

  1. Android命令行播放MP3音乐

    /*************************************************************************** * Android命令行播放MP3音乐 * 说 ...

  2. MOOS学习笔记3——命令行

    MOOS学习笔记3--命令行 例程 /** * @code A simple example showing how to use a comms client问问怎么样 */ #include &q ...

  3. android 命令行安装apk

    有两种方式可以在android模拟器或真机上使用命令行安装apk 一种是使用adb install命令,网上通常是这种方式 另一种是通过android提供的命令,pm install. 需要先进入an ...

  4. Android 命令行模拟按键

    /***************************************************************************** * Android 命令行模拟按键 * 说 ...

  5. Android系列之Android 命令行手动编译打包详解

    Android 命令行手动编译打包过程图 [详细步骤]: 1使用aapt生成R.java类文件:  例:  E:\androidDev\android-sdk-windows2.2\tools> ...

  6. 使用命令行+代理更新Android SDK

    在无桌面的Linux上面安装Jenkins,要配置成Andorid 的持续集成环境Jenkins持续集成Android项目,需要在无桌面的Linux(ubuntu,centos)上安装Android ...

  7. Android 命令行执行工具类

    最近在做android项目的时候,需要执行命令行命令,之前在网上找的不仅杂乱而且错误多,于是自己写了一份. 话不多说,直接上代码 import android.util.Log; import jav ...

  8. 学习笔记——Maven 命令行选项

    2014-10-09:更新裁剪反应堆具体用法 说明: 1.使用-选项时,和后面的参数之间可以不要空格.而使用--选项时,和后面的参数之    间必须有空格.如下面的例子: $ mvn help:des ...

  9. Android 命令行编译、打包生成apk文件

    一.搭建搭建环境 1. 安装JDK 和 Android SDK   2. 配置环境变量 D:\android-sdk-windows\tools C:\Program Files\Java\jdk1. ...

  10. android命令行网络时间同步

    一.简介 Android基于Linux平台的开源手机操作系统. 二.原理 既然是Linux,那就应该支持linux的各种命令行,高度的可配置,但实验发现Android是Google的一个高度阉割版的l ...

随机推荐

  1. Excel中的VLOOKUP函数

    VLOOKUP函数是Excel中的一个纵向查找函数,功能是按列查找,最终返回该列所需查询序列所对应的值. 该函数的语法规则如下: VLOOKUP(lookup_value,table_array,co ...

  2. 第一章:TypeScript快速入门

    一.TypeScript 开发环境搭建 1.TypeScript 是什么? TypeScript 是一种由微软开发的自由和开源的编程语言.它是 JavaScript 的一个超集,而且本质上向这个语言添 ...

  3. Crond服务+Shell实现秒级任务

    服务 [root@19-v1-centos-6 ~]# chkconfig --list | grep crond crond 0:off 1:off 2:on 3:on 4:on 5:on 6:of ...

  4. SQL-GROUP BY语句在MySQL中的一个错误使用被兼容的情况

    首先创建数据库hncu,建立stud表格. 添加数据: create table stud(sno varchar(30) not null primary key,sname varchar(30) ...

  5. 超精准!AI 结合邮件内容与附件的意图理解与分类!⛵

    作者:韩信子@ShowMeAI 深度学习实战系列:https://www.showmeai.tech/tutorials/42 TensorFlow 实战系列:https://www.showmeai ...

  6. JS图片放大镜功能实现

    JS图片放大镜功能实现 技术关键点 1.左侧和上侧距离,在一个水平位置和垂直位置中有我们可以挪动的区域,就是原图片区域,鼠标挪动位置是一个块状位置,他的左侧和上侧距离浏览器上侧和左侧分别有一个长度,我 ...

  7. 同步与异步、阻塞与非阻塞、创建进程的多种方式、进程间数据隔离、进程的join方法、IPC机制等

    目录 同步与异步 阻塞与非阻塞 综合使用 创建进程的多种方式 进程间数据隔离 进程的join方法 IPC机制 生产者消费者模型 进程对象的多种方法 守护进程 僵尸进程与孤儿进程 多进程数据错乱问题 同 ...

  8. Duplicate property mapping of xxx found in xx 嵌套异常,重复的属性在映射中发现。

    该异常的原意是因为在映射文件中出现了两个一样的属性名: <property name="相同的属性名出现了两次以上" > <property name=" ...

  9. 快速绘制流程图「GitHub 热点速览 v.22.47」

    画流程图一直是研发的一个难题,如何画得通俗易懂已经够让人头疼了,还要美观大方.用 d2 的语法描述下流程,d2 会自动帮你生成一张配色极佳的流程图.说到研发的选择,本周特推的 choiceof.dev ...

  10. Promise基础知识

    Promise 1.Promise的前置小知识 进程(厂房) 程序的运行环境 线程(工人) 线程是实际进行运算的东西 同步 通常情况代码都是自上向下一行一行执行的 前边的代码不执行后边的代码也不会执行 ...