- Python 98.5%
- HTML 1.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
- 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> |
||
| DownGraderW04_2.010 | ||
| firmware | ||
| .gitignore | ||
| README.md | ||
| TECHNICAL.md | ||
| w04_downgrade.py | ||
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にログイン可能な状態
必要ファイル
-
WiFiUpd.exe — 認証フロー抽出元
- W04firmwareパッケージに同梱
- パス例:
/tmp/wifiupd/W04firmware/WiFiUpd.exe
-
ファームウェア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: 処理の進行
スクリプトは以下を順番に実行する:
- 現在のファームウェアバージョン確認
- ファームウェアファイルのハッシュ計算・KD10互換性チェック
- WiFiUpd.exeからWhitebox AESエミュレータ初期化
- 埋め込み認証シード・RSA秘密鍵の復号検証
wifiupdateAuthAPIでファームウェア更新認証filemanager/uploadAPIでファームウェア転送 (約104MB)- デバイス再起動待機 (約90秒)
- ダウングレード完了確認
⚠️ ステップ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挿入
- W04の電源を切る
- SIMトレイを開き、楽天SIMを挿入
- 電源を入れる
- 約30秒待機
- 状態確認:
# 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 を参照。