現在の質問:デバイスツリーファイルを取得するためにarmファームウェアファイルをデコンパイルする方法は?

現在の質問:デバイスツリーファイルを取得するためにarmファームウェアファイルをデコンパイルする方法は?

Android TVボックスでlibreelecをフラッシュしようとしていますが、libreelecトースターに入れることができる画像はありません。 RPiでは、これは非常に簡単です。ここでは何かをコンパイルする必要があると思いますが、実際に答えはありません。 S802をベースにした古いBoxのイメージがあります(lakkaバージョンのみが見つかりました(?))、S812用のlibreelecがあっても、zip / tarで誰が「コンパイル」したのかわかりません。実際のUSB-SDジェネレータイメージに挿入します。見た目よりも簡単かもしれませんのでヒントをください!

開始質問:S812ベースのボードでLibreelecをフラッシュ/コンパイルする方法を知っている人はいますか?

現在の質問:私のマザーボードに別のオペレーティングシステムをインストールするために必要なデバイスツリーファイルを取得するためにarmファームウェアファイルをどのようにデコンパイルしますか?

望むより:

トースターへ:https://libreelec.tv/2016/08/usb-sd-creator/

前のボックスのlakka / libreelecビルド(.img):http://le.builds.lakka.tv/S802.M8.arm/

libreelecはamlinux.ruで構築されました(例:S812ベースのボックス用)。 https://mega.nz/#F!W0Qk2JIQ!P1iyw7dFFHvubkIUZ-i1lA!3ohmxIaJ


1. S812ベースのマザーボード用libreelecビルドでトースターイメージファイルを生成する方法は?

考えられる解決策:

次のページには、Amlogicボード(S805 S905 S905X S912(SDおよびUSB))用のLinuxバージョンが含まれています。

望むより:http://freaktab.com/forum/tv-player-support/amlogic-based-tv-players/606133-linux-images-for-s805-s905-s905x-s912-sd-and-usb


2.これで、amlogicボードのニーズに合った起動可能なsdカードをどのように作成できますか(imagetoasterを使用できないようです)。

考えられる解決策:

このページは少し役に立ちました。最新バージョンには、AndroidおよびLinux側を使用するためにマルチブートを有効にするために必要なすべてのファイルが含まれているため、抽出したイメージ(.xz -> .img)をSDカードのddからコピーするだけです。 (後で説明します)。

私は多くの人が素晴らしいxz圧縮形式に慣れていないことを知っているので、これら2つを公開しています。必要に応じてイメージをダウンロードし、Unixシリーズシステムでrootとして実行し、CuBox-iを起動するために使用されるMicroSDカードにダンプします。 MicroSD カードが /dev/sdd として表示されるとします。

# dd if=cubox-i.img of=/dev/sdd

望むより:https://people.debian.org/~gwolf/


3.次の指示に従って、テレビボックスからLinuxをフラッシュしました。

1.)Androidを実行しているテレビボックスから準備されたカードをテレビボックスのSDスロットに挿入するか、USBカードリーダーを使用してください。注:私は何が起こっているのかを見るためにアクティブなLEDを持つカードリーダーを使うのが好きです。最初の起動には数分かかることがありますが、LEDが点滅しても安心です。

2.) Android/設定/デバイス情報/システム/アップデートに移動します。注:アプリの引き出しに更新されたアプリとバックアップアプリがある可能性があります。 - アップデートとバックアップアプリケーションのUpdateLocaleセクションで、選択をクリックし、aml_autoscript.zipを選択し、アップデートを次にクリックします。注:「データの消去」と「メディアの消去」を選択しないでください。明確にするには、次のオプションを使用しないでください。

3.) TV ボックスが複数回再起動します。最後に、初期ログインプロンプトが表示されます。初期ログイン資格情報については、さまざまな画像のログイン情報についてはこちらをご覧ください。

新しいパスワードを選択するように求められます。そうしてください。新しいユーザーとP / Wを作成するように求められます。

ボックスが再起動して少し遅いですが、最終的にデスクトップに移動します。カードの空き容量が拡張されない場合は、gparted(インストールが必要な場合があります)を使用してExtパーティションを拡張してカードを埋めます。

これらのステップは実際よりも複雑に見えます。一度実行すると、2番目のガイドは必要ありません。

