このガイドは、ADBやfastbootといった、基本的なコマンドを知っているユーザーのみを対象としています。
Android プラットフォーム ツール も必要です。こちらを参考に準備してください。
以下の手順はMacでのみテストしました。- あなたが何かミスをしてデバイスを壊しても、私は責任を負いません、文句も受け付けません。
- あなたの隣で技術的な問題を解決することはしません。
- adbのインストール方法やコマンドの実行方法などの基本的なことは教えません。
まず、次の手順に従ってください。:
- Walkmanの開発者向けオプションで、USB デバッグを有効にする
- WalkmanをWindows PCに接続する
adb
コマンドが実行できるか確認し、adb shell getprop ro.boot.slot_suffix
を実行する- 出力された結果から、実行パーティションが「a」か「b」のどちらか確認してメモする
- こちらから
uuu.exe
をダウンロードする uuu.exe
を作業用ディレクトリに置き、uuu
コマンドが動作するかを確認する- 上手く動作しない場合、
uuu.exe
を直接ターミナルにドラッグして実行することもできます
uuu
コマンドは、実行中のパーティションにのみ影響を与えます。
ブートローダー・アンロック(BLU)を行うことで、全てのデータが削除されますのでご注意ください。
また、最新版「4.06」までアップデートしていても「4.04」まで戻ってしまう例が確認されています。
アップデーターに問題は起きないため、もう一度最新版までアップデートしてください。
- 開発者向けオプションで、「OEMロック解除」と「ADBデバッグ」を有効にする
adb reboot bootloader
を実行してfastboot モードに入る- fastboot モード(SONYのロゴが表示された状態)で、次のコマンドを実行する
- Mac/Linux:
fastboot oem unlock
- Windows:
uuu FB: oem unlock
- Mac/Linux:
- これを実行すると、上手く実行できなかったような挙動をしますが、実際にはデバイス内でユーザーデータ パーティションを消去しようとしています これには500秒(約8分)ほどかかります
- アンロックが完了したら、次のコマンドを実行して再起動する
- Mac/Linux:
fastboot reboot
- Windows:
uuu FB: reboot
- Mac/Linux:
この手順はカスタム カーネルを使用するために必要です。
AVBを無効にするには、次のコマンドを使用してblank_vbmeta.img
をフラッシュします。 :
- Mac/Linux:
fastboot --disable-verity --disable-verification flash vbmeta blank_vbmeta.img
- Windows(_a):
uuu FB: flash vbmeta_a blank_vbmeta.img
- Windows(_b):
uuu FB: flash vbmeta_b blank_vbmeta.img
最初に数回bootloopが発生し、その後Android システムの起動に失敗したことをリカバリが通知します。
ここではfactory resetオプションを選択する必要があります。 ボリュームを使用してカーソルを選択し、電源ボタンを使用して確認します。
工場出荷状態にリセットすると、OS が正しく起動するはずです。
このリポジトリのカーネルソースには、KernelSUのサポート、より低いCPU周波数と省電力なガバナーのパッチを適用しています。
configには提供されているwalkman.config
ファイルを使ってください。
ビルド済みのカーネルはこちら。これをフラッシュするには、fastbootモードに入り、以下のコマンドを実行します。
- Mac/Linux:
fastboot flash boot boot-zx500.img
. - Windows(_a):
uuu FB: flash boot_a boot-zx500.img
- Windows(_b):
uuu FB: flash boot_b boot-zx500.img
UAE、SEA、HK、SKおよびオセアニア市場向けに、ZX500のボリューム上限を開放できます。A100は未確認で、おそらく効果はないです。
- 上記すべての作業を行う(ブートローダーのアンロック、avbの無効化、カーネルのフラッシュ)
- KernelSUアプリをこちらからダウンロード・インストールする
- KernelSUアプリを開き、Shell(com.android.shell)のスーパーユーザーを有効にする、
- 開発者オプションでADBデバッグを有効化する
- USBでWalkmanをPCに接続する。
adb shell
を実行してShellに入る su
を実行してroot権限を取得するnvpflag shp 0x00000006 0x00000000
を実行し、次にnvpflag sid 0x00000000
を実行してdestination codeを E に切り替える- USB接続を外し、Walkmanを再起動する。
まず、デバイスのkey stringが必要です。adbを有効にして、adb shell cat /vendor/usr/data/icx_nvp.cfg
を実行します。キー文字列はNAS sectionにあります。
次にjava -version
を実行し、パスに java バージョン>1.8
があることを確認します。ファームウェア復号化ツールはここからダウンロードしてください。PowerShellなどのターミナルアプリでjava -jar nwwmdecrypt.jar -i <input file> -o <output file> -k <key string>
を実行して、復号化ツールを実行します。
復号後、zipファイルを解凍します。payload_dumperを使用して、解凍したzipファイル内のpayload.binファイルを解凍します。
- NW-ZX500シリーズ v4.06 国際版ROM: https://drive.google.com/file/d/1TUFwOOrex2miPd41UAhe8ioKbxIv4M0R/view?usp=sharing
- NW-ZX500シリーズ v4.04 中国版ROM (GAppsが無いので、少しだけバッテリー持ちが良いです): https://drive.google.com/file/d/1z8CucsLx0LJ-0HU50QxVYnx8VHVroP7U/view?usp=sharing
- NW-A100シリーズ v4.06 国際版ROM: https://drive.google.com/file/d/1hiNf9VFeh0osPwbGtI2NeH9T5AHZtUJK/view?usp=sharing
【訳者追記】こちらの記事に一通りの事はまとめました。
【For English Users】Please read this article. If you can't read japanese, use translate app.
電源オン時にVol-とFFを押し続けます。
ファームウェアアップデートファイルの最初の128バイトには、ファイルのmagicとSHA-228ダイジェストを含まれています。
最初のバイトはmagic"NWWM "で、次の56バイトはASCII 16進数で格納されたSHA-224ダイジェストです。残りは不明です。
暗号化されたデータは、標準的なAndroid OTAアップデートのzipファイルです。変換スキームはAES/CBC/PKCS5Paddingです。
暗号化キーはプレーンテキストで/vendor/usr/data/icx_nvp.cfg
に48文字長のASCIIテキストとして格納されています。
最初の 32 バイトがAESキーで、次の 16 バイトが初期化ベクターです。NW-A100シリーズとNW-ZX500シリーズではキーが異なります。
- コンフィギュレーション、フラグ、キーなどはすべてraw列としてnvpに格納されています。
vendor/bin
にあるnvp
、nvpflag
、nvpinfo
、nvpnode
、nvpstr
およびnvptest
は、nvp の値を操作するために使用されるデバッグツールであると考えられます。nvp
はバイナリのパーティションを16進形式で表示するために使用されます。nvpflag
はdestinationなどのフラグを表示したり書き込んだりするのに使用されます。nvpstr
はnvpの他の文字列変数を制御します。- その他の変数の使用目的は不明です。