Sponsored Contents

weirdの最新記事

Image credit:
Save

残念4Kアクションカムのファームウェアを書き換えて遊んでみました(ウェブ情報実験室)

アクションカムでAndroidが動いてるとは思ってなくてビックリ

宮里圭介(Keisuke Miyasato)
2017年1月23日, 午後03:00 in weird
376シェア
75
131
0
170

連載

注目記事

IQOS、gloより5倍お得な加熱式タバコ「ヴェポライザー」で知っておきたいこと使い方やメンテ術解説(世永玲生)

IQOS、gloより5倍お得な加熱式タバコ「ヴェポライザー」で知っておきたいこと使い方やメンテ術解説(世永玲生)

View

人気記事

カシオ PRO TREK Smart WSD-F20Xレビュー、アウトドア用スマートウォッチをゲレンデで試してみた
101

カシオ PRO TREK Smart WSD-F20Xレビュー、アウトドア用スマートウォッチをゲレンデで試してみた

Hirotaka Totsu, 14 時間前
View

こんにちは、フリーライターの宮里です。

勢いで買った激安4Kアクションカムは、変な笑いが出るくらい残念な画質でした。このままおもちゃ箱にブチ込んで終わりでもよかったのですが、ちょっと調べてみたら、ファームウェアをいじって遊べるようです。できるとなれば、やりたくなるのが人間の心理ってもんでしょう。ということで、ファームウェアの書き換えを試してみました。

この記事は、身近にある「疑問」や「不思議」を検証する『ウェブ情報実験室』です。

実験の目的

アクションカムのファームウェアを別のもの(より新しいもの)へ書き換える

動機

以前、大変残念な画質の激安4Kアクションカムにもイイトコがないかと頑張って探してみましたが、正直なところ、「まだマシ」な部分をイイトコといってました。ごめんなさい。

最近の製品はスマホをはじめ、カメラなんかも販売後にファームウェアの更新で機能や性能が向上したりするものですが、アクションカムも例外ではありません。実際、多くのメーカーが新しいファームウェアをリリースしています。つまり、購入したこの子にも新しいファームウェアが出れば、画質が飛躍的に向上する可能性が少しは残されているわけです!

ですが、この子は販売元のメーカーサイトにそもそも製品が載っていないという不遇な子。しかも、ファームウェアがダウンロードできるようなサポートページも見当たりません。つまり、ファームウェアの更新による改善が絶望的なわけで、さっそく可能性がゼロになりました。

公式がダメなら非公式にやるまでよ、というのが今回の動機です。諦めが悪いのです。

そんなわけで勝手にファームウェアの書き換えができないか調べてみたところ、さすが世界は広いです。似たようなことを考える人は多くいるわけでして、大変参考になる掲示板が見つかりました。

GoPrawn
Allwinner V3 + Sony IMX179/s and Omnivision OV4689 action cameras.

アクションカムに使われているSoCで多いのが、低価格ながらそこそこの画質で定評ある製品が採用しているNovatekと、激安タブレットやスティック型のAndroid端末なんかでよく聞くAllwinnerの2社です。この掲示板では「Allwinner V3」というSoCを採用したアクションカムについて語られています。

なお、以前の記事では触れませんでしたが、私が購入した製品は「Allwinner V3」(PDF注意)を採用したものです。実はこのSoCのスペックを調べてみると、動画は最大FHD/60fps、静止画は8Mまでと書かれています。つまり、スペックを調べた時点で4K撮影が無理なことはわかっていました。当然のように、結果はひどいものでした。



前の記事の話はこの程度で。気持ちを切り替え、今回のファームウェア書き換えの話に戻りましょう。

Google先生の翻訳に頼りながら書き込みを読み進めていくと、Allwinner V3を使ったアクションカムはAndroidで動いていること、ファームウェアのバックアップ用スクリプトがあること、バックアップされたファームウェアが多数アップロードされていることなどがわかりました。さらにモジュールの書き換えや、microSDからの起動といった難しい内容も書かれてるのですが、手を出すには難しすぎます。まずは比較的手軽にできそうなものとして、具体的に3つを目標を立ててみました。

1.ファームウェアのバックアップを取る
2.他社製ファームウェアへの書き換え
3.起動画面とシャットダウン画面の書き換え


「1」は、2や3のファームウェア書き換えが失敗した場合でも、元に戻せるようにしておくための保険です。またハードウェア構成を知るためにも、現在動作しているファームウェアのバックアップが必要となります。

「2」は、ハードウェア構成が似ていれば、他社製ファームウェアでも動くのではないか、という期待です。製造元が各販売メーカー向けにファームウェアをカスタマイズして出荷しているわけですから、結構いけるんじゃないでしょうか。あわよくば、画質の改善や機能向上もあるんじゃないかという淡い期待があります。

「3」は、起動時とシャットダウン時に表示される画像を差し替えるという、ファームウェアカスタマイズの第一歩。機能や性能とは関係ないちょっとしたお遊びですが、自分だけのアクションカメラにできるのは魅力的ですよね。一部にニーズがありそうな痛化もできます

