如何 Root 一个 Android 模拟器?

How to Root an Android Emulator?

我知道有很多这样的问题,但其中 none 似乎对我有用。

我正在编写一个自动更新和安装自身的程序,但是安装更新需要用户确认,但我不希望这样,因为我将部署的设备永远不会被任何人实际使用。因此,为了尝试解决这个问题,我想对设备进行 root 操作并在代码中使用运行时命令来安装它。

为了测试这一点,我想先在 (AVD) 模拟器上尝试一下,但它(显然)需要 root。那我该怎么做呢?

我已经在 adb shell 中尝试过命令(并在 adb shell 中尝试过),例如:

mount -o rw,remount -t yaffs2 /dev/block/mtdblock03 /system  
push su /system/xbin/su  
chmod 06755 /system  
chmod 06755 /system/xbin/su

和其他一些我目前找不到,但它们总是会给我错误,例如 cannot stat 'su' 和类似的东西(如果我能找到命令并重新创建,将进行编辑) 或者他们只是什么都不说,而且似乎没有用。

如果有帮助,我正在 visual studio 中使用 xamarin。

您可以使用 https://www.genymotion.com/。默认情况下,创建的所有设备都已植根。例如启动一个设备然后键入 adb shell command。它将打开一个有根目录的 shell.

使用 android 模拟器时,只需执行以下操作:

  • adb.exe root - 以 root 权限重新启动 adbd
  • adb.exe unroot - 在没有 root 权限的情况下重启 adbd

您可以在以下位置找到 adb.exe:android_sdk\platform-tools\

您可以通过以下操作确认设备是否已 root:

adb.exe shell

在 shell 中键入:whoami。然后键入 exit 退出 shell

例子

P:\Android\sdk\platform-tools>adb.exe shell
generic_x86:/ $ whoami
shell
generic_x86:/ $ exit

P:\Android\sdk\platform-tools>adb.exe root

P:\Android\sdk\platform-tools>adb.exe shell
generic_x86:/ # whoami
root
generic_x86:/ # exit

P:\Android\sdk\platform-tools>adb.exe unroot

P:\Android\sdk\platform-tools>adb.exe shell
generic_x86:/ $ whoami
shell
generic_x86:/ $ exit