3.iOSファイルシステム構造

4177 ワード

iOSファイルシステム構造
  • iOSシステムファイルを視覚的に表示iOSではCydiaを介してApple File Conduit 2をインストールし、iFunBoxを使用してiOSシステムファイル(iOSとOS Xは同じローカルエリアネットワーク内で必要)
  • を表示できます.
  • SSHリモートログインiOSによる
  • の表示
  • Filesystem Hierarchy Standardファイルシステム階層化規格(以下、FHSと略す)FHSは、UNIXオペレーティングシステムのファイルディレクトリ構造について、ファイルまたはディレクトリの格納場所をユーザに予知させるための規格を制定した.

  • UNIXオペレーティングシステムの一般的なディレクトリ構造
    /:   ,     ,                。
    
    /bin:"binary"   ,                 , ls、ps 。
    
    /boot:               。iOS      。
    
    /dev:"device"   ,  BSD    。                   ,    ,“   ”         ,   ; “    ”          ,      。
    
    /sbin:"system binaries"   ,                 , netstat、reboot 。
    
    /etc:"Et Cetera"   ,           , passwd、hosts 。 iOS ,/etc       ,    /private/etc。
    
    /lib:       、          。iOS      。
    
    /mnt:"mount"   ,            。iOS      。
    
    /private:      ,   /private/etc /private/var。
    
    /tmp:    。 iOS ,/tmp       ,    /private/var/tmp。
    
    /usr:             。/usr/bin    /bin /sbin         , nm、killall ;/usr/include       C   ;/usr/lib     。
    
    /var:"variable"   ,           ,    、    、     。  /var/mobile /var/root     mobile   root     ,        。
    

    UNIXシステムファイル権限の概要
  • UNIXすべてファイル:普通ファイル、ディレクトリ、設備、socket、パイプ、CPU情報、プロセス情報など
  • を読み書きする
  • システムは、ファイルの権限を3ビット(bit)で表し、上位から下位までr(read)権限、w(write)権限、およびx(execute)権限である.

  • ファイルとユーザーの関係には、次の3つの可能性があります.
  • このユーザは、プライマリユーザ(ファイル所有者の権限)
  • である.
  • このユーザはプライマリユーザではないが、プライマリグループ(グループユーザ権限)
  • このユーザは、ホームユーザでもホームグループでもない(Otherユーザ権限)
  • .
    rwx      r-x    r--
    111      101   100
                 
    
  • は、ファイルの権限を3*3ビットで表します.いずれかが1の場合、この代表の権限は有効になります.そうしないと無効になります.
  • 例えば、111101101はrwxr−xr−xを表す.すなわち、ファイルの所有者はr、w、x権限を有し、所有者グループおよび他のすべての人はrおよびx権限のみを有する.
  • 同時に、バイナリの111101101が16進数に変換されるのは755であり、一般的な権限表現でもある.

  • chmodコマンドを使用してファイル権限を変更する
    chmodコマンドを使用してファイル権限を変更できます
    chmod  755  filename
    

    iOS独自のディレクトリ
    /Applications:       App    Cydia App,    StoreApp。
    
    /Developer:        Xcode         ,Xcode   iOS       ,                 。
    
    /Library:             。  /Library/MobileSubstrate        CydiaSubstrate(  MobileSubstrate)   ( :tweak     )。
    
    /System/Library:iOS             ,        。
    
    /System/Library/Frameworks /System/Library/PrivateFrameworks:  iOS    framework
    
    /System/Library/CoreServices  SpringBoard.app:iOS     (   Windows  explorer),              。
    
    /User:    (    mobile   home  ),    /var/mobile,             ,  :
    
    /var/mobile/Media/DCIM     ;
    
    /var/mobile/Media/Recordings       ;
    
    /var/mobile/Library/SMS        ;
    
    /var/mobile/Library/Mail       。
    
    /var/mobile/Containers,  StoreApp。      ,App       bundle App            /var/mobile/Containers/Bundle /var/mobile/Containers/Data        。  /var/mobile/Containers/Data                 :NSString *directory = NSHomeDirectory(); //       
    

    iOSアプリケーション(Store App)サンドボックスディレクトリ:
  • Application Bundleは、アプリケーション実行可能ファイルおよびリソースファイル
  • を含む.
       iOS      Bundle  ,    ps -e | grep  appname  
    luz-iphone:/ root# ps -e | grep WeChat
     1368 ??         5:41.43 /var/mobile/Containers/Bundle/Application/749DC69A-3A8D-4B5C-9926-1220E69FC85F/WeChat.app/WeChat
    
  • Application Dataには、App実行生産のデータや構成情報など
  • が含む.
       iOS      Date  ,    cycript  
    luz-iphone:~ root# cycript -p WeChat
    cy# directory = NSHomeDirectory()
    @"/var/mobile/Containers/Data/Application/986376B5-EF08-4CAF-81FB-CAE48D1FE4AE"
    cy#
    
  • Dataディレクトリ構造は、
  • です.
    luz-iphone:/var/mobile/Containers/Data/Application/986376B5-EF08-4CAF-81FB-CAE48D1FE4AE root# ls
    Documents/  Library/  tmp/
    
  • Documentは、アプリケーションの実行時に生成され、保存する必要があるデータを格納する.注意:iTunesまたはiCloud同期デバイスの場合、ディレクトリ
  • がバックアップされます.
  • Library/Cachesは、アプリケーションの実行時に生成され、保存する必要があるデータを格納します.iTunesまたはiCloudが同期していません.
  • Library/preferencesは、プリファレンス設定を保存します.iOSの設定設定(settings)アプリケーションも、そのディレクトリでアプリケーションの設定情報を検索します.NSUserDefaultsはこのディレクトリの下に保存されます.iTunesまたはiCloud同期デバイスの場合、このディレクトリをバックアップします.
  • tmpは、アプリケーションの実行時に必要な一時データを格納する.アプリケーションが実行されていない場合、iOSシステムはディレクトリの下のファイルを消去する可能性があります.しかし、このような自動消去メカニズムに依存してはならず、直ちに手動で消去しなければならない.