一、命令行联网

# 启用网卡
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. 如何在CentOS7上搭建自己的GitLab仓库

    序言 各位好啊,我是会编程的蜗牛,作为java开发者,在团队开发中,一般都是需要使用git及git仓库来管理我们的代码的,这非常方便.我以前在小公司的时候,基本都是一个人开发一个项目,所以也没有怎么接 ...

  2. for in 和 for of 的区别和v-for指令的三种使用方法

    for...in 循环:只能获得对象的键名,不能获得键值 for...of 循环:允许遍历获得键值 var arr = ['red', 'green', 'blue'] for(let item in ...

  3. C#在Xp系统执行.exe程序的报错怎么查看原因

    我的电脑---->管理---->事件查看器----->应用程序,查看错误来源

  4. Node.js的学习(二)node.js 模块化

    一.Node.js模块化 1.模块化概要 早期的javascript版本没有块级作用域.没有类.没有包.也没有模块,这样会带来一些问题,如复用.依赖.冲突.代码组织混乱等,随着前端的膨胀,模块化显得非 ...

  5. Java:自定义排序与sort()函数

    自定义排序与Arrays.sort() 本篇题目来源:2022/11/13 Leetcode每日一题:https://leetcode.cn/problems/custom-sort-string 给 ...

  6. vue3.0使用tui.image-editor图片编辑组件报错TypeError: Cannot convert undefined or null to object

    在vue3.0的项目中使用tui.image-editor组件.一直都是报错.查看报错位置发现代码 addEventListener() { Object.keys(this.$listeners). ...

  7. 工程坐标转换方法C#代码实现

    目录 1. 前言 2. 计算总体框架 3. C#代码实现 3.1 整体类的构建 3.2 椭球参数赋值 3.3 转换1.3(大地经纬度坐标与地心地固坐标的转换) 3.4 投影转换 3.5 转换2的实现( ...

  8. MySQL数据库和Python的交互

    一.缘由 这是之前学习的时候写下的基础代码,包含着MySQL数据库和Python交互的基本操作. 二.代码展示 import pymysql ''' 1.数据库的链接和创建视图 ''' # db=py ...

  9. 【敏捷研发系列】前端DevOps流水线实践

    作者:胡骏 一.背景现状 软件开发从传统的瀑布流方式到敏捷开发,将软件交付过程中开发和测试形成快速的迭代交付,但在软件交付客户之前或者使用过程中,还包括集成.部署.运维等环节需要进一步优化交付效率.因 ...

  10. 关于Window中右键新建菜单的设置

    在日常工作中,有时候需要根据自己的需要对Windows桌面右键新建菜单进行自定义,自定义的方法如下: 1.在Window中输入Win+R调出运行命令框 2.输入regedit,打开注册表 3.如果想要 ...