如何在非root用户的手机中编辑“ etc / hosts”文件?


14

我正在使用LineageOS 14.1,不需要也不需要将其植根。如何重新安装/systemrw并进行编辑/system/etc/hosts

如何编辑'etc / hosts'文件? ”中的所有答案都要求使用手机。

Answers:


9

除非我错过任何事情,否则是不可能的。如果没有root用户访问权限,则只能修改(通过恢复或OTA)刷新更新的机制/system。要被接受,必须使用与ROM相同的密钥对这种更新存档进行签名-只有ROM的开发人员(此处为LOS团队)才能执行此操作。

可能是通过定制的恢复,它可以让您直接编辑的所有文件系统的方式(例如参见)。但是在不知道它是什么设备的情况下,无法确定是否存在匹配的恢复(您可以在其网站的“ 设备”部分中查看其官方映像,并在XDA中搜索非官方的映像)。除此之外,它要么设备,要么不编辑其中的任何文件/system


谢谢。twrp看起来是一个很好的解决方案。它具有小的手动更改或完整hosts替换所需的一切。我运行最新的稳定所附带的BusyBox: ,,vi 和在那里。catchmodchown
berbt

1
而且,您不必安装它-您只需启动映像(fastboot boot twrp.img)。这使解锁引导加载程序成为唯一的设备修改(当然,只是您要执行的修改之外)
Izzy

5

可以使用VPN配置文件*影响主机名解析。现在,Play商店中提供了许多应用程序,它们为执行此操作提供了方便的方法,例如Hosts Go。请注意,由于此技术要求使用VPN配置文件,因此您将无法将实际的 VPN与该技术结合使用。


*自Android 4.0(API级别14)起-https://developer.android.com/guide/topics/connectivity/vpn


1
Hosts Go应用程序确实可以添加一些主机条目。文档可能会好得多。您可以告诉作者不是英语为母语的人。简而言之,您需要:运行该应用程序,添加其他主机项,打开“主机更改开关”,然后单击大的开始按钮。这将启动主机名解析。例如,您现在应该可以在chrome中使用这些主机。停止按钮可将您带回正常的主机名输出
加里(Gary)

2

在非root用户的电话上,您实际上无法编辑hosts文件,但是可以使用VPN应用程序,例如虚拟主机个人DNS过滤器(两者都是开源的,我都没有隶属关系),它们可以拦截DNS流量并在查找hosts之前查找自定义文件查询已配置的上游DNS服务器。

或者,如果引导加载程序是可解锁的,hosts则可以通过自定义恢复来编辑文件。

有关更多替代方法,请参见:如何始终将域名解析为固定IP而无需生根?


-3

警告:仅当ADB能够获得root访问权限时,此方法才有效,而大多数ROM并非如此。它可以在LineageOS 14.1中使用。

要求:

  • Developer options 在电话中启用
  • adb 安装在电脑上

脚步

在中应用以下设置Developer options

  • Root access -> ADB only
  • Android debugging ->在

将电话连接到计算机。如果询问,请在手机中授予权限。在计算机中,启动终端并运行

$ adb root

在手机中授予权限。重新安装

$ adb remount

启动远程植根外壳

$ adb shell

在adb shell中,编辑您的主机文件

# nano /etc/hosts

准备好后,断开连接

# exit

3
??在LOS根目录下,仅当您刷新附加的根软件包时才可用,而OP不想这样做(即无法实现“根访问=仅ADB”)。因此,如果需要root用户,没有root用户的步骤应该如何工作?你能澄清一下吗?
伊兹

adbd无法在生产版本中以root用户身份运行。
iBug

另外,您如何获得nanocat就是您所拥有的。Android甚至没有附带基本的vi
iBug

@Izzy刚刚借了一部带有Android手机的手机进行确认,是的,这似乎是LOS的事情。我没有刷根包。我将修改我的答案和问题标题以反映这一事实。
berbt

@iBug与我之前的评论相同:很可能是LOS。nano/system/xbin/nanovim--version/system/xbin/也没有vi别名)说它是“由tpruvot @ CyanogenMod编译的”。
berbt
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.