Android 台灣中文網

標題: 【轉載】ZE500KL Android 6.0 免解鎖 root 方式 [打印本頁]

作者: o夢天使o    時間: 2016-5-27 14:15
標題: 【轉載】ZE500KL Android 6.0 免解鎖 root 方式
原文帖:S大的 ZE500KL Android 6.0 免解鎖 root 方式


首先感謝 https://github.com/dosomder/byeselinux
http://forum.xda-developers.com/zenfone-2-laser/development/recovery-twrp-3-0-2-0-unofficial-t3377991 的開發者,讓我們有好用的工具可以對 ZE500KL 上下其手.. undefined

由於 Android 6.0 的設計更為嚴(ㄐ一)謹(ㄔㄜ)以及 ASUS 手機團隊的特殊設計,導致小弟花了比預期更長的時間研究 Android 6.0 升級後的 root 方式,主要有幾個點:

1. Android 6.0 的 root 需要解鎖 bootloader 執行修改過的 boot.img,一方面是因為 SELinux 的規則更為嚴格,使得主要的 root 程式在執行時需要更多權限,而這些權限得透過修改 boot.img 裡面的 sepolicy 檔案才能達成;而另一方面 Android 6.0 的 OTA 升級方是對 /system 分割區做修補,以傳統在 /system 分割區植入 root 程式的方式來說,一定會讓升級失敗。由於上述這兩點,Android 6.0 的 root 方式很自然的往『解鎖 bootloader 後修改 boot.img 掛載 root (su)』的方式設計。

2. 事實上 Android 6.0 以前可以透過載入 /data/securrity/current/sepolicy 的方式載入修改過的 sepolicy 與相關檔案,但很不幸的是 Android 6.0 關閉了這功能,原本以為把修補過的 boot.img 裡面相關檔案放到前面所提目錄應該會有同樣效果,卻一直開機卡 logo,偏偏 ASUS 手機團隊的特殊設計讓手機在看到桌面前無法透過 adb shell 連線看記錄,才花費比預期多的時間查出這問題。

3. 手機開機無法立即使用 adb 推測是因為預設 mtp 模式,但不知為何得等到開機快完成時電腦才可抓到 mtp 與 adb,追了一下 source code 還有試過多種修改,最後直接使用 twrp 修改 /data/property/persist.sys.usb.config 的內容:echo -n adb > persist.sys.usb.config 強制設定只用 adb,才有機會在最前面使用 adb shell dmesg 看開機訊息,也因此找出前面這兩點問題。

結論就是 Android 6.0 的設計如果想 root 手機,有兩條路可走:
1. 解鎖 bootloader 讓 SuperSU 修改 boot.img。
2. 設定 SELinux 為 permissive 模式或 disable,然後使用傳統 root 方式放置檔案。

目前 ZE500KL 還沒有官方解鎖,相信應該不少朋友對於非官方解鎖有恐懼感 (?) 所以翻了下以前文章找到 byeselinux 這個套件,使用 ZE500KL 的 kernel source 重新編譯一份模組,製作出 twrp 可用的刷機包。 undefined

selinux_disable.zip (378.68 KB, 下載次數: 158)