Google Wifi ポイントにOpenWrtを入れる

# 導入

最近メルカリ見てたら、Google Wifiポイントがだいぶ安くなっていることに気が付きました。
「ほへー安くなってるなぁ」位の感想で眺めてたんですが、会社のチャットツールでGoogle Wifi改造できるぞという話が上がっておりちょっとやってみたくなりました

そんなわけでメルカリで購入
価格は1500円くらいでした

<img src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2699725/cc6c45c3-89c5-4447-85a3-519476f68392.jpeg width="500px"/>

# 本編
### 用意するもの

* USB：2個（使いまわせば1個でも可）
  * 容量4G以上1個
  * なんでもいい1個
    *  USB 3.0のフラッシュドライブでは失敗することがあるらしい。可能であれば2.0のもの
* PD給電できるUSBハブ：1個
* LANケーブル：1本
* プラスドライバ：1本
* マイナスドライバ：2本程度
  * ツメ外す用。代替可能

## ふたを開ける

:::note info
使うもの
　プラスドライバー、マイナスドライバー
:::

結構手間取りました
初めに伝えますが、<b>破損しないで開けるのは結構大変です</b>

初めにネジを外します
隠しネジなどはなく、Gロゴの下側に露出しているネジ1本を外します
<img src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2699725/3c4a8585-f29e-4d40-952b-ccacb772c7f3.jpeg width="500px"/>

次にツメを外します
ツメの配置は以下の通りです

| ツメの位置 | 裏側からツメの写真（3か所破損済み） |
|--|--|
| <img src = https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2699725/b7ddd818-d682-4652-bf82-c5e20a2b577f.png />|<img src = https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2699725/6b35b30b-7f52-4e00-b0d9-99c2a6826306.png /> |

ここが厄介で、ツメを破損しないように開けるのは大変です
↓の感じで中の金属筒と外装の隙間があって、外装にツメが引っかかってる訳ではないため、外装をたわませて外そうとすると外装が傷つくだけです
| 参考画像 |
| -- |
|<img  src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2699725/35faf125-a3f8-4110-b709-ae39b654a92a.jpeg width="200px" title = "aaa"/> |

ツメを5か所いい感じに押し込みつつ、蓋を上方向に何とかして持ち上げるか
ツメを破損しながら開けるかの二択です

<INS>多分ツメを破損しながら開けたほうが、短時間かつ外装もきれいに開けられます</INS>
こんな感じにグッとして、ガッとこじると開きます
<img src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2699725/2763689d-9e22-439c-9728-5ffc4d82b129.jpeg width="500px"/>

蓋が開いてからは次のステップに進みます

## GoogleWifiのファクトリーリセット

:::note info
使うもの
　容量4G以上のUSB、PD給電可能なUSBハブ
:::

https://openwrt.org/toh/google/wifi#google_wifi

以降はこのサイトを見ながら、同様に進めます
初めに用意した4G以上のUSBにGoogleWifiのリカバリーイメージを書き込みます
リカバリーイメージは上記サイトの該当箇所から落としてきてください

>[openwrt](https://openwrt.org/toh/google/wifi#google_wifi)の「recovery image」と書かれたURLからダウンロード
>![スクリーンショット 2025-03-22 155111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2699725/5c192f24-a19c-40c7-9662-dde04297624a.png)

すると「chromeos_9334.41.3_gale_recovery_stable-channel_mp.bin.zip」といったファイルを入手できるので、これをUSBへ書き込みます
私は[Rufus](https://forest.watch.impress.co.jp/library/software/rufus/)を使って書き込みましたが、使い慣れているもので大丈夫です

準備が終わったら初期化していきます
1. USBハブに<INS>4GのUSBを差さずに</INS>準備
2. リセットボタン（背面のボタン）を押しながら、電源（USBハブ）を接続
3. 白色に点灯。16秒間リセットボタンを押し続ける
     （白 点灯→青 点滅→オレンジ 点灯と推移）
3. オレンジ色に点灯したら、リセットボタンを離す
3. 4GのUSBをUSBハブに接続
3. 消灯し、リカバリーが開始する
3. 約5〜6分後、デバイスが自動的に再起動
3. 青の点滅を始めたらリカバリー完了


## OpenWrtを起動する

:::note info
使うもの
　USB、PD給電可能なUSBハブ
:::


https://openwrt.org/toh/google/wifi#google_wifi

引き続きこのサイトを見ながら進めます
初めにOpenWrtをUSBへ入れます
下の画像のようにモデル名が書いてあるので、それを確認します

<img src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2699725/06a43f29-8ac4-4c9c-a5c4-2b18258bcbec.jpeg width="400px"/>


私の場合は「AC-1304」でした
モデル名が分かったら、OpenWrtのサイトからイメージを入手し、GoogleWifiのファクトリーリセットと同様にUSBへ書き込みます
Rufusの場合はファイル選択の時に「ディスクまたはISOイメージ」となっているところを「全てのファイル」に変更してファイル選択して書き込んでください
（書き込み後も少し使うのでPCに残しておいてください）

> [openwrt](https://openwrt.org/toh/google/wifi#google_wifi)のInstallationから、OpenWrtのFactoryImageを入手します
> 該当する欄のFactoryImageをクリックするとダウンロードできます
> ![スクリーンショット 2025-03-22 162915.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2699725/2f84d903-4363-4a6e-a035-e466ba434ff8.png)

以上でOpenWrtを入れるためのUSBが準備できました

続いてSW7スイッチを把握します
ものすごく小さくて押しずらいんですが、たびたび押すので把握しておいてください

> [openwrt](https://openwrt.org/toh/google/wifi#google_wifi)から引用
> 黄色の四角で囲われたところがSW7スイッチ
> ![スクリーンショット 2025-03-22 153957.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2699725/dcf804a8-44b3-451f-a006-80ad0e663789.png)

以上の準備が終わったらOpenWrtを入れていきましょう

:::note warn
　以下手順が終わっても本体にUSBは差したまま、次の「ファームウェアをOpenWrtに書き換える」へ行ってください
:::

1. USBハブに<INS>USBを差した状態で</INS>準備
2. リセットボタン（背面のボタン）を押しながら、電源（USBハブ）を接続
3. 白色に点灯。16秒間リセットボタンを押し続ける
     （白 点灯→青 点滅→オレンジ 点灯と推移）
3. オレンジ色に点灯したら、リセットボタンを離す
3. 3秒間放置
3. オレンジと琥珀色に点滅したら、SW7ボタンを押す
3. 紫色に1，2回点滅したあと消灯
3. 数秒待つ
3. 青色に点滅（再起動中）
3. 紫色に点滅、SW7ボタンを押す
3. 消灯、数十秒放置
3. 青色の速い点滅 →青色の遅い点滅
3. 消灯、30秒程度待つ
3. 青色に点滅
3. 青色に点灯

青色の速い点滅から、青色の遅い点滅まで来たらおそらくうまく言ってるかなと思います
もしそこまで行けなかった場合は、galeforceをフラッシュして、galeforce経由でSSHを使用してOpenWrtをフラッシュとなるようです
そちらは自分のほうでは試せてない…（申し訳ない…）

## ファームウェアをOpenWrtに書き換える
:::note info
使うもの
　PD給電可能なUSBハブ（差したまま）、LANケーブル
:::
青色の点灯が確認出来たら、次のステップではファームウェアを置き換えを行います
自分の場合だと公式通りにやってもうまく行かなったので、公式と少し異なります
初めに下の画像のように本体の右側のソケット（灰色のラベルのソケット）にLANケーブルを接続し、PCとLANケーブルでつなげ、192.168.1.1にPingを打ちます

<img src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2699725/b5453eb9-d726-4528-9954-a73837b4b7f0.jpeg width="500px"/>

コマンドプロンプトを管理者で実行し以下を入力
```
ping 192.168.1.1
```
うまくいっていれば「``Reply from 192.168.1.1: bytes=32 time<1ms TTL=64``」といったように応答が来ると思います
「``Request timed out.``」と出たら、手順通りにやっているか、本体が起動してるかを確認してください

続いてファームウェアのコピーを行います
OpenWrtのFactoryImage（USBへ書き込んだファイル）を適当なところへ配置（自分の場合はC直下に配置）し以下のようにSCPコマンドを打ちます
ファイルの場所は自分が配置した場所へ変更してください

```
scp -O C:/openwrt-24.10.0-ipq40xx-chromium-google_wifi-squashfs-factory.bin root@192.168.1.1:/tmp/
```

これがうまくいけば「``openwrt-24.10.0-ipq40xx-chromium-google_wifi-squashfs-factory.bin                     100%   21MB  12.5MB/s   00:01``」というログが出ます
「``openwrt-24.10.0-ipq40xx-chromium-google_wifi-squashfs-factory.bin: No such file or directory``」といったログが出た際はファイルの場所を再度確認してください

続いてeMMCへの書き込み
以下のコマンドを打ちます
```
ssh root@192.168.1.1 -C "dd if=/dev/zero bs=512 seek=7634911 of=/dev/mmcblk0 count=33 && dd if=/tmp/openwrt-24.10.0-ipq40xx-chromium-google_wifi-squashfs-factory.bin of=/dev/mmcblk0"
```
成功時には
``33+0 records in``
``33+0 records out``
``42578+1 records in``
``42578+1 records out``
というようなログが得られます

<b>ここまで来たら成功です！一度Google Wifiを再起動しましょう！</b>
再起動は、USBハブを本体から取り外すか``reboot``コマンドを実行することで行えます
（私はUSBハブをとりはずして再起動を行いました）

## ログインする
再起動を行うと青色に点滅しますが、これはOpenWrtが起動している最中となります
数十秒程度待つと青色の点滅が、青色の点灯へと変化します
青色の点灯を確認出来たら以下のコマンドを打ちます
```
ssh root@192.168.1.1
```
コマンドでログインしてみましょう
もし、
```
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 ~~ 中略 ~~ 
Host key for 192.168.1.1 has changed and you have requested strict checking.
Host key verification failed.
```
というエラーが出た場合は、
```
ssh-keygen -R 192.168.1.1
```
で192.168.1.1のホストキーを削除して再度``ssh root@192.168.1.1``を実行してみてください
うまくいけば、
```
Are you sure you want to continue connecting (yes/no/[fingerprint])? 
```
で``yes``を入力すると
```
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.1.1' (ED25519) to the list of known hosts.


BusyBox v1.36.1 (2025-02-03 23:09:37 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
```
が出てくると思います

# おわり
Google Wifiは古いものでも容量がそれなりにあって、中古なら2000円しないとあって、結構遊べるかなと思います
特に今回のGoogle Wifi ポイントは、広く使用されている＆他のGoogle製品と比べて機能が少なくて買い換えられやすいとあって、安く売られやすいように感じます

https://support.google.com/googlenest/answer/6300732?hl=ja

安い＆入手用意＆結構遊べると、遊び道具としては優秀かも…？

----
Twitter:

https://x.com/IKent1mm