ということで今回は手始めとして、この3つを試してみます。

実験対象

対象とするのは『Excelvan Q8』。Amazonでは1月20日現在、5000円を切っていました。激安。



ハードウェア構成は、SoCが「Allwinner V3」、CMOSセンサーが「IMX179」、LCDコントローラーが「ST7789v」となります。

実験方法

先に断っておきますが、ファームウェアの書き換えや改造はすべて自己責任でお願いします。この手順通りに作業しても動かなくなる可能性はありますので、リスクは覚悟してください。

まずは3つの目標とその実現方法について、おおまかな手順と必要となるファイルのダウンロード先を紹介しておきます。実際の作業や結果に関することは実験結果で。

<実験1>ファームウェアのバックアップを取る
1.アクションカムをWindows PCとUSBで接続
2.必要ならドライバーをインストールして、Android端末として認識させる
3.バックアップスクリプトを実行してファームウェアを保存する

必要なファイル:
ドライバーバックアップスクリプト

より具体的な手順が知りたいという人は、以下の動画が参考になります。PCとUSB接続するところからファームウェアをバックアップするまでのすべての手順がまとまっていますので、迷うことなく作業できるかと思います。




<実験2>他社製ファームウェアへの書き換え
1.カメラの上ボタンを押しながらPCとUSB接続(バッテリーは抜いておく)
2.recoveryドライバー※をインストール
3.他社のファームウェアをダウンロードして「full_img.fex」を取り出す
4.「makeimg.bat」を使い「full_img.fex」から書き込み用のイメージを作成
5.「PhoenixSuit」を使って作成したイメージを書き込む

※Windows側で署名なしドライバーをインストール可能にしておく必要がある

必要なファイル:
ドライバーファームウェアイメージ作成スクリプトPhoenixSuit

こちらも具体的な手順を紹介した動画がありますので、参考にしながら作業するとわかりやすいです。




<実験3>起動画面とシャットダウン画面の書き換え
1.スクリプトのセットをダウンロードして展開
2.ファームウェア「full_img.fex」を「unfex.bat」で分解
3.320×240ドットのjpg画像を用意する
4.「jpg2img.bat」を使い、用意した画像へと差し替える
5.「refex.bat」を使って、「full_img.fex」を作る
6.「full_img.fex」から書き込みイメージを作成し、書き込む

必要なファイル:
スクリプトのセット

実験結果

では、実際に試してみた作業手順と結果についてです。

<実験1>ファームウェアのバックアップを取る
PCとUSBで接続するとPCからAndroidデバイスとして認識されます。Android SDKをインストールしていたテストPCでは「Android」として、とくに何もインストールしていないPCでは「ADBデバイス」として勝手に認識されたので、ドライバーのインストールはしなくて大丈夫でした。不明なデバイスとして認識される場合のみ、ドライバーをインストールするといいでしょう。



バックアップスクリプトは、解凍すると「backup.cmd」というファイルがありますので、これを実行します。ダブルクリックで大丈夫。



これでファームウェアのバックアップは完了です。ファイルは「backup」というフォルダー内に保存されますが、まず最初にこのファイルをどこか安全な場所へコピーするのを忘れずに。このファイルをなくすと、元に戻せなくなります。



ちなみに「full_img.fex」というのが抜き出されたファームウェアで、これを展開したのが0~6までのimgファイルです。合計8つのファイルが保存されます。



<実験2>他社製ファームウェアへの書き換え
バッテリーを抜いてから、アクションカムの上ボタンを押しながらUSBケーブルでPCと接続するとモードが変わり、リカバリー可能な状態になります。




最初は「不明なデバイス」としてしか認識されませんので、ダウンロードした「Direct USB (recovery) driver for F60B」というドライバーを手動でインストールします。しかしこのドライバー、署名がないため通常の方法ではインストールできません

ではどうすればいいのかといえば、起動オプションで「ドライバー署名を強制しない」を選ぶとインストールできるようになります。詳しい設定方法は省きますが、検索すればすぐに見つかるのでそちらを参考にしてください。なお、署名のないドライバーは一般的に、システムに害を及ぼす危険がある出所不明なものです。壊れてもいいテスト用のPCを用意するか、危険を承知で利用するかになります。

無事にインストールできれば、「USB Device(VID_1f3a_PID_efe8)」みたいなデバイスとして認識されます。



認識されていることがわかったら、いったんアクションカムからUSBケーブルを外しておきます。これで下準備はできたわけですが、ファームウェアを書き込むには「PhoenixSuit」で書き込み可能なイメージを作成しなくてはいけません。これを作るのが、イメージ作成スクリプト。まずは手始めに、元々のファームウェアからイメージを作成してみます。

ダウンロードした「making.zip」を解凍し、同じくダウンロードした「zlib1.dll」をmakingフォルダーへコピーします。



バックアップしたファームウェアの「full_img.fex」を「goprawn.img.dump」フォルダーへコピーした後で、「makeimg.bat」を実行します。これで書き込みイメージとなる「goprawn.img」が出来上がりました。

続いて「PhoenixSuit」を起動します。今回はバージョン1.10を使いました。ダウンロードしたファイルを解凍し、「PhoenixSuit.exe」を直接実行することで起動できます。上のメニューから「Firmware」を選ぶとファイルの選択画面となるので、ここで「Image」ボタンを押して先ほど作成した「goprawn.img」を指定します。



「Upgrade」ボタンを押したくなりますが、押しちゃダメです。この画面のまま、アクションカムの上ボタンを押しながら、PCとUSBケーブルで接続します。すると、ファーマットするかを聞かれますので「No」を選択。あとは勝手にファームウェアの書き換えが開始されます。



だいたい1分ほどで書き換えが終わり、自動的にアクションカムが再起動。無事に起動するとPhoenixSuitにデバイスとして認識され、下のような画面となります。



これで、バックアップしたファームウェアが書き込まれたはずです。

同じ手順で別の製品のファームウェアへと書き換えが可能です。今回試しているカメラのファームウェアはすでにアップされていて、「Fuxin (excelvan boot logo) 2016-08-12 (shows 20160810V2.3)」というものになります。同じハードウェア構成であれば動きそうなので、現在の「2016-08-12」よりも新しい「Lxwy (wimius boot logo) 2016-10-09 (shows Q1-161013-V1.0)」を試してみましたが、問題なく動作しているようでした。



残念なことに、いくつか撮影して比べてみた限りは画質は全く変化していませんでしたけどね......。将来、画質が改善されたファームウェアが登場することに期待しましょう


<実験3>起動画面とシャットダウン画面の書き換え
既存のファームウェアではなく、自分でファームウェアをカスタマイズしてみます。まずはスクリプトのセットとなる「unfex-scripts.zip」をダウンロードして展開。そして、展開したフォルダーにバックアップしたファームウェア「full_img.fex」をコピーします。



「unfex.bat」を実行すると「UNFEX」というフォルダが作られ、その中にファームウェアのファイルが展開されます。このファイルのうち、起動画面となるのが「4-blogo.img」、シャットダウン画面となるのが「5-slogo.img」です。このファイルを別のものに差し替えれば、起動画面とシャットダウン画面が変更できます。

差し替え用の320×240ドットのjpg画像を用意。ファイルサイズは131072バイト未満にします。



ファイル名は「blogo.jpg」「slogo.jpg」とし、「UNFEX」フォルダーへとコピーします。そして「jpg2img.bat」を実行すると、この画像ファイルがそれぞれ「4-blogo.img」「5-slogo.img」に変換され、元のファイルと置き換わります。



あとは「refex.bat」を実行して新しい「full_img.fex」を作ればいいのですが......ウチのテストPCではうまく動いてくれなかったので、テキストエディタでちょっと書き換えました。

refex.batの21行目

FOR %%A IN ("%sysfile%") DO set size=%%~zA


これを

FOR %%A IN (%sysfile%) DO set size=%%~zA


このようにします。「%sysfile%」の「"」を削除するだけです。これで正しいのかわかりませんが、動くようになったのでヨシとします。書き換えた後で保存して実行すれば新しい「full_img.fex」ができますので、これをイメージファイルに変換して書き込んでやりましょう。成功すれば、起動画面とシャットダウン画面が用意した画像になっているハズです。

結論

今回の目的である新しいファームウェアへの書き換えはもちろん、基本ともいえるファームウェアのバックアップ、カスタマイズの最初の一歩となる起動画面とシャットダウン画面の変更と、3つの目標をすべてクリアできました。

ということでこの実験結果からわかったこと、できることをまとめると、

1.ファームウェアのバックアップは非常に簡単
2.別製品のファームウェアに書き換えられるが、画質は残念なまま
3.起動画面とシャットダウン画面が変えられるだけでもちょっと楽しい

といったところでしょうか。他人に見せられないような画像を使った痛アクションカムとか、結構楽しそうです。

ちなみに、手あたり次第に別製品のファームウェアを書き込んで試してみたのですが、画質の変化はわかりませんでした。Allwinner V3を採用したアクションカムの画質は、あの残念路線みたいですね。

とはいえ私は諦めが悪い方なので、次は画質を改善できるんじゃないかというファームウェアの改造、メニュー画面の変更など、もう一歩踏み込んだカスタマイズにチャレンジしてみようと思います。

おまけ

ファームウェアの情報から、CMOSセンサーやLCDコントローラーを調べる方法があるので、おまけとして載せておきます。

1.「unfex.bat」を実行した後、スクリプトのセットにある「squashfs_unmake.bat」を実行する
2.「scriptbin_read.bat」を実行してから、「scriptbin_convert.bat」を実行。
3.「fwinfo.bat」を実行する

という手順です。すると、アクションカムのハードウェア・ファームウェアの情報を表示してくれます。

376シェア
75
131
0
170

Sponsored Contents