---
title: "在天朝激活 Google 设备"
date: 2021-09-11T19:57:13.000Z
author: Z.SHINCHVEN
tags: [dnsmasq, made by Google]
canonical: https://atlassc.net/2021/09/12/activate-google-device-in-china
---
自觉上网技术已经很好了，于是买来一台 Chromecast with Google TV 玩，结果激活的时候死活连不上 WiFi。

要解决 Google 的问题还得用 Google，果然查到事有蹊跷。

Google 的设备在初次连接 WiFi 的时候会去访问 [ntp](https://en.wikipedia.org/wiki/Network_Time_Protocol) 服务器较对时区，如果访问失败则会判定该 WiFi 无法访问 internet 并拒绝连接这个 WiFi。

在我朝，显然没法轻易访问到`time.android.com`这个地址，所以我在初始化设备在激活的时候，就直接连不上 WiFi 了。

如果设备已经初始化，并开启 adb 调试，则可通过 [adb 命令](https://developer.android.com/reference/android/provider/Settings.Global)来修改设备的 ntp 服务器地址配置：

```bash
adb shell settings put global ntp_server <new-ntp-server>
```

但我这台设备还未完成初始化，更没法开启 adb 调试，于是我只能借助外部力量。

我决定去路由器上用 dnsmasq 干一把 DNS劫持，这样 Chromecast 要访问`time.android.com`这个地址时，能被 dnsmasq 指向`203.107.6.88`这个 IP 地址。

我用的是华硕 RT-AC86U 路由器，要干 dnsmasq 需要刷[梅林固件](https://fw.koolcenter.com/Koolshare_ASUS_Official_Mod/RT-AC86U/)。

使用 SSH 登录路由器后，可通过创建`/jffs/configs/dnsmasq.conf.add`这个文件来启用 dnsmasq，文件里要写入：

```text
addn-hosts=/jffs/configs/hosts
```

然后创建一个自己的 host 规则文件`/jffs/configs/hosts`，写好要劫持的域名：

```text
192.168.50.1 router.asus.com    # 路由器控制台地址
203.107.6.88 time.android.com   # Android ntp Server mirror
```

最后`重启路由器`已让 dnsmasq 规则生效。
