Android覆盖hosts文件

时间:2017-03-23 14:40:58

标签: android ssl android-emulator adb

问题

我想打电话给我的安全网站,该网站使用自签名证书,并且在我的开发机器上运行,从我在同一台机器上运行的模拟器

上下文

我创建了一个自签名证书,并安装在我的开发机器上,并编辑了hosts文件以将localhost链接到我的domail。所以: https://mydomain:8080在我的开发机器上完美运行。

我在我的模拟器上安装了相同的证书,因此: https://10.0.2.2:8080有效,但模拟器无法验证证书,因为我在为mydomain颁发证书时调用了10.0.2.2

solutoin 是将10.0.2.2链接到主机文件上的mydomain

问题是我无法覆盖(编辑)模拟器上的hosts文件,错误消息指出该文件是“只读”

我的尝试

这是很长一段时间,我正在努力,我几乎尝试了我能找到的所有东西,但没有成功,列出一些:

第一

adb shell 苏 mount -o rw,remount / system chmod 777 / system

我收到相同的错误消息

第二 我从adb命令运行模拟器,具有可写权限,但发生了同样的错误

第三

我尝试使用模拟器,因此我可以使用应用程序,例如Hosts Editor,但经过这么多试验和错误后,我无法使用模拟器

好吧,我尝试了很多,我希望你们能给我一些见解

更新

根据aastefanov's answer,可能仍然不允许system/文件夹具有写入权限

1 个答案:

答案 0 :(得分:1)

我找到了解决方案:

解决方案是从shell脚本修改hosts文件,而不会过度使用它。

移动技术资料

  1. adb root
  2. adb shell
  3. su //获取root访问权限
  4. whoami //以确保我们现在是root用户
  5. //现在我们是root用户,但我们无法修改hosts文件,因为它只是处于只读状态

    1. mount -o rw,remount / system //使其可写(您可以更具体,并将其应用于system / etc文件夹)

    2. echo“10.0.2.2 williamromadomain”>> /系统/ etc / hosts中

    3. 这只是一个解决方法,因为每次运行模拟器时我都必须这样做