adb remount权限被拒绝,但能够访问shell中的超级用户 - android

Ian*_*.S. 56 permissions shell android root adb

所以,我正在尝试将一些文件推送到Android设备上的/ system(zte)我已经扎根,与ADB连接,

adb remount - >我得到权限否认adb shell su - >我能够访问shell并创建文件夹等并编辑文件系统

(但在shell中我无法将文件从我的计算机复制到设备)

请帮忙

Mar*_*odF 91

如果将来有人遇到同样的问题:

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

双方adb remountadb root没有在生产版本,而不会改变ro.secure工作,但你仍然可以通过打开外壳,要求root权限,然后输入mount命令挂载/系统.

  • 对我不起作用:我得到"许可被拒绝". (11认同)
  • 我无法在我的Android设备上运行`su`,我得到:`/ system/bin/sh:su:not found`.我想这是因为我的设备没有根源. (11认同)
  • 我在仿真器的/ proc / mounts中没有得到`mount:'/ system'。 (10认同)
  • 从来没听说过!当你运行"su"时,你应该在手机上弹出一个超级用户弹出窗口,询问你是否要授权它.你确定超级用户工作正常并且它没有配置为阻止adb root吗? (4认同)
  • @Kemal Tezer Dilsiz 在 API 28 中,我也得到了这个 (3认同)
  • @tigertang,我可以通过带有 --writable-system 标签的 cmd 启动模拟器来执行 API 28,然后只需使用 adb shell 进入并手动编辑。我不知道这是否适合你的情况。祝你好运。我的情况是我只需要编辑主机文件 (2认同)

小智 19

尝试

adb root
adb remount
Run Code Online (Sandbox Code Playgroud)

以root身份启动adb恶魔并确保以读写模式安装分区(必不可少的部分adb root).在pushing 之后,再次使用以下命令撤消root权限:

adb unroot
Run Code Online (Sandbox Code Playgroud)


fra*_*ier 13

emulator -writable-system

对于使用模拟器的人:另一种可能性是您需要使用-writable-system启动模拟器.当使用与android studio一起打包的标准模拟器和4.1图像时,这是唯一有用的东西.点击此处:https://stackoverflow.com/a/41332316/4962858


Qua*_*ong 9

一些较新的版本需要首先运行以下附加adb命令

adb root
adb disable-verity
adb reboot
Run Code Online (Sandbox Code Playgroud)

然后

adb root
adb remount
Run Code Online (Sandbox Code Playgroud)


小智 8

您可以使用:

adb shell su -c "your command here"
Run Code Online (Sandbox Code Playgroud)

只有su工作的root设备.


Bak*_*ker 6

启动 /w 可写系统

在没有Google Play 的情况下使用模拟器映像

这不适用于生产 Android 映像,即使用 Google Play 的映像

使用非 Google Play 映像进行 root 访问和可写系统

使用其 AVD 名称,从命令提示符将模拟器启动为可写系统Pixel3a(在本示例中,请参阅下面的AVD 名称来查找或更改您的模拟器。确保使用此命令时没有另一个模拟器实例正在运行):

emulator @Pixel3a -writable-system
Run Code Online (Sandbox Code Playgroud)

(将此命令放在手边。您需要在任何时候以“可写”方式访问模拟器时使用它。我每次都在 gitbash 中使用别名从 gitbash 终端启动我的模拟器。)

这将启动模拟器。

启动完成后,打开另一个命令提示符/终端(此命令提示符/终端卡在运行模拟器中)并且:

adb root
Run Code Online (Sandbox Code Playgroud)

结果应该是:

$ adb root
restarting adbd as root
Run Code Online (Sandbox Code Playgroud)

然后:

adb remount
Run Code Online (Sandbox Code Playgroud)

结果:

$ adb remount
remount succeeded
Run Code Online (Sandbox Code Playgroud)

当你:

adb shell
Run Code Online (Sandbox Code Playgroud)

和:

su
Run Code Online (Sandbox Code Playgroud)

您现在应该拥有完全的 root/可写访问权限:

$ adb shell
generic_x86_arm:/ # su
generic_x86_arm:/ # 
Run Code Online (Sandbox Code Playgroud)

将域添加到主机文件

$ cd /etc
$ cp hosts hosts.bak1
$ cat hosts
127.0.0.1       localhost
::1             ip6-localhost

$ echo '10.0.2.2 my.newdomain.com' >> hosts
$ cat hosts
127.0.0.1       localhost
::1             ip6-localhost
10.0.2.2        my.newdomain.com
Run Code Online (Sandbox Code Playgroud)

10.0.2.2 是 Android 模拟器的“localhost”。它将委托给您的 Windows/Mac 主机文件和 DNS 服务。您添加到开发计算机文件中的任何域都将像在 Android 模拟器主机文件中hosts一样工作。10.0.2.2

AVD名称

在 Android Studio 中,AVD Manager 可以从菜单启动:

工具 > AVD 管理器

AVD列表

如果您的模拟器名称包含空格,您可以通过单击右侧的铅笔图标来更改它。

我将模拟器命名为“Pixel3a”,不带空格,以便于输入。 AVD 详细信息