安卓系统结构
手机文件夹目录
1. 系统分区(/)
这是 Android 设备的根目录,包含所有系统文件和文件夹。
/system
包含 Android 操作系统核心文件,例如系统库、应用程序框架和系统应用程序。
- /system/bin:包含系统可执行文件。
- /system/app:包含系统应用程序的 APK 文件。
- /system/framework:包含 Android 框架文件。
- /system/lib:包含系统库文件。
- /system/etc:存放系统的配置文件。
- /system/usr:存放用户的配置文件,如键盘布局、共享、时区等。
/data
存储用户数据和应用程序数据。
- /data/app:安装的应用程序数据和 APK 文件。
- /data/data:每个应用程序的私有数据目录。
- /data/local:本地数据,例如数据库和缓存文件。
- /data/misc:存放杂项。
- 设备配置信息: 例如,设备的硬件信息、屏幕分辨率、电池信息等。
- 系统启动参数: 例如,系统启动时加载的模块、内核参数等。
- 无线网络配置: 例如,Wi-Fi 网络的 SSID、密码等。
- 蓝牙配置: 例如,蓝牙设备的 MAC 地址、名称等。
- 其他系统数据: 例如,系统日志、调试信息等。
fstab:文件系统表,用于定义设备上的文件系统分区。boot.img:内核映像文件,用于启动 Android 系统。recovery.img:恢复模式映像文件,用于恢复系统或刷入新的系统镜像。wifi.conf:Wi-Fi 配置文件,用于存储 Wi-Fi 网络信息。bluetooth.conf:蓝牙配置文件,用于存储蓝牙设备信息。
2. 其他重要目录
- /vendor:存储设备制造商特定的文件,例如驱动程序和库。
- /oem:类似于 /vendor,但用于 OEM 特定的文件。
- /mnt:挂载点,用于挂载外部存储设备,例如 USB 驱动器。
系统数据库
一、通讯数据库
安卓中的 telephony.db 文件是一个与手机通讯相关的重要数据库,主要内容包括:
1. 运营商信息
- 运营商代码及名称: 包含 “mcc”(移动国家码)和 “mnc”(移动网络码)字段,通过这些代码可以识别手机所使用的运营商,例如中国移动的 “mcc” 为 460,“mnc” 根据不同的省份会有不同。还有 “numeric” 字段可能包含运营商的编号,以及 “name” 字段记录运营商的名称,这些信息用于标识和连接到对应的移动网络。
- APN(接入点名称)配置: “apn” 字段记录着可连接的接入点名称,便于手机连接移动数据网络或互联网,不同的运营商和不同的网络类型对应的 APN 也会有所不同。中国移动的常见 APN 有 “cmnet”(用于普通上网)和 “cmwap”(用于特定 WAP 上网服务)。
- 网络协议及代理信息: 该文件中包含与网络连接相关的协议信息,能够记录 “ipv4”/“ipv6” 两种常见的网络协议配置。此外,“proxy”(代理服务器地址)和 “port”(端口号)字段记录在连接网络时使用的代理服务器信息,以便手机通过代理服务器访问网络。
2. 用户帐户认证信息
- 用户名: “user” 字段可能记录着用户在运营商网络中的账号信息,不过有些情况下该字段可能为空,具体取决于运营商的要求和手机的设置。
- 密码: “password” 字段用于存储用户帐户的网络访问密码,如果运营商的网络需要用户进行认证才能访问,该字段会存储相应的密码信息。
- 认证类型: “authtype” 字段记录着认证的类型,例如 “none”(无认证)、“pap”(密码认证协议)、“chap”(挑战握手认证协议)等不同的认证方式。
3. 彩信相关配置
- 彩信服务器地址: “mmsc” 字段记录着彩信接入服务器的地址,手机发送和接收彩信时需要连接到该服务器。
- 彩信代理信息: “mmsproxy”(彩信代理服务器地址)和 “mmsport”(彩信代理服务器端口号)字段,在一些需要通过代理服务器发送和接收彩信的网络环境中使用。
4. 其他相关信息
- 当前运营商及可用信息: “current” 字段可能表示当前正在使用的网络运营商或 APN 配置的标识,以便系统快速识别和应用当前的网络参数设置。还有 “preferred” 字段可能表示用户偏好的网络配置,例如用户手动设置的优先使用的 APN 等。
- 设备相关信息: 虽然主要是与通信相关的的信息,但可能也会包含一些与设备相关的信息,例如 “v_mccmnc” 字段可能记录着与设备和运营商网络兼容性相关的特定代码或标识。
其中存在以下表
1. 通话记录(calls 表)
_id:通话记录的唯一标识符。number:通话号码。name:联系人姓名(如果存在)。type:通话类型(来电、去电、未接)。date:通话时间戳。duration:通话时长(秒)。countryiso:国家代码。geocoded_location:地理位置信息(可能为空)。
2. 短信(sms 表)
_id:短信的唯一标识符。thread_id:对话的唯一标识符。address:发送方号码。person:联系人 ID(如果存在)。date:短信时间戳。read:是否已读。status:短信状态(发送成功、发送失败等)。type:短信类型(接收、发送)。body:短信内容。
3. 彩信(pdu 表)
_id:彩信的唯一标识符。thread_id:对话的唯一标识符。date:彩信时间戳。message_type:彩信类型(发送、接收、草稿等)。subject:彩信主题。content_type:彩信内容类型。body:彩信内容。
4. 网络运营商信息(carriers 表)
_id:运营商信息的唯一标识符。name:运营商名称。mcc:移动国家代码(Mobile Country Code)。mnc:移动网络代码(Mobile Network Code)。apn:接入点名称。mmsproxy:彩信代理服务器地址。mmsport:彩信代理服务器端口号。
5. SIM 卡信息(siminfo 表)
_id:SIM 卡信息的唯一标识符。sim_id:SIM 卡 ID。icc_id:SIM 卡识别码。carrier_name:运营商名称。display_number_format:号码显示格式。
二、数据设置数据库
安卓中的 downloads.db 文件是一个与手机通讯相关的重要数据库。
- 下载 URL: 下载资源的原始链接。
- 本地文件路径: 下载文件保存到设备上的路径。
- 文件名: 下载文件的名称。
- 文件大小: 下载文件的大小。
- MIME 类型: 下载文件的类型(例如 application/pdf、image/jpeg 等)。
- 下载状态: 下载的状态,例如已完成、正在下载、暂停、失败等。
- 下载开始时间: 下载任务开始的时间。
- 下载结束时间: 下载任务结束的时间(如果已完成)。
- 其他元数据: 可能包含其他与下载相关的元数据,例如 Referer URL、User-Agent 等。
三、系统设置
settings.db(系统设置):存储着 Wi-Fi 密码、音量、屏幕亮度、语言偏好等系统和应用程序的设置信息。
安卓常见配置信息
1. WiFi 配置信息
- 位置:
/data/misc/wifi/wpa_supplicant.conf - 内容: 该文件存储了所有已保存的 WiFi 网络信息,包括 SSID、密码、安全类型等。
- 权限: 需要 root 权限才能访问和修改。
2. 蓝牙配置信息
蓝牙配置信息分散在多个位置,以下是一些重要的:
蓝牙配对信息
- 位置:
/data/misc/bluetooth/bt_config.conf - 存储已配对蓝牙设备的信息,例如 MAC 地址和设备名称。
- 需要 root 权限才能访问和修改。
蓝牙配置文件
- 位置:
/system/etc/bluetooth - 存储蓝牙服务的配置文件,例如音频配置文件(A2DP)和免提配置文件(HFP)。
- 通常需要 root 权限才能修改。
蓝牙驱动和固件
- 位置:
/vendor/firmware或/system/vendor/firmware - 存储蓝牙芯片的驱动程序和固件文件。
- 通常需要 root 权限才能访问和修改。
工作模式

Recovery 模式
指的是一种可以对安卓机内部数据或系统进行修改的模式(类似于 Windows PE 或 DOS),在该模式下,我们可以对已有系统备份或升级,也可以在此恢复出厂设置。
下载模式
在安卓手机中是一种比 Recovery 更底层的刷机模式(俗称引导模式),就是使用 USB 数据线连接手机的一种刷机模式。
Android 解锁与刷机
Bootloader 锁
在进行刷机时,会遇到 Bootloader 锁住的情况,此时需要解锁才行。
但是也会遇到下面的情况:
- 解锁 Fastboot/BootLoader 模式时,可能会使相关服务失效。
- 在解锁过程中,可能会使数据恢复到出厂设置。
- 在解锁过程中,可能会损坏文件。
