1. 程式人生 > >Android系統分割槽理解及分割槽目錄細解【轉】

Android系統分割槽理解及分割槽目錄細解【轉】

本文轉載自:https://blog.csdn.net/u010001503/article/details/51853822

Android 通常有以下分割槽:

System分割槽: 就是我們刷ROM的分割槽

Data分割槽:   分割槽就是我們裝APK的分割槽

Catch分割槽:是快取分割槽

SDCard分割槽:就是掛載的SD卡。

 

我們可以在adb中使用df 來檢視分割槽情況。

1、跨分割槽不能用 MV命令來拷貝。但是可以用CP命令。如PWD,當前目錄為:/data/local/tmp 。

此目錄下有個busybox和1.txt檔案。則利用CP命令拷貝如下:./busybox cp1.txt /system.

2、Android的使用者組有 System, root, shell

3、怎麼樣才能操作分割槽。

分割槽操作是需要許可權的。一般來說System分割槽的許可權限制得比較嚴,Data分割槽限制比較嚴,使用者可以操作的目錄有local,app目錄。比如/data/local/tmp.

data分割槽常用目錄:app , system , data ,local,misc 其中system,local可以進入並使用ls等命令。data,app可以進入,但不能用ls命令。

data/data目錄:存放的是所有APK程式資料的目錄,每個APK對就一個自己的Data目錄,就是在data/data/目錄下,會產生一個跟 Package一樣的目錄。如有一個APK,它的包名叫com.test.hello則,在data/data/目錄下會有一個 com.test.hello的目錄,這個APK只能操作此目錄,不能操作其它APK的目錄.這個在LINUX下叫做使用者程序只能操作自己的程序目錄.

data/app目錄:使用者安裝的APK放在這裡。我們如果把APK放入這個資料夾下面的話,就算安裝好了。這就叫靜默安裝。不用管APK檔案裡面的lib目錄下的庫檔案,系統會自動幫我們放入呼叫庫的。

data/system目錄下面有packages.xml ,packages.list,appwidgets.xml, 等等一些記錄手機安裝的軟體,Widget等資訊。

data/misc目錄:儲存WIFI帳號,VPN設定資訊等。如儲存了一個WIFI連線帳號,則此目錄下的WIFI目錄下面可以檢視到。

system分割槽常用目錄: app , lib, xbin, bin , media,framework.

system/app目錄:存放系統自帶的APK。沒有測試過是否將APK放入到System/app目錄下,也是靜默安裝APK。?

system/lib目錄:存放APK程式用到的庫檔案。

system/bin目錄和system/xbin目錄:存放的是shell命令。

system/framework目錄:啟用Android系統所用到框架,如一些jar檔案。

4 Android下面的目錄都是有許可權的,要操作目錄都需要有此許可權才能操作,如果沒有,則使用chomd777來修改.如果是分割槽根目錄,如/data分割槽, /system分割槽.都沒有許可權,則需要重新掛載. 使用 mount -oremount XX

 

http://stackoverflow.com/questions/5694933/find-an-external-sd-card-location

 

安卓手機和平板一般包括以下標準內部分割槽:

  • /boot
  • /system
  • /recovery
  • /data
  • /cache
  • /misc

另外還與SD卡分割槽:

  • /sdcard
  • /sd-ext

 


  

system 分割槽

這裡是掛載到/system目錄下的分割槽。這裡有 /system/bin 和 /system/sbin 儲存很多系統命令。它是由編譯出來的system.img來燒入。

相當於你電腦的C盤,用來放系統。這個分割槽基本包含了整個安卓作業系統,除了核心(kerne)和ramdisk。包括安卓使用者介面、和所有預裝的系統應用程式。擦除這個分割槽,會刪除整個安卓系統。你可以通過進入Recovery程式或者bootloader程式中,安裝一個新ROM,也就是新安卓系統。

MISC分割槽

這個分割槽包括了一些雜項內容:比如一些系統設定和系統功能啟用禁用設定。這些設定包括CID(運營商或區域識別碼)、USB設定和一些硬體設定等等。這是一個很重要的分割槽,如果此分割槽損壞或者部分資料丟失,手機的一些特定功能可能不能正常工作。

 

