迅为IMX8MM开发板Andaoid9 获取root 权限

imx8mm开发板
默认的安卓 9 不支持获取 root,烧写默认的安卓 9 镜像启动之后,默认已经打开了 adb 调试功能,不需要我们再进行配置:
首先我们打开我们在“
itop-i.mx8mm 开发板\02-i.mx8mm 开发板网盘资料汇总(不含光盘内容)\09
aondroid 系统开发资料\02 android9 获取 root 权限”目录下的 adb 的终端,输入以下命令
adb.exe devices
来查看是否能检测到我们对应的设备,如下图所示:
由于我们还未配置获取 root 权限,所以我们输入“adb.exe root”,会发现 adb 终端会卡住,然后在开 发板的串口控制台打印如下信息,同时也会卡住,
为了能获取 root 权限,我们需要对源码进行部分修改(为了方便起见,我们已经将配置好的镜像放在 “
itop-i.mx8mm 开发板\02-i.mx8mm 开发板网盘资料汇总(不含光盘内容)\09 aondroid 系统开发资料\02 android9 获取 root 权限\root”路径下)可以直接使用我们提供好的镜像。
首先我们进入 ubuntu 虚拟机,进入我们提供的安卓 9 源码,如下图所示:
然后使用以下命令,进入 su.cpp 文件,对 83、84 行内容进行注释,修改完成之后如下图所示:
vim system/extras/su/su.cpp
保存退出之后,使用以下命令,进入 fs_config.cpp 文件,
vim system/core/libcutils/fs_config.cpp
然后在 177 行添加以下内容
{ 06755, aid_root,
aid_root,
0, system/bin/su },
添加完成如下图所示:
保存退出之后,使用以下命令,进入 com_android_internal_os_zygote.cpp 文件,
vim frameworks/base/core/jni/com_android_internal_os_zygote.cpp
注释掉 dropcapabilitiesboundingset 方法体(注意这里的 return true 不能注释),
保存退出之后,使用以下命令,进入 main.cpp 文件,
vim system/core/adb/daemon/main.cpp
注释掉方法体 should_drop_capabilities_bounding_set 中的 return true,然后添加 return false,修改完成 之后如下图所示:
保存退出之后,使用以下命令,进入 selinux.cpp 文件,
vim system/core/init/selinux.cpp
首先注释掉 statusfromcmdline 方法,
修改 isenforcing 方法返回 false, 保存退出,返回安卓 9 源码目录下,使用命令“
./create.sh”,进行编译,
编译完成之后,将“out/result”目录下的镜像通过烧写章节烧写进开发板。
烧写完成之后继续使用命令“adb.exe root”,如下图所示。这一次并不会卡顿,但是有可能需要重启开发板,然后重新使用命令。
然后我们使用“adb disable-verity”命令,会报“device is locked. please unlock the device first”提示,
根据提示信息,我们需要对设备进行解锁,首先我们进入开发者选项,打开 oem 解锁(允许解锁引导加载程序),具体步骤如下:
1 开发板启动以后,进入 android 系统,我们在屏幕上可以看到 android 系统的界面,
2 上滑解锁,进入应用程序界面,如下图所示:
3 我们点击“设置”软件,打开如下图所示
4 然后点击“系统”后,如下图所示:
5 然后点击“关于平板电脑”,点击后,如下图所示:
6 然后找到“版本号”,连续点击版本号十次,如下图所示:
7 之后便可以进入开发者模式了,返回到“系统”的目录,点击“高级”,如下图所示:
8 我们可以看到“开发者选项”的目录,我们点击进入,如下图所示:
oem 是默认打开的。
然后我们在 adb 终端输入“adb.exe reboot bootloader”命令
开发板串口控制台会卡在以下地点,我们在这里需要手动重启开发板。
重启开发板之后,会进入 fastboot 模式,
然后我们打开电脑的设备管理器,可以看到我们的 otg 设备当前为 usb download gadget ,
该设备是用来进行烧写镜像的,而在这里我们要用到的为 adb 设备,所以我们需要对该设备进行更新, 首先,右击 usb download gadget 设备,选择更新驱动程序,进入以下界面,然后我们选择第二个选项浏览我的电脑以查找驱动程序:
选择进入之后如下图所示,然后我们选择下方选项。让我从计算机上可用的应用程序列表中选取:
之后会进入以下界面,我们选择 romaster adb interface,然后点击下一步 最后会弹出以下,安装完成界面,
至此我们的 otg 设备已经成功设置为了 adb 设备了,返回设备管理器,可以看到相应的 adb 设备,
然后我们返回 adb 控制台,输入“
fastboot flashing unlock”命令
至此我们的设备锁就解开了,然后我们再次手动重启开发板,等待启动完成。回到 adb 终端输入以下 命令:
输入以下命令,
adb root
adb disable-verity
adb reboot (该命令可能最后需要手动重启来执行)
adb root
adb remount
adb shell mount -o remount,rw /system
supersu 是一个管理 root 授权的软件。可以对所有请求 root 权限的软件进行管理,避免 root 授
权被滥用。我们输入以下命令安装 supersu.apk ,
adb push supersu-v2.79-201612051815/common/superuser.apk /system/app/supersu/supersu.apk
adb shell chmod 0644 /system/app/supersu/supersu.apk
adb shell chcon u:object_r:system_file:s0 /system/app/supersu/supersu.apk
输入以下命令拷贝 install-recovery.sh ,
adb push supersu-v2.79-201612051815/common/install-recovery.sh /system/bin/install-recovery.sh
adb shell chmod 0755 /system/bin/install-recovery.sh
adb shell chcon u:object_r:toolbox_exec:s0 /system/bin/install-recovery.sh
install-recovery.sh 脚本的内容如下:
#!/system/bin/sh
# if you're implementing this in a custom kernel/firmware,
# i suggest you use a different script name, and add a service
# to launch it from init.rc
# launches supersu in daemon mode only on android 4.3+.
# nothing will happen on 4.2.x or older, unless selinux+enforcing.
# if you want to force loading the daemon, use --daemon instead
/system/xbin/daemonsu --daemon &
# some apps like to run stuff from this script as well, that will
# obviously break root - in your code, just search this file
# for install-recovery-2.sh, and if present, write there instead.
输入以下命令拷贝二进制文件 su,
adb push supersu-v2.79-201612051815/arm64/su /system/xbin/su
adb shell chmod 0755 /system/xbin/su
adb push supersu-v2.79-201612051815/arm64/su /system/xbin/daemonsu
adb shell chmod 0755 /system/xbin/daemonsu
adb shell chcon u:object_r:system_file:s0 /system/xbin/daemonsu
输入以下命令拷贝文件,
adb push supersu-v2.79-201612051815/arm64/supolicy /system/xbin/supolicy
adb shell chmod 0755 /system/xbin/supolicy
adb shell chcon u:object_r:system_file:s0 /system/xbin/supolicy
输入以下命令拷贝库文件,adb push supersu-v2.79-201612051815/arm64/libsupol.so /system/lib64/libsupol.so
adb shell chmod 0755 /system/lib64/libsupol.so
adb shell chcon u:object_r:system_file:s0 /system/lib64/libsupol.so
输入以下命令安装“
superuser”apk 和 root 检测 apk,
adb install supersu-v2.79-201612051815/common/superuser.apk
adb install rootchecker.paid-2.1.apk
重新启动 android 系统,
打开刚刚安装的“
supersu”app,
退出软件之后,打开刚刚安装的“root 检查工具”app,点击“检查”按钮,如下图所示:
点击“授权”,如下图所示:
如下图所示,发现已经获得 root 权限。

MQTT的概述与MQTT的代码编程理解
MAX3710限幅放大器/突发模式激光驱动器
三种串行接口标准的性能对比和应用研究
PNI磁传感器的精度为什么会这么高
Arduino键盘的制作教程
迅为IMX8MM开发板Andaoid9 获取root 权限
OLED 屏笔记本今年有望迎来普及:120% DCI-P3 色域,10 倍 LCD 响应速度
布线测试中的几个关键步骤
链路状态路由协议的基本概念和原理解析
医院安全用电常见问题及相应对策
自动驾驶系统ISP接口/连接
美菱M鲜生冰箱凭借领先的嵌入科技和保鲜技术 实力得到行业权威认证
尼吉康:持续用电容书写辉煌
APS排程软件推进生产企业精益化
仪器分析的最新发展趋势
大国重器中国工业互联网2.0新征程 技术立根 行业立范 发展立本
5G与城市的规划发展密不可分 智慧城市新时代或将到来
三星正式进入智能音箱市场 Galaxy Home将面临困境
pcb板和陶瓷金属化产品对比分析
杨元庆:联想国内工厂包括武汉在内已全部复工复产