imx8mm開發(fā)板
默認(rèn)的安卓 9 不支持獲取 root,燒寫默認(rèn)的安卓 9 鏡像啟動之后,默認(rèn)已經(jīng)打開了 adb 調(diào)試功能,不需要我們再進(jìn)行配置:
首先我們打開我們在“
iTOP-i.MX8MM 開發(fā)板\02-i.MX8MM 開發(fā)板網(wǎng)盤資料匯總(不含光盤內(nèi)容)\09
Aondroid 系統(tǒng)開發(fā)資料\02 Android9 獲取 root 權(quán)限”目錄下的 adb 的終端,輸入以下命令
adb.exe devices
來查看是否能檢測到我們對應(yīng)的設(shè)備,如下圖所示:
由于我們還未配置獲取 root 權(quán)限,所以我們輸入“adb.exe root”,會發(fā)現(xiàn) adb 終端會卡住,然后在開 發(fā)板的串口控制臺打印如下信息,同時也會卡住,
為了能獲取 root 權(quán)限,我們需要對源碼進(jìn)行部分修改(為了方便起見,我們已經(jīng)將配置好的鏡像放在 “
iTOP-i.MX8MM 開發(fā)板\02-i.MX8MM 開發(fā)板網(wǎng)盤資料匯總(不含光盤內(nèi)容)\09 Aondroid 系統(tǒng)開發(fā)資料\02 Android9 獲取 root 權(quán)限\root”路徑下)可以直接使用我們提供好的鏡像。
首先我們進(jìn)入 ubuntu 虛擬機(jī),進(jìn)入我們提供的安卓 9 源碼,如下圖所示:
然后使用以下命令,進(jìn)入 su.cpp 文件,對 83、84 行內(nèi)容進(jìn)行注釋,修改完成之后如下圖所示:
vim system/extras/su/su.cpp
保存退出之后,使用以下命令,進(jìn)入 fs_config.cpp 文件,
vim system/core/libcutils/fs_config.cpp
然后在 177 行添加以下內(nèi)容
{ 06755, AID_ROOT,
AID_ROOT,
0, "system/bin/su" },
添加完成如下圖所示:
保存退出之后,使用以下命令,進(jìn)入 com_android_internal_os_Zygote.cpp 文件,
vim frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
注釋掉 DropCapabilitiesBoundingSet 方法體(注意這里的 return true 不能注釋),
保存退出之后,使用以下命令,進(jìn)入 main.cpp 文件,
vim system/core/adb/daemon/main.cpp
注釋掉方法體 should_drop_capabilities_bounding_set 中的 return true,然后添加 return false,修改完成 之后如下圖所示:
保存退出之后,使用以下命令,進(jìn)入 selinux.cpp 文件,
vim system/core/init/selinux.cpp
首先注釋掉 StatusFromCmdline 方法,
修改 IsEnforcing 方法返回 false, 保存退出,返回安卓 9 源碼目錄下,使用命令“
./create.sh”,進(jìn)行編譯,
編譯完成之后,將“out/result”目錄下的鏡像通過燒寫章節(jié)燒寫進(jìn)開發(fā)板。
燒寫完成之后繼續(xù)使用命令“adb.exe root”,如下圖所示。這一次并不會卡頓,但是有可能需要重啟開發(fā)板,然后重新使用命令。
然后我們使用“adb disable-verity”命令,會報“Device is locked. Please unlock the device first”提示,
根據(jù)提示信息,我們需要對設(shè)備進(jìn)行解鎖,首先我們進(jìn)入開發(fā)者選項,打開 OEM 解鎖(允許解鎖引導(dǎo)加載程序),具體步驟如下:
1 開發(fā)板啟動以后,進(jìn)入 Android 系統(tǒng),我們在屏幕上可以看到 Android 系統(tǒng)的界面,
2 上滑解鎖,進(jìn)入應(yīng)用程序界面,如下圖所示:
3 我們點擊“設(shè)置”軟件,打開如下圖所示
4 然后點擊“系統(tǒng)”后,如下圖所示:
5 然后點擊“關(guān)于平板電腦”,點擊后,如下圖所示:
6 然后找到“版本號”,連續(xù)點擊版本號十次,如下圖所示:
7 之后便可以進(jìn)入開發(fā)者模式了,返回到“系統(tǒng)”的目錄,點擊“高級”,如下圖所示:
8 我們可以看到“開發(fā)者選項”的目錄,我們點擊進(jìn)入,如下圖所示:
OEM 是默認(rèn)打開的。
然后我們在 adb 終端輸入“adb.exe reboot bootloader”命令
開發(fā)板串口控制臺會卡在以下地點,我們在這里需要手動重啟開發(fā)板。
重啟開發(fā)板之后,會進(jìn)入 fastboot 模式,
然后我們打開電腦的設(shè)備管理器,可以看到我們的 otg 設(shè)備當(dāng)前為 USB download gadget ,
該設(shè)備是用來進(jìn)行燒寫鏡像的,而在這里我們要用到的為 ADB 設(shè)備,所以我們需要對該設(shè)備進(jìn)行更新, 首先,右擊 USB download gadget 設(shè)備,選擇更新驅(qū)動程序,進(jìn)入以下界面,然后我們選擇第二個選項瀏覽我的電腦以查找驅(qū)動程序:
選擇進(jìn)入之后如下圖所示,然后我們選擇下方選項。讓我從計算機(jī)上可用的應(yīng)用程序列表中選?。?/p>
之后會進(jìn)入以下界面,我們選擇 ROMaster ADB interface,然后點擊下一步 最后會彈出以下,安裝完成界面,
至此我們的 otg 設(shè)備已經(jīng)成功設(shè)置為了 ADB 設(shè)備了,返回設(shè)備管理器,可以看到相應(yīng)的 ADB 設(shè)備,
然后我們返回 adb 控制臺,輸入“
fastboot flashing unlock”命令
至此我們的設(shè)備鎖就解開了,然后我們再次手動重啟開發(fā)板,等待啟動完成?;氐?adb 終端輸入以下 命令:
輸入以下命令,
adb root
adb disable-verity
adb reboot (該命令可能最后需要手動重啟來執(zhí)行)
adb root
adb remount
adb shell "mount -o remount,rw /system"
SuperSU 是一個管理 ROOT 授權(quán)的軟件??梢詫λ姓埱?ROOT 權(quán)限的軟件進(jìn)行管理,避免 ROOT 授
權(quán)被濫用。我們輸入以下命令安裝 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 腳本的內(nèi)容如下:
#!/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.
輸入以下命令拷貝二進(jìn)制文件 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 系統(tǒng),
打開剛剛安裝的“
SuperSu”APP,
退出軟件之后,打開剛剛安裝的“Root 檢查工具”APP,點擊“檢查”按鈕,如下圖所示:
點擊“授權(quán)”,如下圖所示:
如下圖所示,發(fā)現(xiàn)已經(jīng)獲得 root 權(quán)限。
-
Android
+關(guān)注
關(guān)注
12文章
3943瀏覽量
127841
發(fā)布評論請先 登錄
相關(guān)推薦
評論