命令序列和错误信息,分析问题并提供解决方案:`/system/bin/sh: remount: inaccessible or not found`

错误分析:

  1. adb remount 失败的原因

    • 错误信息:/system/bin/sh: remount: inaccessible or not found
    • 根本原因:
      • 设备没有完全root权限或系统分区被锁定
      • Android 10+ 开始使用动态分区系统(A/B分区或super分区),传统remount方法失效
      • 设备可能启用了DM-verity或AVB验证
  2. su 命令失败的原因

    • 错误信息:su: inaccessible or not found
    • 根本原因:
      • /system/bin/su/system/xbin/su 文件不存在(设备未root)
      • root管理工具(如Magisk)未正确安装
      • 当前用户权限不足

完整解决方案:

# 1. 确认设备root状态
adb root      # 确保adbd以root运行
adb shell id  # 确认当前用户为root (uid=0)

# 2. 尝试替代remount方法 - 动态分区支持
adb shell "setenforce 0"                             # 临时关闭SELinux
adb shell "mount -o rw,remount /system"               # 传统方法尝试
adb shell "mount -o rw,remount /"                     # 尝试挂载根目录

# 3. 如果失败,使用更底层的重新挂载方法
adb shell "stop"                                      # 停止Android服务
adb shell "mount -o remount,rw /system"               # 重新挂载系统
adb shell "mount -o remount,rw /"                     # 或尝试根目录
adb shell "start"                                     # 重新启动服务

# 4. 检查su安装位置(需要root后操作)
adb shell "ls -l /system/bin/su; ls -l /system/xbin/su"

# 5. Magisk用户专用命令(如果使用Magisk root)
adb shell "magisk --mount -o rw,remount /system"
adb shell "magisk --bind /sbin/su /system/bin/su"      # 创建su符号链接

针对永久解决方案:

如果上述方法仍不成功,需要更深层的操作:

# 1. 禁用分区验证(需解锁bootloader)
adb reboot bootloader
fastboot flashing unlock                    # 解锁设备(会清除数据)
fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img

# 2. 重新root设备(Magisk方法)
adb pull /dev/block/bootdevice/by-name/boot boot.img
# 在电脑上用Magisk修补boot.img
fastboot flash boot magisk_patched.img

# 3. 创建手动符号链接(root后)
adb shell "ln -s /sbin/su /system/bin/su"
adb shell "chmod 0755 /system/bin/su"

推荐的替代方案:

如果remount仍然失败,可以使用系统分区写入替代方案:

# 1. 使用overlay方式修改系统文件
adb shell "mount -t tmpfs tmpfs /system"
adb shell "cp -a /system/* /tmp/system/"
adb shell "mount -o bind /tmp/system /system"

# 2. 通过Magisk模块修改(推荐)
# 创建模块目录结构
mkdir -p system/product/etc
# 添加需要修改的文件
adb push my_config.prop /sdcard/Download/
adb shell "su -c 'cp /sdcard/Download/my_config.prop /data/adb/modules/my_module/system/product/etc/'"

补充建议:

  1. 分区状态检查命令

    adb shell "mount | grep system"           # 查看分区挂载状态
    adb shell "getprop ro.build.version.sdk"  # 查看Android版本
    adb shell "df -h /system"                 # 查看系统分区情况
    
  2. 安全提示

    • 操作前备份重要数据(解锁bootloader会清除数据)
    • 确保设备已充电至少50%
    • 企业设备可能部署了MDM限制,需要管理员权限

如果问题仍存在,请提供以下信息以便进一步诊断:

adb shell "uname -a"
adb shell "getprop ro.product.device"
adb shell "cat /proc/mounts | grep system"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值