Installing Kali NetHunter On the OnePlus 6
准備工具:
adb: https://jingyan.baidu.com/article/22fe7cedf67e353002617f25.html
twrp: https://www.twrp.me/(需要下載相同版本的.img與.zip)
magisk: https://github.com/topjohnwu/Magisk
kali nethunter鏡像: https://www.kali.org/get-kali/#kali-mobile
OnePlus6 Oxygen線刷包(寫這篇blog的時候kali要求的Oxygen版本是10)
payload_dumper: https://github.com/vm03/payload_dumper
(一加6-線刷救磚工具(以備不時之需): http://www.oneplusbbs.com/thread-4446250-1.html)
(建議准備個梯子)
ps: 寫這篇blog時設備已不在身邊,所以圖片比較少,等日后想起來了再補上吧
刷入第三方Recovery: twrp
twrp下載
進到twrp官網,右上角有Devices,進去找到自己的設備,建議選擇美版的下載
要下載.img與.zip兩個文件
oneplus打開usb調試
進入到oneplus關於手機頁面,連續點擊版本號,根據提示進入到開發者模式
找到開發者選項,打開里面的"OEM解鎖","高級重啟"與"USB調試",此時注意設備上若有彈窗要選允許USB調試
刷入twrp
可先把需要的包全部保存到手機設備中,如果忘記了某個包后續可使用adb push 本機路徑 目標路徑
傳到設備上,這里先把后續需要用到的包列出來
twrp_install.zip
Oxygen10.zip (Oxygen線刷包)
nethunter.zip (nethunter鏡像)
設備與電腦連接,adb devices
查看有沒有連接上設備,使用adb reboot fastboot
進入到fastboot模式
fastboot flash boot twrp.img
刷入boot分區,按鎖屏鍵確定啟動,將會看到twrp的啟動畫面
解鎖,點擊安裝,刷入twrp_installer.zip完成twrp固化,但要注意每次刷入新的包時都要重新刷一遍twrp_installer.zip防止其被官方recovery覆蓋。
刷入Oxygen10
進入twrp,點擊清除,完成雙清(或者點高級清除勾選前四個,四清)
點擊安裝,刷入Oxygen10(如果當前卡槽刷入失敗,可以嘗試切換到另一個卡槽再次嘗試刷入)
關於刷入的卡槽(即oneplus6中的A/B分區):若當前是在A分區(即A分區為活動分區),在刷入Oxygen時會將Oxygen刷入到非活動分區即B分區,而刷入成功后要記得在重啟中將當前活動分區切換到B分區再重啟進入到系統(進入系統是進入到當前活動分區中的系統),否則會提示當前分區未安裝系統,而在后面安裝nethunter時,會將nethunter刷入到當前的活動分區,所以在刷入完nethunter后無需切換分區,直接啟動進入系統即可
再次刷入twrp installer
點擊安裝,再次刷入twrp_installer.zip,防止twrp被覆蓋
進入Oxygen系統,但切記不要聯網
進入Oxygen10,但在初始化過程中切記不要聯網,否則可能會卡谷歌驗證,等初始化結束后再聯網應該就沒有大問題了。
root准備
提取boot.img
將刷入的Oxygen系統的線刷包解壓,找到里面的payload.bin文件
使用payload_dumper對payload.bin進行提取(python payload_dumper payload.bin
,執行成功后會在payload_dumper文件夾下找到output文件夾,里面即是提取出的文件),找到提取出的boot.img
使用magisk patch boot.img
安裝magisk app
將前面提取出來的boot.img導入到設備中
使用magisk patch boot.img(即下圖的"安裝"),並將得到的magisk_patched-****.img下載到電腦上(日志中會顯示文件路徑)
刷入nethunter鏡像並root
我選擇的是kali官網提供的nethunter鏡像包(👴才不想去重新編譯改編譯bug)
刷入nethunter
切記,刷nethunter時不要清除/data下的數據(建議不清除任何數據),刷nethunter時會檢測你data下是否有數據,如果你/data下沒有數據會導致刷入失敗(也就是讓你先進入系統,完成初始化操作后再刷入nethunter)
重啟進入到Recovery模式,即進入到twrp中
刷入nethunter.zip
刷入成功后暫不要進入系統,直接進行root
進行root
在twrp中依次選擇重啟,進入到fastboot模式(有的也叫刷機模式?)
當設備進入了fastboot模式后
電腦上輸入fastboot flash boot magisk_patched-****.img
刷入magisk patch的boot分區
按下鎖屏鍵確認
沒有意外的話將會看到啟動畫面了(將會看到nethunter帥氣的開機畫面)
進入到系統后電腦上輸入adb shell
,在oneplus的命令行模式下輸入su
賦予root權限,在設備的彈窗上選擇允許
至此,root完成
禁用oneplus系統更新
進入系統后應該就可以找到nethunter程序了,進去后點擊kali Chroot Manager
啟動Kali Linux chroot
完成后在下面的Kali Services中把ssh服務打開(我這里勾選了開機自啟),這樣就可以連接到kali的命令行了(雖然后面好像用不到)
打開NetHunter終端,選擇ANDROID進入Android終端,輸入su -c pm disable com.oneplus.opbackup
並執行,禁用oneplus的自動更新
Have Fun
隨后nethunter還需進行一些初始化操作,打開nethunter程序隨便點點熟悉下操作就ok了
個人一些微不足道的理解
后續如果要進行hacking操作的話應該是主要在NetHunter終端中進行的
NetHunter KeX應該是一個類似於VNC client的程序,可連接到本設備的kali上,如要使用首先要在NetHunter中打開KeX Manager,先SETUP LOCAL SERVER再START SERVER,隨后通過NetHunter KeX即可連接到本地上的kali
F-Droid應該是一個類似於app store的程序,里面可以安裝和更新其他的nethunter 工具(app)
questions
Required key not available
打開kali的terminal時我這里會出現一些問題,輸入命令顯示 Required key not available,在kali的論壇上找到了一種解決方案,但不確定是否會影響后續使用。具體就是找到/etc/pam.d/su-l
文件,將其中的session optional pam_keyinit.so force revoke
注釋掉。
ps: 若進不去kali的terminal(閃退)請檢查下nethunter中的ssh服務有沒有開啟
twrp被官方的recovery覆蓋
成功刷入nethunter並啟動后發現recovery變成了官方的recovery,嘗試過再次刷入twrp_installer,但是刷入后無法開機,不知為何(可能是個人操作問題)
關於A/B分區的問題
A/B分區理解的不透徹,A/B分區似乎是在系統進行更新時會使用到的一種機制,若A分區更新失敗可啟動B分區,可以實現類似於回滾的操作,好像也可以利用這個機制安裝雙系統
Reference
http://www.oneplusbbs.com/thread-4197303-1-authorid-1125704.html
https://www.kali.org/docs/nethunter/installing-nethunter-on-the-oneplus-7/
https://www.bilibili.com/read/cv3655689/
https://forums.kali.org/showthread.php?48217-SSH-Bash-Required-key-not-available