Як відредагувати файл "etc / hosts" в не вкоріненому телефоні?


14

Я використовую LineageOS 14.1 і не хочу і не потрібно його викорінювати. Як я можу перезаписати /systemrw та відредагувати /system/etc/hosts?

Усі відповіді у " Як редагувати файл" тощо / хостів? "Очікують укоріненого телефону.

Відповіді:


9

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

Там може бути способом з допомогою настроюваного відновлення , який дозволяє редагувати всі файлові системи безпосередньо (дивіться , наприклад , ). Але не знаючи, що це за пристрій, не можна сказати, чи існує відповідне відновлення (ви можете перевірити це в розділі " Пристрої " на своєму веб-сайті для отримання офіційних зображень та пошуку XDA за неофіційними ). Крім цього, це або пристрою, або не редагування жодного файлу всередині /system.


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

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

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. Кнопка зупинки поверне вас до звичайного результату імені хоста
Gary

2

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

Або якщо завантажувач не відкривається, редагування hostsфайлів можливе за допомогою спеціального відновлення.

Більше альтернатив див: Як завжди дозволити доменне ім’я до фіксованого IP без вкорінення?


-3

Попередження: це буде працювати лише в тому випадку, якщо ADB може отримати кореневий доступ, що не стосується більшості ПЗУ. Він працює в LineageOS 14.1.

Вимоги:

  • Developer options увімкнено в телефоні
  • adb встановлений у комп’ютері

Кроки

Застосуйте наступні налаштування у Developer options:

  • Root access -> ADB only
  • Android debugging -> на

Підключіть телефон до комп'ютера. Надайте дозвіл у своєму телефоні, якщо запитаєте. У комп’ютері запустіть термінал і запустіть

$ adb root

Надати дозвіл у телефоні. Перерахуйте с

$ adb remount

Запустіть віддалену вкорінену оболонку

$ adb shell

В оболонці adb відредагуйте файл хостів

# nano /etc/hosts

Коли будете готові, відключіться

# exit

3
Так? Корінь LOS доступний лише у тому випадку, коли ви прошиваєте додатковий корінковий пакет, який OP не хоче (тобто "Root access = ADB only" неможливо досягти). То як же ваші кроки повинні працювати без кореня, якщо вони вимагають кореня? Не могли б ви уточнити?
Іззі

adbd не може запускатися як root у виробничій збірці.
iBug

Також, як можна дістатись nano? catце все, що ти маєш. Android навіть не постачається з базовим vi.
iBug

@Izzy щойно позичив телефон з акціонерним Android для підтвердження, і так, здається, це ЛОС. Я не спалахнув кореневий пакет. Я зміню свою відповідь та назву питання, щоб відобразити цей факт.
бербт

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