本文轉載自: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/