システムイメージ(ext4)には、rawとsparseの2つのフォーマットがあります。rawのイメージは大きいので、ext4に直接マウントできます(mount -t ext4 system.img system)。スパースイメージはlp5.0でサポートされていますが、少し小さいです。以下の部分では、IMX7D SDBボードを例として使用しています。プラットフォームのハードウェアに応じて設定を変更できます。
1 スパースイメージを生成する
Lollipop 5.0 および 5.1 では、デフォルトでRAWイメージとスパースイメージの両方が生成されます。
スパースシステムイメージは次の場所にあります: out/target/product/sabresd_7d/system_sparse.img
rawシステムイメージは次の場所にあります:out/target/product/sabresd_7d/system.img
以下はAndroidビルドシステムでsystem.imgを生成するために使用される手順です。
make_ext4fs -s -T -1 -S out/target/product/sabresd_7d/root/file_contexts -l 374476800 -a system out/target/product/sabresd_7d/obj/PACKAGING/systemimage_intermediates/system.img out/target/product/sabresd_7d/system
simg2img out/target/product/sabresd_7d/system_sparse.img out/target/product/sabresd_7d/system.img
2 スパースイメージをSDまたはeMMCに書き込む
スパースイメージをAndroidのブートストレージにプログラムする方法は2つあります
手順
diff --git a/Profiles/Linux/OS Firmware/ucl2.xml b/Profiles/Linux/OS Firmware/ucl2.xml index 3b15ddd..3c3d2ae 100755 --- a/Profiles/Linux/OS Firmware/ucl2.xml +++ b/Profiles/Linux/OS Firmware/ucl2.xml @@ -621,8 +621,12 @@キャッシュパーティションをフォーマット中 デバイスパーティションをフォーマット中 -system.imgを送信して書き込み中 - +simg2img を送信 +cp simg2img +chmod 777 +tmpfsのサイズを変更 +システムを送信 +system_sparse.img の送信と書き込み system_sparse.img ユーザーデータの送信。
3 ubootでスパースイメージをサポート(v2014.04)
スパースイメージに関連するパッチを選定します。write_sparse_imageを使用してスパースシステムイメージを書き込みます。
詳細については、添付ファイル(sparseimage.zipをサポートするuboot(v2014.04))をご覧ください。
これらのパッチを適用する手順は以下の通りです。
sparseimage.zipをサポートするuboot(v2014.04)を解凍します
git am 0002-add-code-to-handle-Android-sparse-image-format.patch
git am 0003-update-code-which-handles-Android-sparse-image-forma.patch
git am 0004-cleanup-code-which-handles-the-Android-sparse-image-.patch
git am 0005-implement-the-Android-sparse-image-format.patch
git am 0006-aboot-fix-block-addressing-for-don-t-care-chunk-type.patch
git am 0007-MA-6732-Add-sparse-image-flash-support-for-uboot-s-f.patch
ページは更新され続けます。
Reference:
こんにちは、サンシャンさん
--help を使用すると、次の出力が表示されます。
...:~/Android_Source$ simg2img --help
Usage: simg2img
しかし、依然として/bin/bash: line 1: simg2img: コマンドが見つかりません。
エラーが発生しました。
よろしくお願いします。
Kishore P
こんにちは、サンシャンさん
「simg2img」を「simg2img -h」に置き換えましたが、結果は同じです。
out/target/product/evk_6sl/system_sparse.img+out/target/product/evk_6sl/obj/PACKAGING/recovery_patch_intermediates/recovery_from_boot.p maxsize=481738752 blocksize=4224 total=403801046 reserve=4866048
if [ true = true ]; then \
simg2img -h out/target/product/evk_6sl/system_sparse.img out/target/product/evk_6sl/system.img; \
fi
/bin/bash: 行1:simg2img:コマンドが見つかりません
make: *** [out/target/product/evk_6sl/system_sparse.img] エラー127
make: *** ファイル `out/target/product/evk_6sl/system_sparse.img' を削除しています
よろしくお願いします。
Kishore P
これが存在し、そのパスがエクスポートされている場合は、「simg2img -h」をお試しください。ログを確認してください。
Sanshan Zhang様
返信ありがとうございます。simg2imgは/out/host/linux-x86/binパスに存在し、PATHにもエクスポートされています。
カーネルでさらにフリースケールが提供するデフォルトオプション以外に有効にする必要があるものはありますか。
>$PATH
bash: /usr/lib/jvm/java-7-openjdk-amd64/bin:/home/test/Android_Source/out/host/linux-x86/bin:/home/test/Android_Source/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/bin:/home/test/Android_Source/prebuilts/gcc/linux-x86/:/home/test/Android_Source/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin:/home/test/Android_Source/development/scripts:/home/test/Android_Source/prebuilts/devtools/tools:/home/test/Android_Source/prebuilts/android-emulator/linux-x86_64:/home/test/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games: 該当するファイルやディレクトリは存在しません
よろしくお願いします。
Kishore P
こんにちは、キショアさん
/out/host/linux-x86/bin/simg2img が存在するかどうか確認しましたか?
存在する場合は、/out/host/linux-x86/bin/ が PATHにエクスポートされているかどうかを確認できます。
Sanshan Zhang様
imx6slevkボード用にAndroid(Lollipop 5.0.0.1)をビルドする際、system_sparse.imgからsystem.imgを生成できません。
次のエラーが発生します。
システムfsイメージをインストールします:out/target/product/evk_6sl/system_sparse.img
out/target/product/evk_6sl/system_sparse.img+out/target/product/evk_6sl/obj/PACKAGING/recovery_patch_intermediates/recovery_from_boot.p maxsize=481738752 blocksize=4224 total=403801046 reserve=4866048
if [ true = true ]; then \
simg2img out/target/product/evk_6sl/system_sparse.img out/target/product/evk_6sl/system.img; \
fi
/bin/bash: 行1:simg2img:コマンドが見つかりません
make: *** [out/target/product/evk_6sl/system_sparse.img] エラー127
make: *** ファイル `out/target/product/evk_6sl/system_sparse.img' を削除しています
アンドロイドでスパースイメージをサポートするパッチはありますか?
この問題を解決するのを手伝っていただけませんか。
よろしくお願いします。
Kishore P