如何在android上更改hosts文件

Fil*_*nik 72 android hosts

我已经成功植根了我的三星Galaxy Mini(android 2.2.1)并且认为我可以改变任何东西(通常可以根目录).

我想更改android上的hosts文件,以包含一些本地地址.但是,我仍然得到的消息是我无权这样做.我尝试了以下选项:

  1. adb push /path/to/my/new/hosts /system/etc......我得到了答复Read-only file system.

  2. 直接在手机上的外壳.但这也不起作用.我可以su在控制台中执行,但无法更改文件.

是不是很奇怪,作为超级用户,我不允许更改某些文件?

Lei*_*sen 64

你有root,但你仍然需要重新安装/系统来读/写

$ adb shell
$ su
$ mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
Run Code Online (Sandbox Code Playgroud)

转到此处获取更多信息:挂载文件系统读写.

  • @ClaytonHughes我知道这已经过时了,但是对于未来的帖子,"adb root && adb remount"在Nexus 7(2013)的CM10.2上对我很有用. (4认同)
  • adb不能直接这样做吗?用法显示:`adb remount - 重新安装设备读写的/ system分区 (3认同)
  • @ gsingh2011:'adb remount`给了我错误`remount failed:操作不允许`和`adb root`在我解锁的Nexus 4上给出错误'adbd不能在生产版本中以root身份运行'.如果你知道如何获得adb重新上班,我很想听. (2认同)
  • 它仍然不适用于我,即使使用重装和root. (2认同)

小智 44

adb shell
su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
Run Code Online (Sandbox Code Playgroud)

这假设您的/ system是yaffs2并且它位于/ dev/block/mtdblock3,在大多数Android手机上执行此操作的更简单/更好的方法是:

adb shell
su
mount -o remount,rw /system
Run Code Online (Sandbox Code Playgroud)

完成.这只是说remount/system读写,你不必指定文件系统或挂载位置.

  • `mount -o remount,rw/system`为我工作; 另一个命令`mount -o rw,remount -t yaffs2/dev/block/mtdblock3/system`导致:`mount:Permission denied`. (7认同)

dso*_*nus 14

这在我的情况下并不真正起作用 - 即为了覆盖主机文件,你必须遵循它的指示,即:

./emulator -avd myEmulatorName -partition-size 280
Run Code Online (Sandbox Code Playgroud)

然后在其他术语窗口中(推送新主机文件/ tmp/hosts):

./adb remount
./adb push /tmp/hosts /system/etc
Run Code Online (Sandbox Code Playgroud)

  • 不适用于最新的sdk(4.0.x)./ add push/etc/hosts/system/etc无法将'/ etc/hosts'复制到'/ system/etc/hosts':内存不足 (2认同)
  • 这是一个较旧的线程,但如果在启动模拟器时未指定"-no-snapstorage",则可能会启动不具有分区大小的快照.我有同样的问题,直到我添加"-no-snapstorage" (2认同)

byr*_*les 11

可能最简单的方法是使用这个应用程序主机编辑器.你需要拥有root权限

  • 当然,但问题的描述始于"我已成功植根我的三星Galaxy Mini",所以这应该不是问题. (5认同)