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/
Android系统分区理解及分区目录细解【转】的更多相关文章
- Android系统分区理解及分区目录细解
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- (转)android系统架构及源码目录结构
转自:http://blog.csdn.net/finewind/article/details/46324507 1. Android系统架构: android系统架构采用了分层架构的思想,如下图所 ...
- Android系统定制和源码开发以及源码编译(附视频)
Android系统定制配套视频: 为了把Android系统源码定制和编译的课程讲完,从准备到录制完所有的视频,一共花去了近半年的时间,前前后后各种下载源码,编译源码,系统不兼容,版本适配,虚拟机配置困 ...
- Android系统驱动【转】
本文转载自:http://www.hovercool.com/en/%E6%B7%BB%E5%8A%A0%E9%A9%B1%E5%8A%A8%E6%A8%A1%E5%9D%97#a_.E5.9B.9B ...
- Android系统分区
Android系统开发时,经常会遇到添加或者调整系统分区大小的问题,下面以mstar的一款产品为例进行分析: (1)mount指令可以查看到板子中挂在的分区,主要关注ext4类型分区,例如tvserv ...
- 【安卓本卓】Android系统源码篇之(一)源码获取、源码目录结构及源码阅读工具简介
前言 古人常说,“熟读唐诗三百首,不会作诗也会吟”,说明了大量阅读诗歌名篇对学习作诗有非常大的帮助.做开发也一样,Android源码是全世界最优秀的Android工程师编写的代码,也是A ...
- 存储系统管理(一)——Linux系统的设备和分区管理
1.设备名称的理解 /dev/sda1? sata硬盘,a1表示第一块硬盘中的第一个分区 /dev/cdrom 光驱 /dev/mapper/*? 系统中的虚拟设备 2.发现系统中的设备 ? fdis ...
- linux根下目录详解及分区建议
/ 根目录 分区大小一定要充足,一般不小于5GB/bin,/usr/bin 普通用户使用命令 建议和/放一起/sbin,/usr/sbin 管理员使用命令/bin,/sbin 操作系统自身 ...
- Linux系统挂载点与分区的关系(转载)
计算机中存放信息的主要的存储设备就是硬盘,但是硬盘不能直接使用,必须对硬盘进行分割,分割成的一块一块的硬盘区域就是磁盘分区.在传统的磁盘管理中,将一个硬盘分为两大类分区:主分区和扩展分区.主分区是能够 ...
随机推荐
- Service Fabric本地开发部署修改数据目录
以修改5节点非安全模式为例: 在C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\NonSecure\FiveNode目录下,修改 ...
- Rpgmakermv(25) 游戏数据
随着对RMMV插件了解的深入,我们会发现如果我们想要对游戏数据进行一些扩展,首先要了解游戏数据,游戏数据在官方代码中的rpg_managers.js里,这一节我们将要对这个官方类有一些基础的了解,并且 ...
- Yii Restful api自定义字段
- codeforces 979A Pizza, Pizza, Pizza!!!
题意: 对一个圆形的pizza,只能用直线来切它,求把它切为n+1份的形状和size都相同的最下次数. 思路: 形状和size都相同,那么只能是扇形,分奇偶讨论. n为0还得特判,切0刀,因为这个还被 ...
- 【Linux学习七】软件安装
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 一.编译安装1.解压 源码文件是压缩包 要先解压tar -zxvf t ...
- 大数据处理框架之Strom: Storm拓扑的并行机制和通信机制
一.并行机制 Storm的并行度 ,通过提高并行度可以提高storm程序的计算能力. 1.组件关系:Supervisor node物理节点,可以运行1到多个worker,不能超过supervisor. ...
- PLSA主题模型
主题模型 主题模型这样理解一篇文章的生成过程: 1. 确定文章的K个主题. 2. 重复选择K个主题之一,按主题-词语概率生成词语. 3. 所有词语 ...
- sqlmap的使用
安全测试===sqlmap(壹)转载 六.优化 这些参数可以优化Sqlmap的性能. 1.一键优化 参数:-o 添加此参数相当于同时添加下列三个优化参数: --keep-alive --null- ...
- Linux基础命令---ping
ping ping指令可以发送ICMP请求到目标地址,如果网络功能正常,目标主机会给出回应信息.ping使用ICMP协议强制发送ECHO_REQUEST报文到目标主机,从主机或网关获取ICMP ECH ...
- [转载]C#中使用正则表达式验证电话号码、手机号、身份证号、数字和邮编
原文出处:https://www.cnblogs.com/wuhuisheng/archive/2011/03/23/1992652.html 验证电话号码的主要代码如下: public bool I ...