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 設備,選擇更新驅動程序,進入以下界面,然后我們選擇第二個選項瀏覽我的電腦以查找驅動程序:
選擇進入之后如下圖所示,然后我們選擇下方選項。讓我從計算機上可用的應用程序列表中選?。?/p>
之后會進入以下界面,我們選擇 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文章
3937瀏覽量
127484
發布評論請先 登錄
相關推薦
評論