萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 手機 >  >> 手機應用 >> Android 教學

Android 修改 hosts 檔案完整教學:三種方法、換行符陷阱與 Root 權限詳解

前言

Android 系統同樣擁有 /system/etc/hosts 檔案,可用於封鎖廣告、加速特定網域解析或測試開發環境。但修改前務必了解 Root 權限、換行符格式 等關鍵細節,否則易導致系統異常。

關鍵前置知識

  • 檔案路徑: /system/etc/hosts
  • 換行符規範: 必須為 Unix 格式 LF (0x0A),不可為 Windows 的 CRLF (0x0D 0x0A)。可用 Notepad++ 檢視「顯示所有字元」確認行尾為 LF。
  • Root 權限: 方法一、三需 Root;方法二(電腦端修改)需 Root 才能掛載 /system 為可寫。

方法一:手機端直接修改(需重啟)

  1. 取得 Root 權限(Magisk / SuperSU / KernelSU 等)。
  2. 安裝支援 Root 掛載的檔案管理器(如 Root Explorer、ES 檔案瀏覽器 舊版)。
  3. 將 /system 掛載為可讀寫 (R/W)。
  4. 編輯 /system/etc/hosts,新增/修改對應關係,例如:
    127.0.0.1 ad.example.com
  5. 存檔,重新啟動手機生效。

方法二:電腦端修改後推回(免重啟,需 ADB + Root)

  1. 手機開啟 USB 偵錯,電腦安裝 ADB 工具。
  2. 終端機執行:
    adb root && adb remount(需支援 root 的 adbd)
  3. adb pull /system/etc/hosts ~/hosts_backup 備份。
  4. 電腦端用支援 Unix 換行的編輯器(VS Code、Notepad++、Sublime)修改 hosts。
  5. adb push ~/hosts_backup /system/etc/hosts 推回。
  6. 無需重啟,即時生效(部分情況需清除 DNS 快取:adb shell ndc resolver clearnetdns wlan0)。

方法三:使用專用 App(需 Root + Xposed/Root 權限)

  • Hosts 助手 (Hosts Go / Hosts Editor):介面友善,支援備份/還原/開關。
  • SmartHosts:可自動更新線上維護的 hosts 清單(如 StevenBlack/hosts)。

此類 App 實質呼叫 su 執行掛載與寫入,原理同方法一,但操作更直覺。

常見問題排查

  • 修改後不生效: 檢查換行符、確認 /system 確已掛載 R/W、嘗試重啟或清除 DNS 快取。
  • 開機卡 Logo: hosts 語法錯誤或編碼錯誤導致 init 解析失敗,需進 Recovery 掛載 system 修復或刷回備份。
  • 系統分區空間不足: 刪除 hosts 內註解行或無用條目騰出空間。

iOS 裝置補充

iOS 需越獄後才能修改 /etc/hosts,非本文討論範圍。

copyright © 萬盛學電腦網 all rights reserved