理解 Android 系統分區目錄結構,是進行系統級修改、移除預裝程式、替換字體、調整核心參數、開發 Xposed 模組的基礎。本文詳細列舉 /system 主要子目錄核心檔案與功能對照,供開發者與進階玩家參考。
存放出廠預裝的系統級應用,使用者自行安裝的 APP 位於 /data/app。每個 APK 通常伴隨同名 .odex (優化後的 DEX 快取),加快首次啟動速度。刪除/替換此目錄檔案需 Root 並將 /system 重掛載為讀寫 (R/W)。
| 檔案 | 功能 |
|---|---|
| AlarmClock.apk/.odex | 鬧鐘 |
| Browser.apk/.odex | 瀏覽器 |
| Calculator.apk/.odex | 計算機 |
| Calendar.apk/.odex | 行事曆 |
| CalendarProvider.apk/.odex | 行事曆資料提供者 |
| Camera.apk/.odex | 相機 |
| Contacts.apk/.odex | 聯絡人 |
| DownloadProvider.apk/.odex | 下載管理服務 |
| DrmProvider.apk/.odex | DRM 數位版權管理 |
| Email.apk/.odex | 電子郵件客戶端 |
| Gmail.apk/.odex | Gmail |
| GoogleSearch.apk/.odex | Google 搜尋 |
| Launcher.apk/.odex | 桌面啟動器 |
| Maps.apk/.odex | Google 地圖 |
| MediaProvider.apk/.odex | 多媒體資料庫 (媒體掃描) |
| Mms.apk/.odex | 簡訊/彩信 |
| Music.apk/.odex | 音樂播放器 |
| PackageInstaller.apk/.odex | APK 安裝程式 |
| Phone.apk/.odex | 撥號器/通話介面 |
| Settings.apk/.odex | 系統設定 |
| SettingsProvider.apk/.odex | 設定資料提供者 |
| TelephonyProvider.apk/.odex | 電話/簡訊資料提供者 |
| Vending.apk/.odex | Play Store (舊稱 Market) |
| YouTube.apk/.odex | YouTube |
| ... (其他) | Bugreport、FieldTest、HTMLViewer、IM、Sync、Talk、VoiceDialer、Updater 等 |
對應 Linux 標準 /bin、/sbin,含核心系統服務、工具程式、硬體抽象層 (HAL) 守護程序。
| 檔案 | 功能 |
|---|---|
| app_process | Zygote 進程啟動器,孵化所有 App 進程 |
| dalvikvm / art | Dalvik/ART 虛擬機宿主 |
| debuggerd | 崩潰捕獲/墓碑生成 |
| logcat | 系統日誌列印 (logcat 指令本體) |
| logwrapper | 日誌包裝器 |
| surfaceflinger | 圖形合成器 (UI 渲染核心) |
| servicemanager | Binder 服務管理器 (服務註冊/查詢) |
| vold | 儲存卷管理守護程式 (掛載/解掛載/加密) |
| netcfg | 網路介面配置 |
| rild | Radio Interface Layer 守護程式 (基帶通訊) |
| toolbox / toybox | 精簡 Linux 指令集合 (ls, cp, mv, ps, chmod...) |
| installld | 應用安裝守護程式 |
| keystore | 金鑰儲存服務 |
| wpa_supplicant | Wi-Fi WPA 協商 |
| dhcpcd | DHCP 客戶端 |
| ... (其他) | akmd, am, dumpsys, dumpstate, monkey, ping, playmp3, pm, qemud, sdptool, ssvc, sh, telnetd 等 |
對應 Linux /etc,含 APN、GPS、音頻參數、權限、Wi-Fi、固件二進制 Blob 等關鍵配置。
| 檔案/目錄 | 功能 |
|---|---|
| apns-conf.xml | APN 接入點資料庫 (運營商網路設定) |
| AudioFilter.csv / AudioPara4.csv | 音頻濾波器/參數表 (喇叭/麥克風/耳機調校) |
| bookmarks.xml / favorites.xml | 瀏覽器書籤/收藏夾預設資料 |
| dbus.conf | D-Bus 訊息總線配置 |
| gps.conf | GPS 設定 (SUPL 伺服器、AGPS 參數) |
| hosts | 本地 DNS 快取/封鎖清單 |
| permissions.xml | 系統權限定義 (哪些 UID 擁有何種權限) |
| firmware/ | 基帶、Wi-Fi、藍牙、觸控、感應器韌體二進制檔 |
| wifi/ | Wi-Fi 驅動參數、wpa_supplicant.conf、固件二進制 |
| dhcpcd/ | DHCP 客戶端掛載腳本 |
| security/ | CA 憑證 (cacerts.bks)、OTA 驗證憑證 (otacerts.zip) |
| init.*.sh / init.*.rc | 啟動腳本 (init 語言),控制開機流程、服務啟動順序 |
含 Droid 字體家族:
DroidSans.ttf (預設無襯線)、DroidSans-Bold.ttf、DroidSansFallback.ttf (中日韓統一表意文字/回退字體、體積最大)、DroidSansMono.ttf (等寬)、DroidSerif-*.ttf (襯線字體)。
替換字體:Root 後將新字體重命名為對應檔名覆蓋 /system/fonts/,重啟生效。注意授權與語言覆蓋範圍。
Android 執行環境核心類別庫,對應 Java API、Android API、製造商擴展 API。
關鍵檔案:
framework.jar (核心 API)、services.jar (系統服務)、android.policy.jar (視窗/按鍵策略)、ext.jar (擴展)、core.jar、framework2.jar、bouncycastle.jar (加密)、am.jar (Activity Manager)。
每個 JAR 皆有對應 .odex 優化快取。修改框架需反編譯 (apktool/baksmali)、修改 smali 碼、重新打包簽名、替換並清除 odex,風險極高,建議透過 Xposed/EdXposed 模組無侵入式修改。
/system 分區通常為唯讀 (ro),修改前必須 mount -o remount,rw /systemls -l /system、df -h、mount 確認分區掛載狀態熟悉目錄架構,讓系統級客製化有章可循,避免盲目操作導致軟磚。