如何在Android上更改主机文件


72

我已经成功地将我的Samsung Galaxy Mini(android 2.2.1)植根,并认为我可以更改任何内容(通常是root可以更改)。

我想更改android上的hosts文件,使其包含一些本地地址。但是,我仍然收到消息,我没有权限执行此操作。我尝试了以下选项:

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

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

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

Answers:


64

您具有root用户,但仍需要重新挂载/ system才能进行读取/写入

$ adb shell
$ su
$ mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system

转至此处以获取更多信息:挂载文件系统read-write


3
亚行不能直接这样做吗?用法显示:adb remount - remounts the /system partition on the device read-write
gsingh2011

1
如果您具有root用户,则可以使用以下命令找出/ system路径和fs类型:adb shell su -c cat / proc / mounts
greg7gkb 2013年

2
@ gsingh2011:adb remount会给我错误,remount failed: Operation not permitted并在未锁定的Nexus 4上给我adb root错误adbd cannot run as root in production builds。如果您知道如何重新安装adb,我很乐意听到。
克莱顿·休斯

4
@ClaytonHughes我知道这很旧,但是对于以后的线程adb root && adb remount迷来说,在Nexus 7(2013)的CM10.2上对我来说效果很好。
布兰登

2
即使使用remount和root,它仍然对我不起作用。
JohnyTex 2014年

45
adb shell
su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system

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

adb shell
su
mount -o remount,rw /system

做完了 这只是说重新挂载/ system是读写的,您不必指定文件系统或挂载位置。


在我的设备(带有2.6.35.7-g9f70789的Milestone 3)上,“ device”是安装所需的参数。我能够省去-t yaffs2。
西蒙·伍德赛德

7
mount -o remount,rw /system为我工作;另一个命令mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system导致:mount: Permission denied
KajMagnus 2014年

请注意,我需要mount -o rw,remount /system在Nexus 5X中执行操作(remount,rw将出现“设备或资源繁忙”错误。)
水果

这很好。
声音

14

在我的情况下,这实际上不起作用-即,要覆盖主机文件,您必须遵循它的指示,即:

./emulator -avd myEmulatorName -partition-size 280

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

./adb remount
./adb push /tmp/hosts /system/etc

1
是的,但这仅对仿真器有用。我当时使用的是扎根手机(三星Galaxy Mini,尽管我认为这到底是什么手机并不重要)。在物理设备上,您必须重新安装系统分区。
Filip Majernik

是的,我只在模拟器上测试过。很高兴知道,谢谢。
dsomnus 2011年

2
不适用于最新的SDK(4.0.x)。/adb push / etc / hosts / system / etc无法将“ / etc / hosts”复制到“ / system / etc / hosts”:内存不足
Mariuz,

Mariuz-thx,很高兴知道。我做到了2.3。
dsomnus 2012年

2
这是一个较旧的线程,但是如果在启动仿真器时未指定“ -no-snapstorage”,则可能会启动没有分区大小的快照,这毫无用处。在添加“ -no-snapstorage”之前,我遇到了同样的问题
Nick Bork

11

可能最简单的方法是使用此应用程序主机编辑器。你需要有根


5
可以,但是问题的描述始于“我已经成功使我的Samsung Galaxy Mini扎根”,所以这应该不是问题。
NiloVelez 2014年

1
据我所知,此应用程序仅允许您一次编辑一个条目。我想读一个10MB的新主机文件。
jaybro
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.