android-ファイルシステム
2728 ワード
Androidファイルシステムはどのような構造を持っていますか?このファイルシステムを分離するにはどうすればいいですか?ファイルシステムをどのようにマウントできますか?これらの問題はいずれも文の中で具体的な解決策を見つけます.
Linuxを使ったことがある方は、オープンソースのシステムにとても良い印象を持っているかもしれません.では、ますます成熟した携帯電話のオペレーティングシステムの中で、Linuxのようなオープンソースシステムはありますか?Google社はLinuxプラットフォームに基づくAndroidオペレーティングシステムを脱退し、人々のニーズを満たした.ここではまずAndroidファイルシステムに関する内容を知ることができます.
1、Androidファイルシステムの構造
Androidソースコードをコンパイルしてsystemを得る.img,ramdisk.img,userdata.imgイメージファイル.ここでramdisk.imgはemulatorのファイルシステム、systemです.imgは主要なパッケージ、ライブラリなどのファイル、userdataを含む.imgには、emulatorがこの3つのイメージファイルをロードすると、ramdiskファイルシステムのsystemディレクトリとuserdataディレクトリにsystemとuserdataがそれぞれロードされるユーザーデータが含まれています.だからramdiskをimgのすべてのファイルをコピーしてimgとuserdata.imgはramdiskファイルシステムのsystemディレクトリとuserdataディレクトリにそれぞれ解凍される.
2、Androidファイルシステムを分離する
system.img,ramdisk.img,userdata.imgイメージファイルはcpioパッケージ、gzip圧縮を採用しており、fileコマンドで検証できます.
出力:
Androidソースコードのコンパイル後にsystemを生成する以外は.img,userdata.imgに加えてsystemフォルダとuserdataフォルダも生成されるため、解凍する必要はありません.Androidソースコードをコンパイルするとrootフォルダも生成されますが、実はrootの下のファイルとramdisk.imgのファイルは同じですが、ここではramdiskの使い方を紹介します.img解凍:
ramdisk.imgは他のディレクトリにコピーし、その名前をramdiskに変更する.img.gz、コマンドを使用
それからramdiskというフォルダを新しいフォルダにしましょう.入って、コマンドを入力します.
これでramdiskの内容が見えて操作できます.
そしてAndroidソースコードをコンパイルして生成したsystemとuserdataのファイルをramdisk/systemとramdisk/userdataの下にコピーします.これでファイルシステムが得られます.
3、ネットワークファイルシステム方式でAndroidファイルシステムをマウントする
したがって、/nfsrootディレクトリを作成し、/nfsroot/Android fsディレクトリを作成し、先ほどのAndroidファイルシステムをAndroid fsと改名し、/nfsroot/Android fsにリンクする必要があります.
4、Androidファイルシステムカーネルブートファイルシステム
Androidカーネルマウント/nfsroot/Androidfs後、init.rc,init.goldfish.rcは、システムライブラリ、プログラムなどを起動が完了するまで初期化してロードします.init.rcスクリプトには、ファイルシステムの初期化、ロードの多くのプロセスが含まれています.init.rcの仕事は主に:
1)環境変数の設定
2)system、sdcard、data、cacheなどのディレクトリの作成
3)いくつかのファイルシステムmountをいくつかのディレクトリに行きます.例えば、mount tmpfs tmpfs/sqlite_stmt_journals
4)一部のファイルのユーザーグループ、権限の設定
5)スレッドパラメータの設定
6)TCPキャッシュサイズの設定
共有先:
Linuxを使ったことがある方は、オープンソースのシステムにとても良い印象を持っているかもしれません.では、ますます成熟した携帯電話のオペレーティングシステムの中で、Linuxのようなオープンソースシステムはありますか?Google社はLinuxプラットフォームに基づくAndroidオペレーティングシステムを脱退し、人々のニーズを満たした.ここではまずAndroidファイルシステムに関する内容を知ることができます.
1、Androidファイルシステムの構造
Androidソースコードをコンパイルしてsystemを得る.img,ramdisk.img,userdata.imgイメージファイル.ここでramdisk.imgはemulatorのファイルシステム、systemです.imgは主要なパッケージ、ライブラリなどのファイル、userdataを含む.imgには、emulatorがこの3つのイメージファイルをロードすると、ramdiskファイルシステムのsystemディレクトリとuserdataディレクトリにsystemとuserdataがそれぞれロードされるユーザーデータが含まれています.だからramdiskをimgのすべてのファイルをコピーしてimgとuserdata.imgはramdiskファイルシステムのsystemディレクトリとuserdataディレクトリにそれぞれ解凍される.
2、Androidファイルシステムを分離する
system.img,ramdisk.img,userdata.imgイメージファイルはcpioパッケージ、gzip圧縮を採用しており、fileコマンドで検証できます.
- file ramdisk.img
出力:
- ramdisk.img: gzip compressed data, from Unix, last modified: Wed Mar 18 17:16:10 2009
Androidソースコードのコンパイル後にsystemを生成する以外は.img,userdata.imgに加えてsystemフォルダとuserdataフォルダも生成されるため、解凍する必要はありません.Androidソースコードをコンパイルするとrootフォルダも生成されますが、実はrootの下のファイルとramdisk.imgのファイルは同じですが、ここではramdiskの使い方を紹介します.img解凍:
ramdisk.imgは他のディレクトリにコピーし、その名前をramdiskに変更する.img.gz、コマンドを使用
- gunzip ramdisk.img.gz
それからramdiskというフォルダを新しいフォルダにしましょう.入って、コマンドを入力します.
- cpio -i -F ../ramdisk.img
これでramdiskの内容が見えて操作できます.
そしてAndroidソースコードをコンパイルして生成したsystemとuserdataのファイルをramdisk/systemとramdisk/userdataの下にコピーします.これでファイルシステムが得られます.
3、ネットワークファイルシステム方式でAndroidファイルシステムをマウントする
したがって、/nfsrootディレクトリを作成し、/nfsroot/Android fsディレクトリを作成し、先ほどのAndroidファイルシステムをAndroid fsと改名し、/nfsroot/Android fsにリンクする必要があります.
4、Androidファイルシステムカーネルブートファイルシステム
Androidカーネルマウント/nfsroot/Androidfs後、init.rc,init.goldfish.rcは、システムライブラリ、プログラムなどを起動が完了するまで初期化してロードします.init.rcスクリプトには、ファイルシステムの初期化、ロードの多くのプロセスが含まれています.init.rcの仕事は主に:
1)環境変数の設定
2)system、sdcard、data、cacheなどのディレクトリの作成
3)いくつかのファイルシステムmountをいくつかのディレクトリに行きます.例えば、mount tmpfs tmpfs/sqlite_stmt_journals
4)一部のファイルのユーザーグループ、権限の設定
5)スレッドパラメータの設定
6)TCPキャッシュサイズの設定
共有先: