0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

北京迅为电子 2022-04-07 18:19 次阅读

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 权限。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3851

    浏览量

    125641
收藏 人收藏

    评论

    相关推荐

    求助! 关于使用自制底板插入创龙IMX8MM 核心无法启动问题

    求助! 关于使用自制底板插入创龙IMX8MM 核心无法启动问题,使用自制底板烧入程序卡在切换到EMMC设备阶段,使用创龙底板考入系统后,从emmc启动,核心量3个灯后没反应(估计也是卡在EMMC打开阶段)
    发表于 10-25 15:51

    i.MX8M开发板添加RIL驱动程序库

    下,如下图所示: 然后将 apns-conf.xml 拷贝到 android_build/device/fsl/imx8m/evk_8mm/下,如下图所示: 更多文档可以查看 B站搜索-北京
    发表于 10-24 09:56

    i.MX8M Mini开发板一些功能

    )、Linux4.14.78 + Qt5.10.1Yocto、Ubuntu20、Debian9系统 07、特别推出《嵌入式Liunx开发指南》 倾心力作! i.MX
    发表于 09-05 10:30

    iMX6常见 Android系统问题

    好Android应用后,安装不到iMX6开发板上,可以通过以下设置system权限的方法试一试。 可以看一下eclipse中调试信息如下: Installation error
    发表于 08-29 10:32

    imx8mm 88W8987中,如何启用wifi和加载wifi驱动程序?

    我正在尝试将 WIFI 集成到开发板中的 imx8mm,但是当我尝试在我的构建中搜索 /lib/firmware/nxp/wifi_mod_para.conf 时。所以请帮助我如何启用 wifi 和加载 wifi 驱动程序!!
    发表于 06-09 08:04

    如何为IMX8MM启用安全启动?

    /synopsys/ddr4_imem_2d.bin ./ imx-mkimage/iMX8M/ #imx8mm-atf $ cp imx-atf/build/
    发表于 06-01 07:11

    如何在iMX8MM EVK中启用TPM支持?

    正常。 如何将 TPM 与 imx8mm 连接? 1.我想知道用 imx8mm 启用 tpm2.0(optiga slb9670) 的可能方法是什么。 2. U-Boot 和内核
    发表于 05-30 14:17

    iMX8MM EVK的U-Boot是否支持SPI接口?

    我正在为我的项目使用 iMX8MM EVK。我需要通过在 u-boot 控制台上发出命令,通过 SPI 接口在 iMX8mm 和其他外围设备之间传输数据。 iMX8MM EVK 的 U-Boot 是否支持 SPI 接口? 如果支
    发表于 05-29 08:58

    iMX8MM EVK中的ESPI环回测试,如何构建图像来测试ESPI环回以及在哪里可以找到这个测试代码?

    我正在为项目使用 iMX8MM EVK。 我想在 iMX8MM 上进行硬件 ESPI 环回测试。但是,我能够构建 u-boot 映像并成功启动。 所以,我想知道如何构建图像来测试 ESPI 环回以及我在哪里可以找到这个测试代码
    发表于 05-25 06:43

    kernel5.10的imx8mm uart dma无法接收数据怎么解决?

    社区大家好, 我将kernel5.10移植到imx8mm上,发现一个问题,当我打开串口的dma功能时,串口通讯不可用,无法收发数据。 我已经链接了 RTS/CTS,这是我的 dts 设置
    发表于 05-19 08:01

    imx8mm andriod9添加RaLink3070,如何才能创建wlan0设备?

    大家好, 我想在 imx8mm android9 中添加 RL3070 usb 驱动程序。我检查内核中是否有这个驱动程序代码并且它已编译。当我的板子运行时,我插上RL3070 usb网卡,发现
    发表于 05-18 10:05

    有人用 imx8mm上过USB视频课吗?

    有人用 imx8mm 上过 USB 视频课吗? 如果有人完成,请在此线程中分享信息或详细信息。 我需要使用哪款相机?
    发表于 05-18 08:00

    通过Yocto开发板制作一个u-boot,应该更改或/和添加到图层的位置?

    你好!我用 DDR4 创建了我的自定义 IMX8MM 。所有 DDR4 测试都在 IMX 配置工具中成功通过。 我正在尝试通过 Yocto 我的
    发表于 05-09 08:03

    为什么无法从imx8mm任何本地域PING .local?

    我有我的 PC 和本地网络上的 R-PI,带有 avahi。 我还在 imx8mm 上运行 avahi。 我可以从 R-PI 和所有其他 PC ping, PC->R-PI
    发表于 05-06 07:21

    IMX8MP, IMX8MM USB眼图测试如何设置寄存器?

    正如标题,我们的产品准备量产,但面临信号认证问题。 我们需要通过 USB 眼图测试,但我不知道如何启用它。 我的软件设置: 平台:IMX8MP(USB3.0)、IMX8MM(USB2.0) 操作系统
    发表于 05-04 06:00