配套系列教学视频链接:
说明
系统:Android 9.0
前言
当需要对userdebug版本镜像进行修改时, 我们常常使用 adb remount 实现将vendor分区挂载成可读写, 但是操作时会出现权限报错remount of the / superblock failed: Permission denied,本章节讲解一下常见几个操作方法。
问题描述
对系统镜像进行remount的操作,可以如下命令:
adb root
adb remount
但是会出现如下错误:
adb root
restarting adbd as root
$ adb remount
remount of the / superblock failed: Permission denied
remount failed
常见解决方案
Android 9 之后启用 avb(Android Verified Boot)2.0,verified boot and DM-verity, 该功能会校验系统数据是否有损坏, 如果修改过文件,在启动时会因为校验导致启动失败,可以通过如下方法来操作:
adb root
adb disable-verity
adb reboot
adb root
adb remount
此时如果还是报一样的错误, 就可以尝试adb进入到机器中做如下操作:
adb root
adb shell
# mount -o remount,rw /vendor
这种操作完毕之后,也有可能出现如下报错:
# mount -o remount,rw /vendor
mount: '/vendor' not in /proc/mounts
那么终极的解决方法就是:
cat /proc/mounts | grep vendor
/dev/block/platform/a003e00.virtio_mmio/by-name/vendor /vendor ext4 rw,seclabel,relatime,block_validity,delalloc,barrier,user_xattr 0 0
执行重新挂载命令如下:
mount -o remount,rw /dev/block/platform/a003e00.virtio_mmio/by-name/vendor