2018年9月20日木曜日

【技術メモ】FiiO X7 MarkII にカスタムROM Fidelizerを焼いた(前編:カスタムROM焼き編)

焼くということ
FiiO X7 MarkII のOSはAndroidを使用しています。

Androidを使用しているということは、カスタムROMを焼くということです。(支離滅裂な発言

Androidなんだしアップグレード方法も先代X7から変わってなさそうだし、XDAあたりにカスタムROMとして誰か公開してるんじゃないか? と思って探していたらFidelizer PurisROMを見つけたので入れて見ました。

結論を言うと、例えば赤色が青色になる、みたいなレベルでは音は変わりません。 どうやってもハードウェアの作りで決まってしまう部分は変えようがないので。

なので今回は
「そもそもX7iiって音いいじゃん?だったら変わるかどうかじゃなくてROM焼き遊びしよう!」
というモチベーションだけだったはずでした。

結論としては「多分違いはあると思う...」くらいでの変化はあったように思います。
このあたりは最後の感想あたりを読んでみてください。

が、ROMの変更点を調べるといろいろなことがわかったのでとりあえずエントリーにしました。

今回はそのうちの前編です。
後編にはもう少し解析した結果あたりを書こうかと思います。

【技術メモ】FiiO X7 MarkII にカスタムROM Fidelizerを焼いた(後編:ROM解析編)



ここで書かれていること


  • カスタムROMって何
  • X7 MarkIIにカスタムROMを入れる理由
  • Fidelizerって何
  • 注意事項
  • 焼き方
  • 雑感
で書いてあります。

主に、なんで始めたの?とか、そもそもカスタムROMってなに?とか、当たり障りのない感じでお茶を濁そうかと思います。


カスタムROMって何

Androidはソースコードが公開されたオープンソースなOSです。

まだハードウェアが貧弱でiPh○neと操作感の軽さ・重さで比較されていた頃、「とある携帯端末のOS開発者共同体 -XDAコミュニティ-」ではあらゆる弱点や悪い操作感を補うため、たくさんのカスタムROMが開発され、あらゆる高速化や、あらゆる高音質化や、あらゆるアニメ化が行われてきました。

Android端末にはOSを書き換える方法が提供されていることと、OSのソースコードがあることも相まって、あらゆるカスタムROMが作られ、そしてオリジナルのAndroidにもたくさんのフィードバックをもたらしました。

X7 MarkIIにカスタムROMを入れる理由

X7 MarkIIはFiiO公式でUpgradeToolが公開されていて、当該バージョンのファームウェアも含まれています。そして、その更新方法も説明されています。

これは、
  • 正式な手順を踏めば 『多くの場合で』工場出荷状態に戻せること
  • メーカーオリジナルのファームウェアが手に入ること
とも言えることで、非常に恵まれた環境です。

そしてこのX7iiで使われるファームウェアは、内部ハードウェアの構成的に新しいものではないため既に解析手順が確立されていて、その手順さえ踏まえてしまえば分解してファイルを取り出すことも、元のファームウェアの形に戻すことも可能です。

再署名が必要だったりするスマートフォンのFirmwareより厳しくないのでその点も個人的には大変お気楽です。

分解が出来るということは、その中を読んで解析することも出来るし、ファイルが取り出せるということは改変することも出来るということで、非常に遊び甲斐のあるハードウェアです。

軽く探してみるとあっという間にFidelizer PuristROMが見つかります。
導入は公式のUpgradeToolでやるようです。
しかも無料!!これは遊べる!!

さすがに何も考えずいきなりファームウェアを書き換えるのは怖いので、ファームウェアを分解して内部で何が変更されているのか調査をしました。

具体的には以下の内容で確認しています。
  1. オリジナルとFidelizerのファームウェアを分解してファイルを抜き出した
  2. 抜き出したファイル同士で比較して、差異のあるファイルを調べた
その結果「ここ変えるの?それで変わるの?」という疑問がありましたが、その程度の変更でしかないとも言えるのでまあそんな大きな問題はないだろうという結論です。

なので、決して「いい音だから入れた!」とか「むっちゃ音変わるわ!なにこれすげー!」とかそんな理由ではありません。単純に面白そうだったから、という理由です。

ちなみにこのPuristROMとオリジナルとの差分は後編で詳しく書こうかと思います。

Fidelizerって何

PCをオーディオプレイヤー用にカスタマイズするアプリケーション、オーディオ用メディアサーバやトランスを使ったAC-DC電源を販売しているようです。

ちなみに、ぐりむは同社の製品は持っていないので品質等はよくわかりません。

そんな中、Fidelizerにポータブル向けがある、で、X7ii用もあるとのことだったのでとりあえず調べてみました。

ちなみに有料版もあって
  • EnhancedROM - 49.95USD
  • AdvancedROM - 99.95USD 
があります。
今回、このエントリーに合わせて検証するためAdvancedROMも買いました。

どんなことをしているのか、どういうことを目指して開発したのかについてはFidelizerのサイトで書かれています。

Introducing PerfectDynamics sound optimizations update for Fidelizer Enhanced and Advanced ROM

無料版のPuristROMがあるとのことだったので、探したところライトな微調整版なようでした。
Features:
-Play Store and Apollo – Fidelity Edition added (If applicable)
-Build configuration tweaks for better video and storage performance and improve battery life
-Bundled audio effects removed but keep main engine (For Poweramp that rely on audio effects)
-Some specific tweaks maybe added for important improvements
ざっくり日本語訳。
目玉機能:
-PlayStoreとApollo–FidelityEdition を追加 (外部アプリが使える場合)
-ビデオとストレージパフォーマンス、バッテリーライフに関する設定を調整
-標準で参照されているオーディオエフェクトを削除しました。が、メインのオーディオエンジンはそのままです(PowerAmpがこれに依存するためです)
-その他重要な改善があればいくつか追加される可能性があります
大きな変更点としては標準で参照されているオーディオエフェクトの削除ですね。おそらくこれがこのFidelizer PuristROMのメインでしょう。

ちなみに、Apolloというのは今は亡きCyanogenModというカスタムROMに同梱されていた音楽プレイヤーアプリです。
正直なところ、「Apollo必要?」とは思っています。ライセンスとか結構不明だし。

ところが、その後日談があって、有料版FidelizerだとApolloである必要が一部に内部の変更点にあってそういうことか!!という感じです。

ここについては有料版であり、彼らの研究成果だと思うので詳しくは触れないことにします。

注意事項

さて、この手のエントリーではお約束です。

1. 販売店、代理店のサポートは受けられなくなります

このエントリーでやっている行為は改造行為です。メーカーサポート外の行為です。
保証期間内であっても保証が切れます。
確実に販売店、代理店のサポート及び修理は受けられなくなります。

2. 起動しなくなる恐れが結構高い確率であります

X7iiには公式でUpgradeToolがあり、これを利用して書き込んでいるため、致命的な箇所を書き換える可能性は通常の改造より低いです。

ただし、「『多くの場合で』工場出荷状態に戻せる」だけで、特定の条件や操作ミスがあった場合に、工場出荷状態に戻す機能の部分を破壊してしまうことがあります。

ぐりむ個人ではこの点をどうにか出来る状態を作ってから作業をしています。
具体的には以下の2点です。
  • 過去ROMや現行ROMを何度もインストールして必ず同じ方法で復帰出来るか練習
  • 公式UpgradeToolが書き換えるところ以外のFlash領域も可能な限りバックアップを取る
最低限、オリジナルに戻す、過去のバージョンに戻すというROM焼きの練習はしておきましょう。
公開されたROMにバグがあった場合、絶対に必要になります。

戻し方がわからないと叫んでも誰も助けてくれませんし、ぐりむも助けません
どのような丁寧なお願いであっても受け付けません。

上の項で書いたとおり、改造行為であるため代理店サポートも販売店サポートも失われます。問い合わせても相手にして貰えません。

3. ぐりむのサポートは受けられませんし、ぐりむはサポートしません

更新に失敗する、あるいはROMにバグがある等で簡単に起動不能になります。
仮に220gの文鎮あるいはレンガになったとしても、誰も責任は取りません。

「焼き方がわからない」、「元に戻し方がわからない」、「何を言っているのかわからない」など、どんな状態においてもぐりむはサポートしませんし、懇切丁寧にも教えません。

むしろ、ここに書かれていることがわからない場合は手を出さない方が懸命です。

焼き方

基本は公式のファームウェアアップデートツールで掲載されている手順を参照!

FiiO Japan - X7 Mark II サポートページ

Fidelizerでも一応解説しているので参照!
カスタムROMもここからダウンロードします。

Fidelizer - Fiio X7ii Purist ROM version 1.0.6 released with bright sound signature fixed

雑感

ROM焼き楽しいです!中身見るの楽しいです!

GooglePlayMusicなどストリーミングサービスで音楽を聴く関係上、この当時公開されていたVer1.0.6ではメインストレージの容量が足りませんでした。

そこで、メインストレージが4GBになる公式Ver1.0.7JPとFidelizerを分解したあとに合体させて再構築した、「ぐりむ版Fidelizer PuristROM Ver1.0.7JP」を作って利用しています。

これと平行して、Fidelizer側にPullRequestというかVer1.0.7JPを取り込んで貰えないか?というメールを送って一週間くらいやり取りしました。

結果、取り込んでもらえました。

Fidelizer - Fiio X7ii Purist ROM version 1.0.7 JP update with partition mapping update released

音変わった?

変わった(かもしれない)感じがします。

奥行き側に音がバラけるようになったかな?どうかな?くらいの違いです。
奥行き方向に立体感が出たように感じますが、ぶっちゃけ、ROM焼くのに30分くらいかかるので比べられないというかなんというか。

が、この「変わったかも?」という自分の感覚にも疑問があります。

FiiO MusicやUSBAudioPlayerPro、NutronMediaPlayerといった音楽再生機能に定評のあるアプリたちはこの変更点をおそらく使っていないはずだからです。

これはアプリ側の解析が必要になるので今回のROM焼き遊びとは切り離して別途調査が必要そうです。

現時点では操作感や安定さが失われたということもないですし、聴いた感じ特に違和感もないし、良好な変化があったと自分のアタマが認識しているみたいので、まあ特に元に戻すこともないかな?と思っています。

現時点では変更点は調べ終わっているので楽観的に言えるのですが、そんな激しい変更内容でもないのでそりゃそうか、という感じです。

なお、ココだけの話、ファームの更新回数とかは取られていないっぽいので、電池劣化やボタン取れたみたいなときはオリジナルのROMに戻せば多分修理出来るんじゃないかな、と思ったりしています。

だから必ず元のROMに戻せるかどうか練習くらいはしておきましょう。

後編があります

この記事には後編があります。
【技術メモ】FiiO X7 MarkII にカスタムROM Fidelizerを焼いた(後編:ROM解析編)

Fidelizerに寄った話が多くなりそうだったので後編を書くことにしました。