recovery分割槽 


       recovery 分割槽即恢復分割槽,在正常分割槽被破壞後,仍可以進入這一分割槽進行備份和恢復.我的理解是這個分割槽儲存一個簡單的OS或底層軟體,在Android的核心被破壞後可以用bootloader從這個分割槽引導進行操作。

      這個分割槽可以認為是一個boot分割槽的替代品,可以是你的手機進入Recovery程式,進行高階恢復或安卓系統維護工作。

boot 分割槽


        一般的嵌入式Linux的裝置中.bootloader,核心,根檔案系統被分為三個不同分割槽。在Android做得比較複雜,從這個手機分割槽和來看,這裡boot分割槽是把核心和ramdisk file的根檔案系統打包在一起了,是編譯生成boot.img來燒錄的。   

如果沒有這個分割槽,手機通常無法啟動到安卓系統。只有必要的時候,才去通過Recovery軟體擦除(format)這個分割槽,一旦擦除,裝置只有再重新安裝一個新的boot分割槽,可以通過安裝一個包含boot分割槽的ROM來實現,否則無法啟動安卓系統。

 

userdata 分割槽 

它將掛載到 /data 目錄下, 它是由編譯出來的userdata.img來燒入。

這個分割槽也叫使用者資料區,包含了使用者的資料:聯絡人、簡訊、設定、使用者安裝的程式。擦除這個分割槽,本質上等同於手機恢復出廠設定,也就是手機系統第一次啟動時的狀態,或者是最後一次安裝官方或第三方ROM後的狀態。在Recovery程式中進行的“data/factory reset ”操作就是在擦除這個分割槽。

 


cache 分割槽 

它將掛載到 /cache 目錄下。這個分割槽是安卓系統快取區,儲存系統最常訪問的資料和應用程式。擦除這個分割槽,不會影響個人資料,只是刪除了這個分割槽中已經儲存的快取內容,快取內容會在後續手機使用過程中重新自動生成。

 

其它隱藏分割槽:

  HBOOT 
      儲存的bootloader HBOOT。手機的啟動引導的一段程式。
      類似電腦主機板BIOS,這部分刷錯了手機就會變成磚塊。
  Radio分割槽  
      儲存是基帶晶片的韌體程式碼,Linux不認識其格式,在手機啟動時裝入特定記憶體中用於驅動晶片。所有與電信網路互動就是靠它了,一般往往用專用開發環境來開發。手機無線訊號、藍芽、wifi等無線管理。
  splash分割槽  這裡是啟動畫面。
  SD卡分割槽  
     一般預設的是掛載在/sdcard目錄。
  這個分割槽不是裝置系統儲存空間,是SD卡空間。從使用上講,這個是你自己的儲存空間,可以隨便你任意存放相片、視訊、文件、ROM安裝包等。擦除這個分割槽是完全安全的,只要你把分割槽中你需要的資料都備份到了你的電腦中。雖然一些使用者安裝的程式會使用這個分割槽儲存它的資料和設定資訊,擦除了這個分割槽,這些程式的資料,比如有些遊戲的存檔,就會全部丟失。在既有內部SD卡和外部SD卡的裝置中,比如三星Galaxy S和一些平板電腦,/sdcard分割槽通常指向內部SD卡。外部SD卡,如果存在的話,會對應一個新的分割槽,每個裝置都不一樣。在三星Galaxy S手機中, /sdcard/sd代表的是外部SD卡,而其它裝置,有可能是/sdcard2。與/sdcard不同,沒有系統或應用程式資料會自動存放在外部SD卡中。外部SD卡中的所有資料都是使用者自己新增進去的。在你把分割槽中需要的資料都備份到了你的電腦中之後,你可以安全的擦除這個分割槽。
SD卡擴充套件分割槽

   它的目錄名是 /sd-ext ,它不是一個標準的Android分割槽,是執行APP2D軟體擴展出來分割槽。目的是為了多擴充套件一個安裝程式空間,這個對於Flash空間(或者說ROM空間)不夠,又喜歡安裝軟體的人是有用應用。
二.各分割槽詳細分析
  各個分割槽的內容,可以用cat命令直接匯出,用一般的二進位制的軟體來分析,我一般用WinHex,並且自己寫了幾個模板。
  匯出分割槽內容,如果用adb 匯出,必須有root許可權,

 

 

 

