W04 firmwareをrakutenSIMで使いたいので作成
  • Python 98.5%
  • HTML 1.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
joe 0bbf06b216 ファームウェア内部構造解析結果をドキュメント整備
- TECHNICAL.md §13: パーティション構成・APP内バイナリ・dialupapn_enable
  の仕組み・ロック解除方法3種・NVRAM・Kernel構成を追加
- README.md: APN設定セクションを更新、100003エラーの原因と対策を明記
- エラーコード表: 100003を「機能無効化」に修正

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-08-28 17:55:34 +09:00
DownGraderW04_2.010 W04ファームウェアダウングレードツール (Linux版) 2026-08-28 12:18:29 +09:00
firmware W03 (HWD33/KD08) 対応追加 + ファームウェアハッシュ登録 2026-08-28 14:23:56 +09:00
.gitignore W04ファームウェアダウングレードツール (Linux版) 2026-08-28 12:18:29 +09:00
README.md ファームウェア内部構造解析結果をドキュメント整備 2026-08-28 17:55:34 +09:00
TECHNICAL.md ファームウェア内部構造解析結果をドキュメント整備 2026-08-28 17:55:34 +09:00
w04_downgrade.py W03 (HWD33/KD08) 対応追加 + ファームウェアハッシュ登録 2026-08-28 14:23:56 +09:00

W04 ファームウェアダウングレード手順書

Speed Wi-Fi NEXT W04 (Huawei HWD35 / KD10) を楽天モバイルで運用するための ファームウェアダウングレード手順書。

概要

W04を楽天最強プランで運用するには、Band 3 (44011) とauローミング Band 18 (44053) を有効化できるファームウェア 11.450.05.45.824 へダウングレードする必要がある。

出荷版の 11.450.05.52.824 では非WiMAX SIM時のBand 3がブロックされるため、 Linux環境からWiFiUpd.exeのプロトコルを再現してダウングレードを行う。

対象ハードウェア

項目 値
機種 Speed Wi-Fi NEXT W04
Huawei型番 HWD35
ハードウェアバージョン CL1KD10UM / KD10
接続方式 USB (CDC Ethernet) または Wi-Fi
管理IP 192.168.100.1
WebUI認証 admin / IMEI末尾5桁

必要環境

Linux側

  • Python 3.8+
  • パッケージ: unicorn, pefile, pycryptodome, requests
  • W04とのネットワーク接続 (USB または Wi-Fi)
pip install unicorn pefile pycryptodome requests

W04側

  • ファームウェア 11.450.05.52.824 (ダウングレード前)
  • 電源安定供給 (ファームウェア適用中は絶対に電源切断しない)
  • WebUIにログイン可能な状態

必要ファイル

  1. WiFiUpd.exe — 認証フロー抽出元

    • W04firmwareパッケージに同梱
    • パス例: /tmp/wifiupd/W04firmware/WiFiUpd.exe
  2. ファームウェアZIP — KD10/HWD35専用

    • 推奨: kd10_UPDATE_11.450.05.45.824_22.001.25.00.03.ZIP
    • サイズ: 約104 MB
    • MD5: 10a8d6d2f56b44eaf9be3a5a2627ab06
    • SHA-1: 33b027b65dfbbb4130270ba4121858dc365de445

⚠️ W03/W05用ファームウェアは使用しないでください。文鎮化の危険があります。

下準備

1. W04への接続確認

USB接続の場合、W04はCDC Ethernetデバイスとして認識される:

# USBデバイス確認 (12d1:14db がW04)
lsusb | grep 12d1

# インターフェース確認
ip addr show | grep 192.168.100

# W04応答確認
curl -s http://192.168.100.1/api/device/basic_information | grep softwareversion

2. ネットワーク設定の注意点

W04はDHCPサーバーを稼働させるため、Linux側のネットワーク設定に注意:

  • W04インターフェース (enx2054fa301ac6 等) は固定IPを設定
  • 例: 192.168.100.10/24
  • デフォルトゲートウェイを指定しない (W04経由のルーティングを避けるため)
  • 既存のデフォルトルート (Wi-Fi/Ethernet) は維持

これによりW04との通信が切れず、インターネット接続も維持される。

3. ファームウェアファイルの検証

# サイズ確認 (約104 MB)
ls -la kd10_UPDATE_11.450.05.45.824_*.ZIP

# ハッシュ確認
md5sum kd10_UPDATE_11.450.05.45.824_*.ZIP
# 期待値: 10a8d6d2f56b44eaf9be3a5a2627ab06

sha1sum kd10_UPDATE_11.450.05.45.824_*.ZIP
# 期待値: 33b027b65dfbbb4130270ba4121858dc365de445

# ファイル名に kd10 が含まれることを確認
ls kd10_UPDATE_*.ZIP

ダウングレード手順

ステップ1: 現在のバージョン確認

python3 /opt/code/tmp/w04/w04_downgrade.py --check-only

出力例:

デバイス: http://192.168.100.1
ファームウェア: 11.450.05.52.824
WebUI: 14.100.03.97.09
自動アップデート: 有効

.52.824 であることを確認。既に .45.824 の場合は不要。

ステップ2: ダウングレード実行

python3 /opt/code/tmp/w04/w04_downgrade.py \
    --firmware /path/to/kd10_UPDATE_11.450.05.45.824_22.001.25.00.03.ZIP \
    --exe /path/to/WiFiUpd.exe

オプション:

  • --host http://192.168.100.1 — W04のIP指定 (デフォルト: 192.168.100.1)
  • --yes / -y — 確認プロンプトをスキップ
  • --max-wait 300 — 再起動待機の最大秒数 (デフォルト: 300)

ステップ3: 処理の進行

スクリプトは以下を順番に実行する:

  1. 現在のファームウェアバージョン確認
  2. ファームウェアファイルのハッシュ計算・KD10互換性チェック
  3. WiFiUpd.exeからWhitebox AESエミュレータ初期化
  4. 埋め込み認証シード・RSA秘密鍵の復号検証
  5. wifiupdateAuth APIでファームウェア更新認証
  6. filemanager/upload APIでファームウェア転送 (約104MB)
  7. デバイス再起動待機 (約90秒)
  8. ダウングレード完了確認

⚠️ ステップ6〜7の間、絶対にW04の電源を切らないでください。 ファームウェア適用中の電源断は文鎮化の原因になります。

ステップ4: 完了確認

出力例:

============================================================
  ダウングレード完了!
============================================================
  Before: 11.450.05.52.824
  After:  11.450.05.45.824
  WebUI:  14.100.03.96.09
  自動アップデート: 無効 (確認済み)

ダウングレード後の設定

1. 自動アップデート無効化確認

ダウングレード後、自動アップデートが無効化されているか確認:

curl -s http://192.168.100.1/api/online-update/autoupdate-config

期待値:

<response>
<auto_update>0</auto_update>
<ui_download>0</ui_download>
</response>

auto_update=0 でない場合、WebUIから手動で無効化すること。 無効化しないと再び .52.824 に戻る危険がある。

2. バンド設定確認

# 利用可能バンド一覧
curl -s http://192.168.100.1/api/net/net-mode-list

# 現在の設定
curl -s http://192.168.100.1/api/net/net-mode

利用可能LTEバンド (確認済み):

  • Band 1 / Band 3 / Band 5 / Band 17 / Band 18 / Band 41 / Band 42
  • Band 3 = 楽天 (44011)
  • Band 18 = auローミング (44053)

注意: APIからのバンド変更はファームウェアレベルでロックされている (dialupapn_enable=0, エラー125003)。 SIM挿入時にNetworkMode=03 (auto) で自動選択されることを期待。

3. APN設定

