設備:Panasonic P-01H,FOMA 調試線纜

環境:Windows 11 的 WSL2 Ubuntu

軟體:ktdumper / panasonic-sideloader

詞彙解釋

掛載:將手機的檔案系統暫時連接到 PC ,並允許 PC 直接讀寫

側載:不透過官方管道,直接將程式複製安裝到手機

P-01H:一款翻蓋手機,支援加載 i-Appli 遊戲

FOMA 調試線纜:經過改裝的 USB - FOMA 接口線纜

準備工作

安裝 WSL2

WSL2 可用於在 Windows 10/11 上模擬 Linux。

中文網路上非常多安裝 WSL2 的教學,這裡不再闡述。

在本教學中,我們將在 WSL2 的 Ubuntu 系統中完成對手機的掛載和側載。

準備環境

打開一個 WSL2 終端機(Ubuntu)

1
2
3
4
5
6
7
8
9
# 安裝全部必要依賴
sudo apt update
sudo apt install git python3-fusepy python3-pip build-essential

# 克隆 ktdumper
git clone https://github.com/ktdumper/ktdumper

# 克隆 panasonic-sideloader
git clone https://github.com/ktdumper/panasonic-sideloader

ktdumper 會將手機掛載到 PC 上。

panasonic-sideloader 則會將遊戲側載到手機。

安裝 usbipd-win

打開一個終端機(PowerShell)

1
2
# 安裝 usbipd-win
winget install --interactive --exact dorssel.usbipd-win

完成安裝後,重載 PowerShell,以使環境變數刷新。

1
2
# 驗證是否輸出當前 PC 所連結的 USB 裝置
usbipd list

usbipd-win 是將本機的 USB 裝置附著到 WSL2 的『橋梁』。

USB 通信

  1. 手機關機,取出電池;
  2. 使用 FOMA 調試線纜連結手機到 PC;
  3. 打開一個終端機(PowerShell)
1
2
# 列出所有 USB 埠
usbipd list
  1. 檢查是否有『Unknown device』裝置,該裝置即為 P-01H
1
2
3
4
5
# 找到 P-01H,以 BUSID 为引数绑定
usbipd bind --busid X-X

# 附加到 WSL2
usbipd attach --wsl --busid X-X

如果提示未偵測到正在運行的 WSL2,那麽請打開或者重載 WSL2 之後,再執行附加指令。

附加成功後,在 WSL2 的終端中進行檢測:

1
2
# 在 WSL2 中检查通信
lsusb

若可偵測到『Panasonic』裝置,則可進行下一步。

備份手機

1
sudo ./ktdumper.sh p-01h dump_emmc

這一步的速度視線纜的傳輸速度而定。

若不想備份則可直接跳過此步,這不會影響後續掛載手機的操作。

備份完成後,請 斷開連接,並重新完成一次 USB 通信

掛載手機

在 WSL2 終端中執行以下指令:

1
2
3
4
5
# 進入 ktdumper 路徑
cd ktdumper

# 使用 ktdumper 對裝置 P-01h 進行掛載
sudo ./ktdumper.sh p-01h fuse_user

若掛載成功,終端會打印說明。


打开第二个 WSL2 终端:

1
2
# 運行,並耐心等待 Fuse 的讀取
sudo mount -o loop /tmp/ktdumper_fuse /mnt

讀取的進度將反饋在第一個 WSL2 終端中。

讀取完成之後,現在可以在 /mnt 下訪問裝置的使用者區域。

i-Appli 檔案位於: /mnt/cont2/javaap 下。

1
2
# 若要拔出手機,請先移除掛載
sudo umount /mnt

開始側載

打開第三個 WSL2 終端:

1
2
# 進入側載脚本的路徑
cd panasonic-sideloader

Win + E,打開資源管理器,進入: \\wsl.localhost\Ubuntu\home\[YourNames]\panasonic-sideloader

在該路徑下,放置你想側載的程式。其格式如下:

1
2
3
4
FolderName
├─ Game.jam
├─ Game.jar
└─ Game.sp

檔案或是資料夾名稱可以不同,但副檔名必須絕對正確。

1
2
# 執行側載命令,『FolderName』為遊戲資料夾的名稱
sudo python3 sideload.py FolderName /mnt/cont2/javaap

如果您想側載多個程式,其期望的格式如下:

1
2
3
4
5
6
7
8
9
10
FolderName
├─ Game1
└─ Game.jam
└─ Game.jar
└─ Game.sp
├─ Game2
└─ Game.jam
└─ Game.jar
└─ Game.sp
├─ ……

側載命令將自動遍歷『FolderName』下的全部檔案,並依次側載。

1
2
# 執行側載命令,『FolderName』為遊戲資料夾的名稱
sudo python3 sideload.py FolderName /mnt/cont2/javaap

若側載失敗,请检查資料夾名稱是否錯誤,或是資料夾内部的結構是否正確。


⚠️側載結束後,請務必先移除掛載再拔出手機。

1
2
# 若要拔出手機,請先移除掛載
sudo umount /mnt

後記

在 iDK Doja 5.1 上體驗了《東方冰幻鏡》之後,我徹底被其折服。

混關遊戲之後,本以為事情會就此翻篇,但在實機上遊玩冰幻鏡的念頭與日俱增。

這份貼文,應該算是這份『執念』的伴生產物吧?

不過在實際體驗之後,我還是無比懷念我的 XBOX 360 手把(笑)。

這台 P-01H 是我花費 1980 JPY 在 Mercari 購置的,本來是抱著『撿垃圾』的心態試一試,但實際入手後,成色相當不錯。

這也是我第一次接觸日本手機,P-01H 的設計感和握持感非常之好。閑暇之時,我總會忍不住把玩它 : )

Keitai Archive 社群的高手製作的程式和指南非常棒,這給了我不小的幫助,它們在參見之中 : )

參見

I-Appli Sideloading Guide 訪問 Null
Custom Debug Cable (i-mode/SoftBank) Guide 訪問 Null
ktdumper Github 訪問 Null
panasonic-sideloader Github 訪問 Null