systemコピー環境

現状、flash_imageでsystem パーティションが書けない。
その為、/data/system_ex/system を /system としてシンボリックリンクで起動する。
boot.img の作成が必要である。boot.img の作成
この構成は変更するかもです。。。。参考程度に考えてください。

$RAMDISK/init.rc
まずは、1.6ベースで bin , lib の動作確認を行うため /system を mount しない環境を作成する。
具体的には
/data を /data/data_ex/ にコピーする。/data/data_ex/data が /data になる様にする。
/system を /data/system_ex/ にコピーする。/data/system_ex/system が /system になる様にする。
# cp -a /data/ /data/data_ex
# cp -a /system /data/system_ex
data の部分は boot.img を作成するときでも良い。

systemをumountして、busybox を明示した方が良いかも
# busybox umount -l /system
# busybox mv /system /system0
# busybox ln -s /data/hoge/system /system
で動けばok。

次は、最初からシンボリックリンクの /system , /data で起動するようにする。
  1. $RAMDISK/system ディレクトリを system0 にリネーム
  2. $RAMDISK/system/init.rc の編集
/data0 、 /system の作成、mount箇所の変更をする。つまり、
mkdir data0
がinit.rcに必要になる。
また、ramdiskのsystemを完全に消し去って、init.rc内において、
mkdir /system0
としても良い。
また、
mkdir /system

mount rootfs rootfs / ro remount
のままだと symlink 作成時に失敗するのでこれらをコメントアウト。
(文章でさらっと流していたので、自分でも後日はまったので追記した)

素の/data と /system が存在してしまうと、下記 symlink が失敗するかもしれない。
あくまで、/data と /system はシンボリックリンクとして存在するため、すでにファイルがあると妨げになる。
mount /data0 の直後に
symlink /data0/data_ex/data /data
symlink /data0/data_ex/system /system
を行う。

作業手順より、init.rc を読む方が楽な人もいるかもしれない。

コメント
名前:
コメント:
最終更新:2011年01月30日 15:50
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。