望むより:http://freaktab.com/forum/tv-player-support/amlogic-based-tv-players/s905/tronsmart-ac/firmware-roms-tools-at/565449-running-linux-from-sd-card-または、balbes150の方法とファイルを使用するUSB​​フラッシュドライブ

結果:

3.3項に関して。 )これまで「アップデート」を初期化した後の唯一の結果は、再起動するたびにHDMI信号の損失が発生するようです。それで、HDMIケーブルを再接続します...今見た中で最高のブルースクリーン(ブルースクリーン)が表示されます。 Androidの時代だと思います...)。


4. SDカードに適用するには、本機の実際のファームウェアからいわゆる.dtbファイルを抽出する必要があるようです。

.dtbファイルの概要サイトを知っている人がいる場合は投稿してください。

望むより:http://www.cnx-software.com/2014/05/12/how-to-extract-a-device-tree-file-from-android-firmware-files/

結果:

完璧なLinuxのバグ

致命的なエラー:BLOBのマジックナンバーが正しくありません。

    user@user-x:~/Downloads$ unrar x -r ./M8N-M8S_Amlogic_11152015.rar

unrar 0.0.1  Copyright (C) 2004  Ben Asselstine, Jeroen Dekkers


Extracting from /home/user/Downloads/M8N-M8S_Amlogic_11152015.rar

Extracting  n200C-ota-20151103.zip                                    OK        
Extracting  recovery.img                                              OK        
Extracting  u-boot.bin                                                OK        
Extracting  aml_autoscript                                            OK        
Extracting  factory_update_param.aml                                  OK        
Extracting  readme.txt                                                OK        
All OK
user@user-x:~/Downloads$ split_bootimg.pl recovery.img
Page size: 2048 (0x00000800)
Kernel size: 6065155 (0x005c8c03)
Ramdisk size: 2057152 (0x001f63c0)
Second size: 180224 (0x0002c000)
Board name: 
Command line: 
Writing recovery.img-kernel ... complete.
Writing recovery.img-ramdisk.gz ... complete.
Writing recovery.img-second.gz ... complete.
user@user-x:~/Downloads$ dtc -I dtb recovery.img-second.gz -O dts -o meson8_tm8.dtd
FATAL ERROR: Blob has incorrect magic number
user@user-x:~/Downloads$ dtc -I dtb recovery.img-second.gz -O dts -o bla.dtd
FATAL ERROR: Blob has incorrect magic number
user@user-x:~/Downloads$ 

ベストアンサー1

在庫回復パーティションを入手することから始めます。

PCからストック画像をダウンロードして解凍します。その後、ファームウェア.imgファイルを解凍します。アームロジックアンパッカーそしてファイルを探すrecovery.PARTITION

または

Android 端末、twrp、adb などで次のように入力します。

dd if=/dev/block/recovery of=recovery.PARTITION

今乗り継ぎ復元.パーティションファイルをtermuxホームフォルダまたはLinuxホームフォルダにコピーします。このファイルにはDTBファイルが含まれているので、今すぐ抽出するだけです。インストールしたと仮定するとgit、python、perl、wgetなどtermuxで。

#Install binwalk
git clone https://github.com/ReFirmLabs/binwalk.git
cd binwalk
python setup.py install
cd ..; rm -Rf binwalk

#Get split_bootimg.pl script
wget https://gist.githubusercontent.com/jberkel/1087743/raw/45046f87176dfacdc22af4290f89a0d2e0df1dbb/split_bootimg.pl
chmod +x split_bootimg.pl

#Split recovery.PARTITION
./split_bootimg.pl recovery.PARTITION

#Unpack recovery.PARTITION-second.gz
gunzip recovery.PARTITION-second.gz

#Get offset of embedded DTB in recovery.PARTITION-second by searching for bytes D00DFEED
DTBOFFSET=$(binwalk -R "\xD0\x0D\xFE\xED" recovery.PARTITION-second | awk 'NR > 3 { print $1}' | head -n 1)
#Get length of DTB in recovery.PARTITION-second this is next 4 bytes after D00DFEED
DTBLEN=$((16#$(dd if=recovery.PARTITION-second bs=1 skip=$(($DTBOFFSET + 4)) count=4 status=none | od -tx1 | head -n 1 | cut -d ' ' -f 2- | sed 's/ //g' )))
#Now extract and create dtb file
dd if=recovery.PARTITION-second of=mybox.dtb bs=1 skip=$DTBOFFSET count=$DTBLEN

おすすめ記事