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コマンドで検証できます.

    
    
    
    
  1. file ramdisk.img 

出力:

    
    
    
    
  1. 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、コマンドを使用

    
    
    
    
  1. gunzip ramdisk.img.gz 

それからramdiskというフォルダを新しいフォルダにしましょう.入って、コマンドを入力します.

    
    
    
    
  1. 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キャッシュサイズの設定
共有先: