背景
少し前に、私はAliexpressのIPカメラ(Hi3516チップ53H20Lプラットフォーム)と16チャンネルのハイブリッドビデオレコーダー(Hi3521チップMBD6508Eプラットフォーム)を購入しました。 どちらもHiSiliconチップセットに基づいているため、相互の互換性の問題は発生しません。
もちろん、不具合がないわけではありません。 最初で最も重要なもの-WiFiはカメラで曲がって動作していました-キーがHEXフォームで指定されている場合、ネットワークに接続できませんでした。また、デフォルトゲートウェイにも定期的な問題がありました。

ファームウェアは、まだ6月であることが判明しました。
新しいファームウェアを入手して試してみました。 バグのあることが判明したものもありましたが、うまくいきました。
別の問題が発生しました-telnet接続のデフォルトのパスワードが変更されました。 私はこれを容認できず、それを戻す方法を探し始めました。
この方法は、HiSiliconチップをベースにしたDVRとカメラでテスト済みですが、中国ではU-bootブートローダーが広く使用されているため、別のプラットフォームで動作するはずです。
開梱
開梱手順については
この記事である程度詳しく説明し
ていますが、パッケージングプロセスはどこにも説明されていないため、
この記事を書くように促されました。
何も見逃さないように、段階的にペイントします。
Linuxをインストールし、ubuntuを選択しました。
ファームウェアファイルのタイプを確認します。
root@xc:~/firmware
開梱:
root@xc:~/firmware
インストールの内容を確認します。
{ "Commands" : [ "burn custom-x.cramfs.img custom", "burn romfs-x.cramfs.img romfs", "burn user-x.cramfs.img user", "burn logo-x.cramfs.img logo", "burn web-x.cramfs.img web" ], "Devices" : [ [ "53H20L", "1.00" ] ] }
InstallDesc:
"UpgradeCommand" : [ { "Command" : "Burn", "FileName" : "u-boot-all.bin.img" }, { "Command" : "Burn", "FileName" : "custom-x.cramfs.img" }, { "Command" : "Burn", "FileName" : "romfs-x.cramfs.img" }, { "Command" : "Burn", "FileName" : "user-x.cramfs.img" }, { "Command" : "Burn", "FileName" : "web-x.cramfs.img" }, { "Command" : "Burn", "FileName" : "logo-x.cramfs.img" } ], "Hardware" : "53H20L", "Vendor" : "General" }
u-boot-allという単語は、imgファイルがU-bootローダーのイメージであることを示唆しているため、適切なパッケージを配置します。
root@xc:~/firmware
アーカイブにあったファイルを確認します。
root@xc:~/firmware
Load AddressとEntry Pointの2つのパラメーターに注意してください。 最初のアセンブリ中に、それらを指定するのを忘れました。デフォルトではゼロになりました。これは、ブートローダーのアドレスであり、ファームウェアの後に消去されることが判明しました。 このため、私は復元にさらに1時間を費やしました。カメラを道路から取り外し、分解し、プログラマーのファームウェアを復元する必要がありました。 (彼がカメラを分解したのは何の理由もありませんが、彼はシリカゲルの袋をケーシングに追加して空気から水分を除去しました。)
ここで少し説明します。このファームウェアの.imgイメージは、cramfsファイルシステムのわずかに変更されたイメージです。 ここで詳細を読むことができます。 画像を通常の状態に戻すには、ヘッダーの64バイトを切り捨てる必要があります。
root@xc:~/firmware
他のファイルについては、コマンドは似ています。
何が起こったのか見てみましょう:
root@xc:~/firmware
すでにcramfsのように見えます。 cramfsイメージを使用するには、適切なパッケージをインストールまたは更新します。
root@xc:~/firmware
画像を解凍します。
root@xc:~/firmware
ディレクトリは作成しませんが、自動的に作成されます。
ローダーはそのように展開できません。これはcramfsイメージではありませんが、触れないでください。
中身は何ですか
ファームウェアアーカイブ内の各ファイルの内容をすぐに確認します。
- InstallDesc-ファームウェアinstall-scriptを更新するときにこれらのファイルで実行する必要があるアクションについて説明します。
- logo-x.cramfs.img-デバイスの起動時に表示される、メーカーのロゴが付いた800x600形式の画像。
- romfs-x.cramfs.img-ARMアーキテクチャ用のLinuxオペレーティングシステム自体
- u-boot-all.bin.img-U-bootローダー
- custom-x.cramfs.img-プラットフォームの名前と追加設定が含まれています
- user-x.cramfs.img-Sofiaを含むアプリケーションソフトウェア-DVRプログラム自体
- web-x.cramfs.img-Webインターフェースの写真、web.cab-ローカリゼーション、メーカーのロゴ付きのInternet Explorer用プラグイン。
romfs-x.cramfs.imgに興味があります。これは、パスワードが保存されているpasswdファイルがある場所だからです。 その内容は次のとおりです。希望する人は密輸を試みることができます。
root:$1$RYIwEiRA$d5iRRVQ5ZeRTrJwGjRy.B0:0:0:root:/:/bin/sh
サイトで新しいハッシュ
を生成し、ファイルで変更しました。
戻す
変更が行われた後、すべてを元に戻す必要があります。
root@xc:~/firmware
ロードアドレスとエントリポイントの値に注目したことを覚えていますか? それらを覚えてチームに追加する時です。
U-bootイメージを作成します。
root@xc:~/firmware
ちなみに、1つのモジュールを更新するには、ファームウェア全体をフラッシュする必要はありません。必要なものだけを置き、InstallおよびInstallDescファイルを編集して、必要な行のみを残します。
受信したファイルを別のディレクトリに置き、新しいものにします。 コマンドを与えます:
root@xc:~/new
すべて、ファームウェアの準備ができました。 更新項目を介してWebインターフェイスを介してフラッシュするだけです
ご注意
この記事の推奨事項に従うことで、あなた自身の危険とリスクを負います。 著者はあなたの行動に責任を負いません。 ファームウェアの変更時にミスを犯した場合、プログラマーでしか復元できないレンガを簡単に入手できます。 したがって、自分の行動に自信がない場合は、これを行わないでください。
参照資料
Vesta IPカメラのバーンインルートシェルだけでなくGNU / LinuxおよびRockchip 2918デバイスRAMディスクのハッキング