安卓系统结构

手机文件夹目录

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 权限才能访问和修改。

工作模式

image-20241028003202203.png

Recovery 模式

指的是一种可以对安卓机内部数据或系统进行修改的模式(类似于 Windows PE 或 DOS),在该模式下,我们可以对已有系统备份或升级,也可以在此恢复出厂设置。

下载模式

在安卓手机中是一种比 Recovery 更底层的刷机模式(俗称引导模式),就是使用 USB 数据线连接手机的一种刷机模式。

Android 解锁与刷机

Bootloader 锁

在进行刷机时,会遇到 Bootloader 锁住的情况,此时需要解锁才行。

但是也会遇到下面的情况:

  1. 解锁 Fastboot/BootLoader 模式时,可能会使相关服务失效。
  2. 在解锁过程中,可能会使数据恢复到出厂设置。
  3. 在解锁过程中,可能会损坏文件。

image-20241028004344845.png