Как редактировать файл 'etc / hosts' в нерутированном телефоне?


14

Я использую LineageOS 14.1 и не хочу и не нужно рутировать его. Как я могу перемонтировать /systemRW и редактировать /system/etc/hosts?

Все ответы в разделе « Как редактировать файл« etc / hosts »? » Ожидают рутированного телефона.

Ответы:


9

Если я что-то пропустил, это невозможно. Без корневого доступа модифицировать может только механизм перепрошивки обновления (через рекавери или OTA) /system. Чтобы быть принятым, такой архив обновлений должен быть подписан тем же ключом, что и ПЗУ, что может сделать только разработчик ПЗУ (здесь: команда LOS).

Там может быть способ через пользовательское восстановление, которое позволяет редактировать все файловые системы напрямую (см. Например, ). Но, не зная, какое это устройство, нельзя сказать, существует ли соответствующее восстановление (вы можете проверить это в разделе « Устройства » на их веб-сайте для официальных изображений и найти XDA для неофициальных ). Кроме того, это либо устройства, либо не редактирование какого-либо файла внутри /system.


Спасибо. twrpвыглядит как очень хорошее решение. В нем есть все необходимое для небольших ручных изменений или полной hostsзамены. Я бег последней конюшни , который поставляется с BusyBox: vi, cat, chmodи chownтам.
бербт

1
Более того, вам не нужно устанавливать его - вы можете просто загрузить образ ( fastboot boot twrp.img). Что оставляет разблокировку загрузчика как единственную модификацию устройства (кроме той, которую вы просто хотите выполнить, конечно;)
Иззи

5

Можно использовать профиль VPN *, чтобы повлиять на разрешение имени хоста. В Play Store теперь есть несколько приложений, которые предоставляют удобный способ сделать это, например, Hosts Go . Обратите внимание, что, поскольку этот метод требует использования профиля VPN, вы не сможете использовать реальный VPN в сочетании с этим методом.


* Начиная с Android 4.0 (уровень API 14) - https://developer.android.com/guide/topics/connectivity/vpn


1
Приложение Hosts Go работает для добавления нескольких записей хостов. Документация может быть намного лучше, хотя. Вы можете сказать, что автор не является носителем английского языка. Короче говоря, вам нужно: запустить приложение, добавить дополнительные записи хостов, включить «переключатель смены хоста» и затем нажать большую кнопку запуска. Это начинает разрешение имени хоста. Например, теперь вы сможете использовать эти хосты в Chrome. Кнопка «Стоп» возвращает вас к обычному решению имени хоста
Гари

2

На телефоне без рутирования вы не можете редактировать hostsфайл, но можно использовать приложения VPN, такие как Virtual Hosts или Personal DNS Filter (оба с открытым исходным кодом, я не связан ни с одним из них), которые перехватывают трафик DNS и ищут пользовательский hostsфайл раньше. выполнение запросов к настроенному вышестоящему DNS-серверу.

Или, если загрузчик разблокирован, редактирование hostsфайла возможно через пользовательское восстановление.

Дополнительные варианты см .: Как всегда разрешать доменное имя в фиксированный IP без рута?


-3

Предупреждение: это будет работать только в том случае, если ADB сможет получить root-доступ, что не относится к большинству ПЗУ. Работает в LineageOS 14.1.

Требования:

  • Developer options включен в телефоне
  • adb установлен в компьютер

меры

Примените следующие настройки в Developer options:

  • Root access -> ADB only
  • Android debugging -> вкл

Подключите телефон к компьютеру. Предоставьте разрешение на ваш телефон, если спросят. На компьютере запустите терминал и запустите

$ adb root

Предоставьте разрешение на вашем телефоне. Перемонтировать с

$ adb remount

Запустите удаленную рутированную оболочку

$ adb shell

В оболочке adb отредактируйте файл hosts

# nano /etc/hosts

Когда будете готовы, отключите

# exit

3
А? В LOS root доступен, только если вы перепрограммируете дополнительный корневой пакет, который OP не хочет (т.е. «Root access = ADB only» не может быть достигнут). Так как ваши шаги должны работать без рута, если они требуют рута? Не могли бы вы уточнить?
Иззи

adbd не может работать от имени пользователя root в производственной сборке.
iBug

Кроме того, как вы можете получить nano? catэто все, что у тебя есть. Android даже не поставляется с основным vi.
iBug

@ Иззи только что одолжил телефон со стоковым Android, чтобы подтвердить, и да, похоже, это вещь LOS. Я не прошивал корневой пакет. Я изменю свой ответ и название вопроса, чтобы отразить этот факт.
бербт

@iBug так же, как мой предыдущий комментарий: скорее всего, вещь LOS. nanoнаходится в /system/xbin/nano. vim--version( /system/xbin/тоже без viпсевдонима) говорит, что это было "скомпилировано tpruvot @ CyanogenMod".
бербт
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.