APIからのAPN変更はキャリアファームウェアでロックされている (dialupapn_enable=0, エラー 100003)。

プロファイル管理を有効化する方法 (技術詳細は TECHNICAL.md §13):

方法 リスク 概要
A. 設定ファイル書換 低 /api/system/downloadcfg → 書換 → /api/device/uploadconfigfile
B. ファームウェア改造 中 bin/device をパッチしてリパック
C. ADB有効化 高 factory_remove_usb_config をパッチ

方法A が最も安全。設定ファイルが暗号化されている場合は要復号検証。

SIM挿入時の自動APN設定 (au_operatorprofile.xml / uq_operatorprofile.xml から生成) に頼ることも可能。まずSIM挿入で自動設定されるか確認し、 ダメなら方法Aを試すのが推奨順序。

4. 楽天SIM挿入

  1. W04の電源を切る
  2. SIMトレイを開き、楽天SIMを挿入
  3. 電源を入れる
  4. 約30秒待機
  5. 状態確認:
# SIM状態確認
curl -s http://192.168.100.1/api/pin/status | grep SimState
# SimState=257 はSIM未挿入、256は準備完了

# PLMN確認
curl -s http://192.168.100.1/api/net/current-plmn
# Numeric=44011 は楽天
# Numeric=44053 はauローミング

# 接続状態確認
curl -s http://192.168.100.1/api/monitoring/status | grep ConnectionStatus
# 902=接続可能、900=接続中

# APN確認
curl -s http://192.168.100.1/api/dialup/profiles | grep -oE '<ApnName>[^<]+</ApnName>'
# rakuten.jp が表示されれば成功

トラブルシューティング

接続できない

# インターフェース確認
ip addr show | grep 192.168.100

# W04応答確認
curl -v http://192.168.100.1/api/device/basic_information

# USBデバイス確認
lsusb | grep 12d1
# 12d1:14db = ネットワークモード (正常)
# 12d1:1f01 = CD-ROMモード (modeswitchが必要)

認証失敗

WiFiUpd.exeのパスが正しいか確認:

file /path/to/WiFiUpd.exe
# PE32 executable (GUI) Intel 8036 であること

アップロード失敗

  • ファームウェアファイルが破損していないかハッシュ確認
  • ファイル名に kd10 が含まれているか確認
  • W04の空き容量確認 (WebUIから)

ダウングレード後に元に戻る

自動アップデートが有効になっていないか確認:

curl -s http://192.168.100.1/api/online-update/autoupdate-config

auto_update=1 の場合は手動で無効化する。

デバイスが復帰しない

  • --max-wait を増やして再試行 (例: --max-wait 600)
  • W04の電源ランプを確認
  • USB接続の場合、再挿入してみる

制限事項

  • APIからのAPN変更・バンド変更はキャリアファームウェアでロックされている
  • APN・バンドはSIM挿入時の自動設定に依存 (または設定ファイル書換で解除可能)
  • 本手順はKD10/HWD35 (W04) 専用
  • W03 (KD08) は別ツール・USBリカバリモードが必要
  • W05 (KD16) はBand 3対応ファームウェア入手後に対応予定
  • ファームウェア適用中の電源断は文鎮化の原因

ファイル構成

/opt/code/tmp/w04/
├── README.md              # 本ファイル (運用手順書)
├── TECHNICAL.md           # 技術詳細 (リバースエンジニアリング)
├── w04_downgrade.py       # ダウングレードスクリプト
└── DownGraderW04_2.010/   # Windows版ダウングレードツール (参考)

参考情報

  • WiFiUpd.exe: W04純正ファームウェア更新ツール (Windows)
  • DownGraderW04: 別手法のダウングレードツール (Windows, cradle/AP-mode必須)
  • 本スクリプトはWiFiUpd.exeのプロトコルをLinuxで再現したもの

技術詳細は TECHNICAL.md を参照。