<p><span class="pln">cat </span><span class="pun">/</span><span class="pln">proc</span><span class="pun">/</span><span class="pln">mounts</span>
<span class="pln">rootfs </span><span class="pun">/</span><span class="pln"> rootfs ro</span><span class="pun">,</span><span class="pln">relatime </span><span class="lit">0</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="com">#根檔案系統的格式,只讀</span>
<span class="pln">tmpfs </span><span class="pun">/</span><span class="pln">dev tmpfs rw</span><span class="pun">,</span><span class="pln">relatime</span><span class="pun">,</span><span class="pln">mode</span><span class="pun">=</span><span class="lit">755</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="lit">0</span>
<span class="pln">devpts </span><span class="pun">/</span><span class="pln">dev</span><span class="pun">/</span><span class="pln">pts devpts rw</span><span class="pun">,</span><span class="pln">relatime</span><span class="pun">,</span><span class="pln">mode</span><span class="pun">=</span><span class="lit">600</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="lit">0</span>
<span class="pln">proc </span><span class="pun">/</span><span class="pln">proc proc rw</span><span class="pun">,</span><span class="pln">relatime </span><span class="lit">0</span><span class="pln"> </span><span class="lit">0</span>
<span class="pln">sysfs </span><span class="pun">/</span><span class="pln">sys sysfs rw</span><span class="pun">,</span><span class="pln">relatime </span><span class="lit">0</span><span class="pln"> </span><span class="lit">0</span>
<span class="pln">none </span><span class="pun">/</span><span class="pln">acct cgroup rw</span><span class="pun">,</span><span class="pln">relatime</span><span class="pun">,</span><span class="pln">cpuacct </span><span class="lit">0</span><span class="pln"> </span><span class="lit">0</span>
<span class="pln">tmpfs </span><span class="pun">/</span><span class="pln">mnt</span><span class="pun">/</span><span class="pln">asec tmpfs rw</span><span class="pun">,</span><span class="pln">relatime</span><span class="pun">,</span><span class="pln">mode</span><span class="pun">=</span><span class="lit">755</span><span class="pun">,</span><span class="pln">gid</span><span class="pun">=</span><span class="lit">1000</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span>
<span class="pln">none </span><span class="pun">/</span><span class="pln">dev</span><span class="pun">/</span><span class="pln">cpuctl cgroup rw</span><span class="pun">,</span><span class="pln">relatime</span><span class="pun">,</span><span class="pln">cpu </span><span class="lit">0</span><span class="pln"> </span><span class="lit">0</span>
<span class="pun">/</span><span class="pln">dev</span><span class="pun">/</span><span class="pln">block</span><span class="pun">/</span><span class="pln">mtdblock3 </span><span class="pun">/</span><span class="pln">system yaffs2 ro</span><span class="pun">,</span><span class="pln">relatime </span><span class="lit">0</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="com">#system分割槽,只讀</span>
<span class="pun">/</span><span class="pln">dev</span><span class="pun">/</span><span class="pln">block</span><span class="pun">/</span><span class="pln">mtdblock5 </span><span class="pun">/</span><span class="pln">data yaffs2 rw</span><span class="pun">,</span><span class="pln">nosuid</span><span class="pun">,</span><span class="pln">nodev</span><span class="pun">,</span><span class="pln">relatime </span><span class="lit">0</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="com">#data分割槽,可讀寫</span>
<span class="pun">/</span><span class="pln">dev</span><span class="pun">/</span><span class="pln">block</span><span class="pun">/</span><span class="pln">mtdblock4 </span><span class="pun">/</span><span class="pln">cache yaffs2 rw</span><span class="pun">,</span><span class="pln">nosuid</span><span class="pun">,</span><span class="pln">nodev</span><span class="pun">,</span><span class="pln">relatime </span><span class="lit">0</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="com">#cache分割槽,可讀寫</span></p>

 

 

1. http://bbs.hiapk.com/thread-1446706-1-1.html

2.http://www.addictivetips.com/mobile/android-partitions-explained-boot-system-recovery-data-cache-misc/

3. http://www.addictivetips.com/mobile/what-is-clockworkmod-recovery-and-how-to-use-it-on-android-complete-guide/