Android 12下adb root报错‘adbd cannot run as root’的解决求助
三星A04(Android 12)将应用安装为系统应用的可行方案
方案一:Magisk模块刷入(最安全省心)
直接通过Magisk模块挂载系统应用,无需手动修改/system分区,避免A/B分区或只读分区的限制:
- 新建文件夹(比如
MySystemApp),内部创建层级结构:system/priv-app/YourAppName(YourAppName为自定义应用文件夹名,需与APK对应),将目标APK放入该文件夹 - 在根目录创建
module.prop文件,填入以下内容:id=custom_system_app name=自定义系统应用 version=1.0 versionCode=1 author=自定义 description=将目标应用安装为系统应用 - 将整个文件夹压缩为ZIP包(确保ZIP根目录直接是
system和module.prop,不要嵌套外层文件夹) - 打开Magisk Manager,进入「模块」页面,点击「安装」选择该ZIP包,刷入后重启设备,应用自动成为系统应用
方案二:adb shell su手动操作文件系统
跳过adb root,直接通过adb shell获取root权限后操作:
- 设备开启USB调试,连接电脑后执行:
adb shell - 在shell内执行:
su,此时设备会弹出Magisk授权请求,点击允许 - 挂载/system分区为可读写(Android 12部分设备需挂载根分区,可先执行
mount | grep system查看实际挂载点):mount -o remount,rw /system # 若上述命令失败,尝试:mount -o remount,rw / - 退出shell,将APK推送到设备SD卡:
adb push your_app.apk /sdcard/ - 再次进入
adb shell su,执行以下命令:# 创建应用存放文件夹 mkdir -p /system/priv-app/YourAppName # 移动APK到目标目录 mv /sdcard/your_app.apk /system/priv-app/YourAppName/ # 修改权限(必须设置,否则系统无法识别) chmod 644 /system/priv-app/YourAppName/your_app.apk chown root:root /system/priv-app/YourAppName/your_app.apk - 挂载回只读分区:
mount -o remount,ro /system - 重启设备完成操作
方案三:重新配置Magisk adb_root模块
若之前安装adb_root未生效,可尝试以下步骤:
- 打开Magisk Manager,搜索并重新安装
adb_root模块 - 进入Magisk「超级用户」设置,确保「adb」的权限为「允许」
- 开启Magisk的「隐藏」功能(避免系统检测限制),重启设备
- 执行
adb shell后输入su获取root权限,再尝试执行adb root(部分设备需先在shell内获取root,adb root才会生效)
关键注意事项
- Android 12多采用A/B分区架构,直接修改/system原始分区风险较高,优先选择Magisk模块方案
- 移动APK后必须设置正确的权限(644,root:root),否则系统会拒绝加载该应用
- 不要随意修改
ro.debuggable和ro.secure参数,可能导致系统不稳定或无法启动
内容的提问来源于stack exchange,提问作者Ilya Filimonov
相关产品推荐
相关产品推荐

