android api 29 上的 adb remount 是不是损坏?
Posted
技术标签:
【中文标题】android api 29 上的 adb remount 是不是损坏?【英文标题】:Is adb remount broken on android api 29?android api 29 上的 adb remount 是否损坏? 【发布时间】:2020-01-20 11:12:28 【问题描述】:adb remount
在从模拟器运行时无法在 api 29 上正常工作。该命令在所有其他已尝试过的模拟器(18、23、25、26、27 和 28)上运行良好。
任何想法为什么会这样?
Skip mounting partition: /product_services
Skip mounting partition: /product
Skip mounting partition: /product_services
Skip mounting partition: /product
Skip mounting partition: /product_services
Skip mounting partition: /product
Skip mounting partition: /product_services
Skip mounting partition: /product
Skip mounting partition: /product_services
Skip mounting partition: /product
Skip mounting partition: /product_services
W Disabling verity for /system
E Skipping /system
Skip mounting partition: /product
Skip mounting partition: /product_services
Skip mounting partition: /product
Skip mounting partition: /product_services
Skip mounting partition: /product
Skip mounting partition: /product_services
Skip mounting partition: /product
Skip mounting partition: /product_services
Skip mounting partition: /product
Skip mounting partition: /product_services
Skip mounting partition: /product
Skip mounting partition: /product_services
Skip mounting partition: /product
Skip mounting partition: /product_services
Skip mounting partition: /product
Skip mounting partition: /product_services
Skip mounting partition: /product
Skip mounting partition: /product_services
Skip mounting partition: /product
Skip mounting partition: /product_services
Skip mounting partition: /product
Skip mounting partition: /product_services
/system/bin/remount exited with status 7
remount failed
【问题讨论】:
感谢上帝,其他人看到了这个。一直在尝试编辑主机文件一个小时,这是我每次尝试重新挂载时看到的 - 主机文件推送不起作用 FYI 看到这条评论后,我切换到 28 (Pie) 并且效果很好。 @user12090237。你好!请参阅“Kidd Tang”答案以及实际有效的解决方案。应该被标记为接受的答案,而不是我的。 【参考方案1】:我启动了模拟器
emulator -avd Pixel_3a_XL_API_29 -writable-system -no-snapshot-load
我发现很多人遇到模拟器冻结,如果你尝试无法启动android
$ adb root
$ adb disable-verity
$ adb reboot <--- By now emulator is freezed
那你可以试试这个
$ adb root
$ adb shell avbctl disable-verification <--- this will not freeze the emulator
$ adb reboot
模拟器重启时 尝试重新安装不会有问题
adb root
adb remount
adb push
将能够写入system
目录
【讨论】:
KiddTang:哇!很好!似乎工作!很多人都为这个问题而烦恼。这应该被标记为接受的答案。但是,如果我可能会问,您是如何发现“adb shell avbctl disable-verification”确实有效的?它是否记录在某处?为什么上面的命令真的不同于:“adb disable-verity”,它确实会导致模拟器冻结 忘记了我在哪里得到这个,而我对adb disable-verity
上的许多解决方案感到沮丧并导致模拟器冻结并且无法启动。然后在某处随机选择此命令,它可以完美运行!很少有资源谈论这会影响 Android Q 及更高版本。很高兴它可以帮助其他人:-)
太棒了! 2天后终于工作了:)。一个注意事项 - 我必须在 AVD 管理器中“擦除数据”才能运行它才能工作。否则,当我尝试使用“-writable-system”运行时,它会以黑屏加载模拟器。
这是我找到的最好的答案!谢谢@KiddTang
在对 SO 进行了不同的回答之后,这个答案对我有用。谢谢。【参考方案2】:
更新:
查看@KiddTang 的答案,这似乎是一个实际的解决方案
即使使用 API 30 (API R),这个问题现在仍然存在!甚至在使用 writable-system 选项启动模拟器时:(emulator -writable-system -avd NAME_OF_DEVICE
)!
我尝试按照这些instructions 禁用验证并在重新安装之前重新启动
但是,此解决方案导致我的模拟器冻结/挂起,并且无法启动。注意:我在使用带有“AVD”提供的“Android Sdk 图像”的模拟器时遇到了当前问题。然而,这种图像可能会有所限制。所以其他类型的 Android 图片可能不会发生这种情况
来自链接的代码摘要:
此代码不适用于我的情况,因为它会导致模拟器冻结并且在重新启动后无法启动,但是它们可能会在其他情况下工作。 请参阅link 了解更多详情和注意事项。 使用以下顺序执行重新挂载。$ adb root
$ adb disable-verity
$ adb reboot
$ adb wait-for-device
$ adb root
$ adb remount
然后输入以下序列之一:
$ adb shell stop
$ adb sync
$ adb shell start
$ adb reboot
或
$ adb push <source> <destination>
$ adb reboot
请注意,您可以按上述顺序替换这两行:
$ adb disable-verity
$ adb reboot
用这一行:
$ adb remount -R
注意:如果设备已经处于 adb remount 状态,adb remount -R 不会重启。
【讨论】:
以上是关于android api 29 上的 adb remount 是不是损坏?的主要内容,如果未能解决你的问题,请参考以下文章
如何修复 Windows 10 上的 Android Studio adb 错误?